The New UI
I have already talked about the new Chrome theme. I find it awful, you don’t know what’s enabled and what is not. I wish they change it, and at least give us the possibility to opt for this theme or the classic colored theme.
It takes Visual Studio 2010 about a whole minute to start on my machines, so I didn’t have great expectations for Visual Studio 11. However, I am impressed with the startup time, which is about 3 seconds. Excellent.
Opening projects created with a previous version
When I opened a solution build with VS2010 it did not prompt me the classic question about upgrading to the new version. That’s because the project file schemas were not changed between VS2010 and VS11. This is the first time this happens. As for the solution file, it just updated the format version without prompting for anything.
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 11
Quick launch window
The first thing I do when I install Visual Studio is changing the fonts. But sometimes finding such windows or commands is cumbersome. A new window called Quick launch is now available in the top right corner. You can type for commands and it searches through menus, options, tool windows, etc. displaying a list of results. When you press on a result it executes the command.
This is now a hub for functionality previously available in Solution Explorer, Class View, Object Browser, Call Hierarchy, Navigate To, and Find References tool windows.
You can search in the solution explorer, view the call graph, hierarchy types etc. As you do this it creates new views kept in a stack. It is possible to navigate between these views with two buttons, Back and Forward that are available in the left side of the Solution Explorer toolbar.
The other buttons are:
- Home: brings back to the home view of the solution explorer
- Collapse all: collapses all the items in the Solution explorer three view
- Sync with Active Document
- Preview selected items: when this is enabled, as you select files in the tree they are displayed in a special document window, docked on the left of the documents bar. This is excellent because it helps viewing the file (or a method in a file) immediately, yet without opening lots of files (since they are all displayed, one at a time, in the same document window).
- Properties: opens the properties window for the current item
- Show all files: as in previous versions
- View class diagram: shows the class diagram (or creates a new one if one does not exist) for the current item
- Create a new window containing a copy of the content of this window: this duplicates the solution explorer window, just in case you want multiple views
If you want to quickly find something in the solution explorer, you can use the search control. As you type, the content is filtered to show only the elements that contained the type text. This includes source files, references, images and everything else in the tree.
Search and Replace
There is a new quick window for search and replace. This window is displayed in the top-right corner of the active document window. This window is specific for each document; when you switch to another document, it closes.
It is possible though to open the classic window, which looks like this:
A nice IntelliSense feature is highlighting in the entire document the symbol under the cursors selection. This helps a lot figuring where else in the code the symbol is used. And also helps when you have variables with the same name in different scopes, because it only highlights the symbols that are visible in the scope of the block where the cursor is.
The window for adding references has also been redesign. You can see a list of the available components that can be referred. As you hover the mouse over them a check box is displayed on the left, so you can check that component for being added.
NuGet Package Manager
For .NET projects a NuGet package manager is available. You can open it from context menu for the solution or the project.
It opens a dialog where you can search for packages, install, update or remove.
XML Doc comments for VC++
A great feature that was finally added for VC++ is XML doc comments. You can add them to C++ types and methods and generate XML doc files. For generating the output file the /doc switch must be set.
For this sample
///This is a dummy type.
///<summary>This is a stub method.</summary>
///<param name="a">This is a dummy parameter.</param>
///<returns>This method returns a random integer.</returns>
int bar(int a)
The following output file was generated:
<summary>This is a stub method.</summary>
<param name="a">This is a dummy parameter.</param>
<returns>This method returns a random integer.</returns>
<summary>This is a dummy type.</summary>
The gotcha is that so far it does not work in the automatic way as for C# or VB.NET. When you type /// it does not automatically generate the stubs, you have to add everything manually.
You can use these files to generate MSDN-style documentation using for instance the Sandcastle compiler.