Microsoft Ships Visual Studio 2008 and .NET SP1

In what promises to be the most significant release for .NET developers this year, Microsoft today released to manufacturing its widely touted first service pack (SP) of Visual Studio 2008 and .NET Framework 3.5.

Developers can download the service pack of VS 2008 here and the updated .NET 3.5 Framework here.

This upgrade is substantial, packed with new features and support for different dev scenarios enabled by the latest incarnation of the .NET Framework. Microsoft describes SP1 as a release focused on customer-driven refinements along three key themes: improving rapid app development and deployment, simplifying data-driven programming and "advancing" app development.

"This definitely is not a normal service pack," said Christopher Swenson, senior strategy manager for Microsoft's .NET Platform in a recent interview. "It's got all the bug fixes and performance enhancements that you'd expect in a service pack. But there are just so many new features in the .NET Framework that we're bringing to Visual Studio that we think SP1 is going to drive significant .NET adoption."

Microsoft has kept the market waiting on SP1, dribbling out the first public beta in May and unveiling various capabilities at its annual Tech-Ed and MIX conferences. But the company has vowed to release the service pack at the end of summer.

SP1 is essentially a stopgap between the relatively minor -- when compared with VS 2005 -- VS 2008 release and what promises to be a major upgrade in the next version of the toolset, said Gartner Inc. analyst Mark Driver. "This is a laundry list of things that didn't make it into this release for which they've had a lot of customer demand since they released the IDE," Driver said.

Key Features Added
The new Windows Communication Foundation (WCF) features in this service pack are an example of Microsoft's "back filling," he added. SP1 adds scalability increases of five to 10 times in Internet Information Services (IIS) 7, automatic serialization of types via the DataContract Serializer, partial trust event-log access, greater control over the UriTemplate, and easier publishing and consumption of metadata by REST clients, among other features.

"It's exciting to see Microsoft not only provide a roll-up of performance and bug fixes, but also deliver critical additional features that immediately address key customer scenarios," said Ed Blankenship, a Microsoft MVP who leads the release-engineering team at Infragistics Inc.

"I'm happy to see that Microsoft is delivering these kinds of features out of band so that we don't have to wait on the next major release. I hope Microsoft continues this pattern with future service pack releases."

Some of Blankenship's favorite features in the SP1 upgrade are the designer and performance improvements to Windows Presentation Foundation (WPF). "For developers, the improvements to the WPF design-time experience within Visual Studio have been greatly anticipated and welcomed," he said. "I'd recommend updating .NET Framework 3.5 to SP1 just for that reason alone."

Moving WPF up the Chain
Despite the charges by some -- mainly Windows Forms developers -- that WPF is about "eye candy," Driver said that Gartner has seen a significant uptake in developer interest in the graphical subsystem.

"Most of the developers who have moved to WPF have been very happy with the core developer productivity," he said. "I agree that a lot of the marketing around WPF and a lot of the demos that you see look like eye candy, but when the developers start working with what's essentially a declarative [programming style] around XML, they realize that it's a fundamentally better way to develop UIs. And I do believe that it's the next-generation approach to UIs."

Ian Ellison-Taylor, general manager of Microsoft's Presentation Platforms and Tools Team, is moving to reassure Windows Forms developers that Microsoft is not pushing users of the graphical user interface API to switch to WPF. Microsoft Chairman Bill Gates himself promised continued support for WinForms, even as Microsoft "embraces" some of the "sweet spots" formerly considered to be WinForms scenarios with WPF features, Ellison-Taylor said.

"I'd be the last person to recommend moving away from WinForms just for the hell of it," he added. "But there are places where richer consumer experiences really matter. And that's where WPF comes in."

One of the things that has surprised Ellison-Taylor is seeing WPF used more and more in enterprise line-of-business scenarios. "We weren't really expecting that," he said. "But user expectations for a rich experience appear to be rising."

Inside WPF Features
SP1 brings a number of WPF features to VS 2008, including events-tab support within the property browser and the ability to sort properties alphabetically; margin snap-lines for quicker form layout; better designer support for TabControl, Expander and Grid; debugger support for evaluating Language Integrated Query (LINQ) expressions and result sets; and new Windows Forms controls, such as vector shape, DataRepeater and printing, among other features.

Some WPF features are aimed at ASP.NET developers, such as HTML Designer and Source Editor performance upgrades, rich JavaScript formatting and code preferences, better JavaScript background interpreter performance, and the return of ASP IntelliSense and debugging.

