Visual Studio 2010 - your chunky new friend dissected
Nice package, shame about the platform
Windows 7 is roaring ahead in acceptance, but look beyond the desktop and Microsoft's platform is not in great shape.
Microsoft is losing to Apple, Google and RIM on mobile, in cloud computing Azure is only just getting started, Internet Explorer is down to a mere 61 per cent market share on browsers, and there's been a slow but steady decline in web servers for Internet Information Server (IIS) from around 20 per cent of the million busiest sites in September 2008 to 17 per cent in March 2010.
In Rich Internet Applications, the Silverlight runtime has muscled its way onto over 50 per cent of web browsers but remains well behind Adobe Systems' Flash at over 96 per cent.
Microsoft does its best work when under stress - Windows 7, for example - and to further prove this theory, Visual Studio 2010, due today, is the company's best developer release for years.
There is no shortage of new features, so much so that Microsoft itself has done a poor job of communicating the extent of the changes. The starting point is a new editor and shell built with Windows Presentation Foundation, and a new Managed Extensibility Framework to stitch together the various components that make up the Visual Studio package.
If you use multiple displays, the ability to float windows from one display to another is almost worth the upgrade in itself. Another welcome feature is standard UML diagramming, though you need the Premium or Ultimate edition for this.
Next, there is version 4.0 of the .NET Framework, a major release in itself, adding the Dynamic Language Runtime along with dynamic features in C# and Visual Basic, much improved concurrency support based on a set of extensions called the Task Parallel Library, and a revamp of Windows Workflow that makes this framework and runtime more interesting for enterprise applications. There is also a new language, Microsoft F#, which may succeed in bringing functional programming into mainstream enterprise development.
Expressions and assertions
Visual C++ 2010 has added several features from the emerging C++0x standard, including lambda expressions, compile-time assertions, the auto keyword for type inference, rvalue references, and long long for a 64-bit integer. Parts of the C++0x standard library are also included.
In addition, the new Concurrency Runtime schedules and manages parallel tasks, simplifying concurrent programming. Some will remember the eccentricities of early versions of Visual C++; today's developers are getting a much improved tool.
This is the first version of Visual Studio since the launch of Windows Azure, and comes with Azure project types, though it was disappointing to discover that even the version that's been released to manufacturing requires a separate download of the Azure SDK and tools. At the time of writing, these tools were still a pre-release version.
Installation requires the full IIS on the local machine, rather than the built-in web server used for ASP.NET debugging. Similarly, the Visual Studio 2010 RTM I had came with Silverlight 3.0, even though the much-improved Silverlight 4.0 is to be launched on April 13, with final code expected then or shortly after.
The third-party Dotfuscator tool bundled with Visual Studio is also worth mentioning. Dotfuscator was originally designed to obscure .NET code, which without obfuscation is easily decompiled, thus spilling the secrets of developers who have yet to sign up to the open source religion.
Dotfuscator now covers runtime analytics and application expiry
This remains a feature but the new Dotfuscator also has a bunch of other tricks. Runtime Intelligence Support instruments your code to support analytics for desktop applications so, with your users' consent, you can log how the application is used with the logs uploaded to a hosted portal or your own server. Other features include tamper detection and the ability to set an expiry date for trial or subscription applications.
On the web side, Visual Studio 2010 ships with ASP.NET MVC 2.0 alongside the older Web Forms framework. ASP.NET Model View Controller (MVC) is a lightweight framework that fits with modern web development patterns. It is more amenable to unit tests than web forms, and Visual Studio prompts you to create tests as you go using the built-in test framework. Web forms look dated now, and ASP.NET MVC looks increasingly important for Microsoft's web platform.
Another aspect of the web platform is RIA Services, part of Windows Communication Foundation, which simplify authentication and read-write data access in Silverlight or ASP.NET applications.
Overall this is an excellent release, despite a few rough edges and despite the extent of the changes seems equally as stable as earlier Visual Studio releases.
That said, in the context of the difficulties the company faces outside its desktop dominance - and even there Apple is making inroads - Visual Studio 2010 is not a game changer. Mobile development, for example, is missing completely - awaiting the arrival of Windows Phone 7 towards the end of the year. Microsoft's developer team is doing great work, but on a troubled platform. ®