Friday, November 23, 2007

Visual Studio 2008 and .NET 3.5 Release

This week Microsoft released Visual Studio 2008 and .NET Framework 3.5.

Over the past month I've been running the Beta 2 in the Virtual PC Microsoft provided. This was an excellent way to evaluate the beta version since it isolated the code from my laptop - making it easy to remove now that I can upgrade to the RTM. I love this approach and hope to see more of it for CTP and Beta releases.

I remember upgrading from Visual Studio 2003 to Whidbey was a frustrating experience since there were a lot of incompatibilities due to the underlying changes in the .NET framework - particularly the change from the code-behind to the code-beside model. This time, the upgrade tool didn't seem to have too much to do. The code I was running in Beta 2 happily migrated to RTM without any problems, which was a nice little bonus. In fact I've always found the Visual Studio betas to be exceptional stable and this doesn't seem to have changed.

New Language Features

.NET Framework 3.5 introduces many new language features. These are powerful but sometimes a little hard to grasp. LINQ is probably the most significant change but it builds on existing .NET 2.0 functionality including Generics, as well as new language additions such as Lambda expressions and anonymous types.

Extension methods allow you to add static methods to add functionality to existing classes. This may be most useful when you need to add functionality to a library you can reference but not change (such as to someone else's code, or the .NET framework itself). Use with caution as extension methods are not a substitute for proper software architecture.

There are some nice new bits of syntactic sugar. One of these is Automatic Properties. Rather than creating member variables for parameters, I can now create parameters that look like this:

public String FirstName { get; set; }

public Int32 Age { get; set; }

Object and Collection initializers also make it easy to create and assign properties all on the same line.

Visual Studio 2008 and Training Kit

Visual Studio IDE itself doesn't seem to have changed too much. One nice new feature is the ability to target multiple version of the .NET framework within a solution. I used this to switch a couple of libraries in my custom framework to use framework 3.5 features (such as LINQ), while the rest of my class libraries stayed at 3.0.

Many of the changes in the studio target web development, which suits me fine. The split-pane window is a nice way of viewing the code and design views at the same time. CSS support is improved in the GUI by visually showcasing inheritance rules. The AJAX toolkit is included by default, as are WCF and Workflow templates (including SharePoint workflows, hooray!).

Testing is facilitated using Microsoft's MSTest framework which is now available with the Professional version (before it was only available with Team Studio). The online community is keener on MbUnit or Nunit but there's no harm in having a third option that's built-in.

There is a wonderful Visual Studio 2008 RTM Training Kit which provides tutorials and videos to help get users up to speed. From the kit's installed home page:

[The Training Kit] contains a full 5-days of technical content including 20hands-on labs, 28 presentations, and 20 scripted demos.   The technologies covered in the kit include:  LINQ, C# 3.0, VB 9, WCF, WF, WPF, Windows CardSpace, Silverlight, ASP.NET Ajax, .NET Compact Framework 3.5, VSTO 3.0, Visual Studio Team System, and Team Foundation Server.

Five full days of technical content? Better crack open that case of Jolt cola! The kit is publicly available at http://go.microsoft.com/?linkid=7602397.

"Paying Off Debt"

There is an interesting article on eWeek about Microsoft "paying off its debt". Soma Somasegar who is the corporate VP of the Microsoft Developer Division explains how he shut down all engineering on Visual Studio for four months and set everybody concentrating on removing as many bugs as possible.

Following this period, known as "MQ" or Milestone Quality, each feature team was limited to a certain number of outstanding bugs at one time. These actions, referred to as an "engineering investment", resulted in an increase in quality in the product. In fact the Visual Studio team won an internal engineering award from Bill Gates for this effort.

It's an interesting insight into Microsoft's development efforts. Presumably this work will also really pay off for future release of Visual Studio.

What's Next?

Speaking of which, now that the current version is RTM, it's time to look ahead again. Programmers are never satisfied! The Visual Studios "futures" roadmap is posted at

http://msdn2.microsoft.com/de-de/teamsystem/bb407307.aspx.

Rosario is the upcoming Team Edition version and will be next on the block.

As well, Microsoft will be providing a window into the .NET Framework source code within a few weeks. This will prove helpful in debugging, especially with lower-level coding. Scott Guthrie explains exactly how this will work. Currently this sort of framework-spelunking is usually done with Lutz Roeder's Reflector.

The Visual Studio 2008 website is located at http://msdn2.microsoft.com/en-us/vs2008/default.aspx.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.