Product review: Visual Studio 2008 advances with few missteps
Solid upgrade to Microsoft's IDE holds improvements for users of every level; highlights, including language-integrated data queries, new graphical design surfaces, and support for Vista, Web 2.0 technologies, and multiple versions of .Net Framework, overshadow a few nits
I also found that the code metrics for managed code (included in VSTS Developer and Team Suite) worked fairly well. I'm not sure that I agree with the way the metrics are calculated for code generated from design surfaces, but I can certainly see the overall utility of the metrics, especially in the context of team projects managed with TFS.
I used metrics such as cyclomatic complexity (a measure of the number of linearly independent paths through a program module) years ago to help me manage a large C project with a dozen programmers. I'm happy to see this technology introduced in VS08 for managed code.
I'm disappointed, however, that code metrics and code refactoring are not available for unmanaged C++ projects. On the other hand, C++ projects can use a very nice call browser: It gives you a compact view of the other functions that call a given function, and of the lines of code that do the calls.
I'm happy that Visual Basic projects have code metrics along with an incredibly concise syntax, great IntelliSense, and many code snippets. I'm disappointed that Visual Basic projects don't have code refactoring, although this functionality can be added using one of several third-party plug-ins.
I'm delighted to report that unit testing is now a feature of the Professional Edition. (It was a VSTS feature in VS05.) You can create unit tests and test projects for C#, Visual Basic, and managed C++ solutions. It was possible to do this before using the free open source program NUnit, but it's a little nicer having the unit test capability integrated with the IDE.
WPF, Silverlight, and Web 2.0
VS08 supports Windows Presentation Framework (WPF) with a split-pane WPF designer, debugger support, and WPF project templates for C# and Visual Basic. WPF "supports UI, media, documents, hardware acceleration, vector graphics, scalability to different form factors, interactive data visualization, and superior content readability," according to Microsoft. WPF graphics are defined by XAML, an extension of XML. The split-pane WPF designer uses a GUI in one pane and XAML in the other, and synchronizes the two bidirectionally as long as you don't introduce errors into the XAML.
VS08 supports Silverlight, a rich Internet application technology that includes a subset of WPF, once you install the Silverlight SDK and the Silverlight Tools for VS08. I had good experiences developing Silverlight applications with a beta version of VS08. (For my review of Silverlight itself, see "Microsoft Silverlight rivals Flash, AJAX.")