Review: Visual Studio 2012 shines on Windows 8
Microsoft's everything-and-the-kitchen-sink IDE fuels Windows 8 and Windows RT development with smoothly integrated tools and an abundance of resources
Rafts and previews
While the ability to "dock" a specific window to a particular monitor has been available in earlier versions of the IDE, Visual Studio 2012 adds a new facility (and new nautical metaphor) called a "raft." A raft is a collection of multiple windows that can be treated as a single unit for the purpose of docking.
Another welcome usability feature is the preview tab, which opens a file in a new tabbed window whenever you select a file from the solution explorer (or if you happen to step into the file in the debugger). Previously, viewing a file's content required that you explicitly open it; now you simply select it to materialize a preview window. The preview is even editable. When you modify something in it, the window gets promoted to a "durable" tab -- at which point it works just like a normal tab in the editing area.
IntelliSense includes support for JavaScript, an important addition now that JavaScript has become a first-class language used to build Windows 8 apps. IntelliSense understands JavaScript documentation ornamentation -- which can specify function parameters, return values, and so on -- and incorporates these elements into its internal database to assist in code completion whenever JavaScript functions are referenced in the editor. IntelliSense also provides JavaScript function signatures in code completion.
Visual Studio 2012 has also improved the dependency graph feature. A dependency graph will show not only logical dependencies (such as a method's callers and callees), but also physical dependencies (what header files a specific C++ file required). Dependency graphs are useful for finding reference loops (a built-in analyzer helps locate such loops) and can identify code with no dependencies, which is probably a candidate for elimination.
In addition, the graphs are interactive. Click a node, and a pop-up materializes to display the details of the object highlighted: its category, the assembly it's in, its data type, and its namespace. Similarly, click an arc, and you're shown its category (reference or call) as well as the source and destination nodes. This latter feature is useful if you're exploring a large and complex dependency graph.
You can actually build dependency graphs incrementally, by creating a directed graph file and adding it to your project. Then, you simply drag objects (for example, source for class definitions) from either the solution explorer or the architecture explorer and drop them into the graph file's editor window. Visual Studio will parse the source code, index it, and incorporate it into the existing graph.
Working with Visual Studio 2012
When you install Visual Studio 2012, you're presented with numerous optional components. These include Blend for Visual Studio, MFC (Microsoft Foundation Classes) for C++, Office Developer Tools, SharePoint Developer Tools, Visual Studio LightSwitch, and Web Developer Tools.
In addition to tuning the environment to your particular sort of development (LightSwitch, SQL Server, Web development, or any of the .Net languages), you can also select the quantity of help documentation installed. A management console lets you pick which content will be recorded locally and which will be accessed from the Web. All help text is available online, and the IDE will access its online repository as needed, but fine-tuning the cached content can help if you know you're going to be working either offline or in an area with spotty connectivity.
The breadth of the development targets that Visual Studio 2012 now supports becomes apparent when you create a new project. The IDE presents more project templates than you can shake a stick at, in all of the supported languages -- which now include JavaScript. You can also select templates from Microsoft's online source; do that and the choices multiply even more. Also online are uncountable lists of code samples through which you can wander for hours.