Monday, June 4, 2012

My impressions after developing with Visual Studio 2012 for a few weeks

Actually, I lied in the title. I first used Visual Studio 11 and now I switched to Visual Studio 2012 RC. For simplicity in this post, I will refer to all Visual Studio 11 betas with the new Visual Studio 2012 product name. I installed one of the first betas available on my work PC and tried to use it as a primary IDE. I will share with you, what I found useful and what still needs to be improved, according to me. I hope, my experience will help you start faster with the new environment and warn you for possible obstacles on your way.

The setup

The first thing that got my attention was that when you open a solution with the new Visual Studio there is a upgrade process like before. I had the impression that with this release Microsoft will allow us to work simultaneously with 2010 and 2012 and didn't expect to have upgrade process again. Nevertheless, all the project files are untouched, if you have to change them though with the new VS 2012 you will get some new elements in the configuration that won't prevent you from working with this project with VS 2010, which is really nice. Still, there were some changes to the solution file that made it unusable with  VS2010, so I made a copy of the solution file for working with the new Visual studio and left the old one untouched. This could be inconvenient if you frequently add projects or other solution items, since you will have to do this on both solutions, but happily we don't do this very frequently. (This might be subject to change in the next releases, I haven't check this in the Release Candidate. Still, having two solution files is not a big overhead, I think. EDIT: Thanks to Syd for updating me on this one, it looks like the issues I have been experiencing are no longer a problem in the latest RC.)

My very first thoughts when opened Visual Studio 2012

At first, I felt a little lost. Although, the menu structure and the different windows (Solution Explorer, Server explorer, etc.) are the same, you have to used to distinguishing buttons and icon not by color, but by shape. This was kind of frustrating in the beginning, but now after a few weeks I feel very comfortable with the new "metro" and "not-colorful" user interface. I almost immediately switched to the dark theme, which is really nice and the text highlighting is much better than my custom color theme I had in VS 2010. In the first versions, the background of some windows (Server Explorer for example) was white, which looked really bad in the dark theme, but I see now that this is resolved and the overall design when using the dark theme feels really native. 

Something else that amazed me - almost all my extensions that I used in VS2010 works perfectly OK with VS2012, from the day I installed it. Not only JustCode, Sitefinity Thunder and some other Telerik extensions that I have, but also Ankh (I use it at home only), Minifier and so on. The only one that I currenly miss is the "Spell Checker" extension that I really like and saved me many times from deploying typos and nonsense text. I hope that it will be ported, too soon.

Some features I find really useful

Well, For me the winner so far is the search functionality when adding assembly as a reference. It should been there much earlier I think, but better later than never, right? In fact, the whole dialog has been redesigned and the work with it now is much more fluent than before.

The Quick Launch box - although, I haven't utilized it quite good, yet I think this will be something I will use a lot in the future. It just takes some time to break your habits and change the flow you are used to, but this will payback very quickly. The operation you can do from this are numerous and this will be a great performance booster, I think.

The multi-display support is awesome. Much better than before - now I get two tabs out of the main window and snap them - one on the left side of my second monitor and one on the right side. This has to be done manually before and now I can use the win + left arrow and win + right arrow shortcuts to fit the windows where I want them. Moreover, I can work on a tab out of the main window and a word document at the same time, which is again very convenient. 

In the pending changes window, you can apply custom filter to list of files. This way you can much easier check-in all the *.config files for example and ignore all the rest.

The ghost tab, makes my workspace cleaner. Now, I can browse my code with flooding my tab list with tabs that, I don't actually need.

What I still don't like after several weeks work?

Some of the keyboard shortcuts that I'm used to are no longer there. For example, I used to build with F6 and rebuild with Ctrl+F6. For some reason, only Ctrl+Shift+B is available now which is not so comfy to me. I know that I can add them through the settings, but I try to modify them as little as possible in order to maintain the same experience when using VS on another machine. I guess, I will have to live with this.

There are some drastic changes in the pending changes window. It's now part of the Team Explorer window and the design is completely new. You have two different lists with files that will be included in the checkin and those that are excluded which is nice. Assigning work items to the changeset is not so easy though. The checkboxes are now removed and you have to either drag and drop the work item (I needed a week or two to figure what I have to drag and where exactly) or you can enter the work item ID by hand. After adding the work item you should pay attention to the action selected as it is not so noticeable, now. I ended up resolving several work items, when I just wanted association. Since we have a checkin policy that makes assigning work items mandatory - this is the change in the VS 2012 that bothers me most. Probably, I need some more time to get used to.

What I still miss in Visual Studio 2012?

I would greatly appreciate some transition between the previous version of VS and the next one. For example, I had to go and manually set all kind of settings that I used in VS 2010, right after I installed the new version - all the external tools I use, all the extensions, some settings like "Track Active Item in Solution Explorer" and so on. I would be great, if I was prompted to transfer this options from my previous installation and this would make my migration much more fluent and easier. This will allow me to focus on the new features and evaluating the new product, instead of bothering myself "What I missed to add to the new Visual Studio". Probably, this will be a great feature for VS 2015?

And this is shocking - after the second day, I don't pay attention to the ALL CAPS menus!! Even though I can rollback this behavior, very soon after start working with the new VS, I found out that this doesn't stand on my way (but doesn't help me either). I think, it didn't worth the trouble all these people complaining about this, having in mind all the other great enhancements included.

The bottom line is that Visual Studio 2012 is ready to be your primary IDE, today. Being stable and mature enough, I guess that more and more people will start their transition. I'm very interested to read your impression after some real live experience. We all watched the marketing presentation and the cool stuff Microsoft showed already, but what is actually useful for you? Feel free to left your comments bellow.