Visual Studio 2010 - chunky but has a great personality

Review Like Clerks director Kevin Smith, Visual Studio is a lot to get your arms around.

There's a new editor and shell built with the graphics-rich Windows Presentation Foundation (WPF), version 4.0 of the .NET Framework that itself is packed with new features. Plus, there are some big changes in the target project types, from C++ to SharePoint, Office, and - of course - the cloud with Windows Azure.

Meanwhile, the Application Lifecycle Management (ALM) Team System tools have been thoroughly revamped, and - as is usual for Microsoft - a new Visual Studio means yet another go at visual modeling tools.

All of which means this is a big release. Microsoft has primed the familiarization process with the recent release of the Visual Studio 2010 Release Candidate - the last public preview before release. The RC, which I looked at, also comes with a go-live license so brave developers can start to use it in production.

Cloud service projects target Microsoft's Azure cloud

So how does it stack up? The WPF rebuild was necessary but risky, and performance problems in earlier betas raised concerns about how well it would work. As it turns out, the combination of having NET performance guru Rico Mariani as chief architect, and having the Visual Studio folk twist arms in the WPF team seems to have fixed these issues. Mariani has apparently now moved on to other things, but the RC is noticeably snappier than the previous beta.

Some long-standing annoyances in Visual Studio 2008 are fixed, and usability in general is improved. The .NET Add Reference dialog, for example, now populates in a background thread, whereas it used to freeze the IDE for several seconds on first use in a session. The ability to float windows, including editor windows, out of the IDE enables sensible use of a secondary display.

Incremental search in the toolbox is handy, and another nice touch is the ability to zoom the editor with Control + scroll wheel. IntelliTrace debugging lets you instrument code and step back as well as forward from a breakpoint, a remarkable improvement.

Silverlight 4 in the dark

When it comes to web development, the main theme in Visual Studio 2010 is bringing the tools up-to-date with newer technology such as Silverlight, ASP.NET AJAX and ASP.NET MVC version 2.0. Silverlight gets a true visual designer at last, though Visual Studio 2010 will not support the much-enhanced Silverlight 4.0 on its first release. At the time of writing, the RC does not even support the preview Silverlight 4.0 tools.

There is also integration with Windows Communication Foundation (WCF) RIA Services, and integrated debugging across client and server. Windows Azure is also supported, complete with local Development Fabric for debugging.

Team Foundation Server is now part of all paid-for Visual Studio editions, has a simplified wizard-based installation, and includes the Web Access component acquired from devBiz. The idea is that even solo developers can use it for source-code management, issue tracking and build automation, while larger teams can make use of its collaboration and reporting features. Gated check-in is now supported, where code can only be checked in if it meets specified requirements.

In the high-end Ultimate edition of Visual Studio 2010, Microsoft has finally seen sense and implemented a range of standard UML diagrams, including Class, Sequence, Activity and Use Case. This edition also includes Lab Management, a powerful though complex tool that lets you create test labs from a set of virtual machines, and integrate their setup and tear down with the build process.

At last: standard UML diagramming in Visual Studio

Concurrent programming support is a consistent theme. The .NET Task Parallel Library and C++ Parallel Patterns Library let developers think in terms of parallel tasks, while a runtime takes care of scheduling and managing them. New debug windows called Parallel Tasks and Parallel Stacks let you inspect running tasks.

Visual C++ 2010 implements a number of pieces from the emerging C++ 0x standard. C++ projects now use MSBuild. Microsoft has abandoned the manifest-based approach for handling different versions of the C runtime libraries, a change which simplifies deployment.

Visual Studio 2010 includes full support for a new language, Visual F#, a functional programming language based on ML but with support for object orientation as in Objective Caml. F# is well suited to parallel and asynchronous coding, and for maths processing. The most common use is not for complete applications, but for libraries to handle appropriate tasks.

Wanted, and unwanted, additions

There are some disappointments. There is a new help system that you can set to use a local web server or content direct from the web, but that currently lacks a keyword index or complete table of contents so you are meant to navigate mainly through search. Toolbar customization is possible, but more difficult than in Visual Studio 2008. IronPython and IronRuby have not yet made it into Visual Studio, which is disappointing.

Mobile development is also currently missing, and it is not yet clear how this will look since the Windows Phone 7 development story is still under wraps, and the old Smart Device projects have disappeared.

SharePoint development, meanwhile, is touted by Microsoft as much improved, thanks to new project types and easier debugging, but you still need SharePoint installed locally, and it is annoying that most of the available projects only target SharePoint 2010.

It may be bloated, it may be over-complex in places, but it is hard not to be impressed by Microsoft's tool suite. This is an upgrade that Microsoft-platform developers will enjoy. ®