Data Drivers
Steve Orr, a Microsoft MVP specializing in ASP.NET and the author of "Beginning ASP.NET 2.0 AJAX" (Programmer to Programmer; Wrox, 2007), sees "a lot of exciting stuff for the ASP.NET space" in SP1. Among his favorite upgrades is the new ASP.NET Dynamic Data feature. Dynamic Data is the data-scaffolding framework designed for building data-driven Web apps against a LINQ-to-SQL or Entity Data Model (EDM).

LINQ is a set of extensions to the .NET Framework that provides native data-querying capabilities to .NET languages using a SQL-like syntax. The ADO.NET Entity Framework, Redmond's latest data-access paradigm, provides an object-to-relational mapping (ORM) technology.

"The ADO.NET Entity Framework allows you to have a higher level of abstraction over your data," Swenson said, "so developers can deal with these high-level concepts and do more model-based programming, starting with the database."

The Entity Framework is the closest thing Microsoft has to an ORM toolset, Driver said. "It replicates what people like to do with Hibernate. LINQ to Entities is as close as you're going to get to Microsoft's ORM facility any time soon."

SP1 combines LINQ and the EDM into the standard data platform for all new data-related features of .NET and VS, such as ADO.NET Data Services, the EntityDataSource and ASP.NET Dynamic Data.

The service pack supports the new Date and Time Data Types for LINQ to SQL, but it doesn't have any support for spatial data types, such as geometry or geology. Like Orr, Forrester Research Inc. analyst Jeffrey Hammond is a fan of the Dynamic Data feature, and he sees it as an especially competitive offering.

"To some extent, Microsoft is putting in place some real structural underpinnings that will let them do some nice things in the future around model view controller [MVC] architectures," Hammond said. "When you look at the growing popularity of things like Ruby on Rails and Spring, you notice that one of the reasons developers like them so much is that they're well-established MVC architectures that you can program at a metadata level."

Welcome ADO.NET
But in terms of sheer impact, Orr believes the new ADO.NET Data Services feature has the potential to be downright revolutionary. "It exposes data in a whole new way," he said. "And that lets you program against it in a whole new way."

ADO.NET Data Services is "a combination of patterns and libraries that allows data stores to be exposed as a flexible data service," Swenson explained, which can be consumed by Web clients within an enterprise intranet or on the public network. The data is exposed to Web clients as a REST-style resource collection, addressable with URIs, with which agents can interact using standard HTTP verbs: GET, POST, DELETE and so on.

"Often in the most interesting application scenarios today, you've got your data running on a server somewhere, and you need some kind of Web service to get at that data from a client machine," Ellison-Taylor said. "The new ADO.NET Data Services allows richer and easier access to those services and in a more RESTful kind of way. We can give you direct access to those Web services, and the platform takes care of the grungy stuff underneath."

SP1 is first and foremost about improving developer productivity, Ellison-Taylor added. "We've definitely been working on some of the normal service pack kinds of things, in terms of making performance improvements and responding to customer feedback," he said. "But SP1 is about increasing developer productivity and lowering the barrier to good ideas with the .NET Framework."

The New Client Profile
One of those barriers in the .NET world, as Ellison-Taylor points out, has been client deployment. "In some ways we're victims of our own success with the .NET Framework," he said. "Since the first release in 2001 we've added more features and more value, and I think it's come a long way, but it's gotten a little heavy as well."

The .NET Framework 3.5 weighs in at around 197 MB. Microsoft trims that mass with a new Client Profile, which hits the scale at a lean 26 MB to 27 MB, he said. The profile contains a subset of features found in the full installation of the .NET Framework, including the CLR, ClickOnce -- a deployment technology for creating self-updating Windows-based applications, Windows Forms, WPF and WCF.

"We think it gives us 80 percent to 90 percent of the features that client developers would want, but in a much smaller package," Ellison-Taylor said. "That makes it much easier to deploy."

Focus on Developer Productivity
All this emphasis on developer productivity lines up well with current trends in the .NET space, said Gartner's Driver. "We're starting to see a lot more .NET projects that we'd classify as enterprise-scale," he said. "A lot of the features I'm seeing in SP1 are likely to make it easier for people to deploy .NET in bigger ways, in broader senses, in the enterprise."

Hammond gives Microsoft high marks overall for the features and improvements offered in its latest service pack. His one concern: With the advent of SP1, developers have many different ways to do the same thing. For example, if a developer wants to build a nice client interface, they can use the .NET client runtime, Silverlight or the Web Parts Framework -- or wait for Silverlight 2.0.

"I guess that's a nice problem to have if you're Microsoft," Hammond said. "But this richness of choices is something that can create confusion among developers. Microsoft needs to continue to support developers to help them make the right choices among all the options they now have."