Visual Studio 2010 - reading the Redmond runes
Big release, big Windows tie in
Preview Visual Studio is locked so closely to Microsoft's platform that it cannot be prised apart and assessed in isolation. The forthcoming Visual Studio 2010, for better or worse, continues this tradition.
While full details on Visual Studio 2010 are not yet available, we have been able to piece together a fair amount by attending Microsoft's recent Professional Developers Conference in Los Angeles, California, and Tech Ed in Barcelona, Spain. There is also a preview you can download, though it comes as a virtual machine image and is not feature-complete.
Here is The Reg's quick tour of what you can expect.
The new Visual Studio will be delivered with .NET Framework 4.0 and Visual C++ 10 and will support Windows 7 and the Azure Services Platform. There are also significant changes to Microsoft's Application Lifecycle Management tools, called Team System.
Parts of the suite, including the code editor, are built in Windows Presentation Foundation (WPF), the GUI framework introduced at the same time as Windows Vista but not widely adopted, thanks to its heavy system requirements along with hints from Microsoft that it was not yet ready for business applications.
Camano, a new WPF-based client for testers
The company is now changing its tune. "The fact that we're committing to WPF in Visual Studio is our sign of what we think about its readiness. We're banking on it in a big way," product unit manager Shanku Niyogi told The Reg.
It also makes use of a new library called the Microsoft Extensibility Framework, which you can also use in your own code, for add-ins. Sam Guckenheimer, Team System group product planner, cautioned the change is not as deep as it first appears. "All the stuff that is in Visual Studio today is very similar in 2010, most of it is unchanged," he said. "Where we are doing things that have no today equivalent, the natural choice is WPF."
Visual C++ 10 includes several features from the forthcoming C++ 0x standard, specifically lambda expressions, rvalue references, static_assert, and the auto keyword. MSBuild is now used for build management, bringing it into line with the other Visual Studio languages.
Microsoft has U-turned on how C++ applications are deployed. In recent versions, the runtime libraries have been deployed using Windows side-by-side, complicating installation and raising mystifying error messages about loading the C runtime library incorrectly if you got it wrong. "This is a little sin we introduced in Visual Studio 2005 and perpetrated in Visual Studio 2008," program manager lead Boris Jabes said at PDC. No more. In Visual C++ 10, you can simply put the runtime DLLs in the application directory and it works.
Parallel programming is a theme in Visual Studio 2010. C++ gets the Parallel Pattern Library, and .NET Framework 4.0 gets the Task Parallel Library and Parallel Language Integrated Query (LINQ). This is smart stuff, wrapping complexities such as ensuring that the number of threads used matches the number of available processors, and providing simple abstractions like parallel for loops.
Unfortunately all the pitfalls of concurrent programming still exist, so expect an increase in subtle and unpredictable bugs as this becomes popular. Visual Studio supports it with a new Tasks debugging window and easier thread debugging.
Merge visualization tool shows branches in red where bugs remain
What about Team System? Guckenheimer outlined three major areas of change. The first is in application quality. Gated check-in means you cannot check-in code that does not build. An elaborate new debugging system lets you deploy an application in a test environment with tools that capture bugs as they happen.
"You can file a bug, and with the bug come the exact steps that the tester did, indexed into a video, with screenshots, and with traces of the actual code execution," Guckenheimer said. "The developer can open the bug, click into the trace and open a session that looks like a debugging session but without ever loading the code."
The next area of change is in what Guckenheimer called "business alignment" - new dashboards and deeper hooks with Excel, Project and Sharepoint, for requirements analysis and work breakdown. The third change comes in work on performance. "We think we scale up to pretty much any size team, any number of thousands," he said. There is also a new client, code-named Camano and written in WPF, aimed solely at testers.
A weakness is that Microsoft still largely leaves integration with other platforms to third parties. For example, Eclipse users need Teamprise. On the modeling front, there is a new Architecture Explorer which creates visualizations from existing code. There will also be support for UML diagrams including Class, Use Case, Sequence, Activity, and Component.
The current preview of Visual Studio 2010 is slow and not entirely stable, a fact not helped by running only in a virtual machine, though it does contain a useful set of walkthroughs for Team System.
There is more to come, but from what I've seen so far this is shaping up to be a major release for Windows developers. ®