Published on ONDotNet.com (http://www.ondotnet.com/)
 See this if you're having trouble printing code examples

What Is Being Unveiled at the PDC this Year?

by Shawn Wildermuth

This week, Microsoft is holding their periodic developer conference, the Professional Developers Conference, in Los Angeles. Much like most PDCs, this event is a time to unveil their new plans for software across their developer products. Hopefully, this article will help you associate the codenames with the content. In the coming weeks, you will hear these codenames being bandied about from every media outlet. Here is an overview of the big topics:

Codename "Whidbey"

Whidbey is the new .NET Framework and Visual Studio .NET combination. This release can be thought of as the first real maturation of the platform. Here is an overview of the changes:


Depending on where you came from to get to .NET, generics are either a godsend or an annoying over-complication. Generics are simply a way to templatize code:

public class Foo<T> {

  public Foo(T a) {
    _innerArg = a;

  T _innerArg;


// Create a couple Foos
Foo<string> sfoo = new Foo<string>("hello");
Foo<int> ifoo = new Foo<int>(123);

Related Reading

Mastering Visual Studio .NET
By Ian Griffiths, Jon Flanders, Chris Sells

The concept here is to create a class that can contain or handle a variety of different types in some uniform way. The most obvious of these are collection classes. In early articles that discussed generics, it was always assumed that they would be a C#-specific feature, but generics are in the CLR. This means that all languages could support generics. In Whidbey, both C# and VB.NET will support generics.

The same code in VB.NET would look like:

Public Class Foo(Of T)

  Public Sub New(ByVal arg As T)
    _inner = arg
  End Sub

  Dim _inner As T

End Class

' Create a couple Foos
Dim sfoo As Foo(Of String)
Dim ifoo As Foo(Of Int32)

C# Changes

Even though generics didn't become a C#-only feature, C# did get a couple of perks on its own:

VB.NET Changes

Most of the changes in VB.NET are about making it more appealing to VB developers. These include:


While old-style ASP.NET will continue to work, ASP.NET v2 has attempted to learn a lot from the last few years of ASP.NET:

Windows Forms Changes

While Windows Forms changes are more evolutionary than revolutionary, Microsoft has spent a lot of energy on making No-Touch Deployment much more natural. They've added features for creating bootstrap installs and easy deployment to IIS servers to support this.

Data-Related Changes

There has been a lot of work in the areas of dealing with data in the .NET Framework. In very brief detail, these are:

Visual Studio .NET v.Next

The new Visual Studio .NET includes a large number of changes to improve the productivity of users. These include:

Codename "Yukon"

Yukon is the new version of SQL Server that will ship near or at the same time as Whidbey. The changes for Yukon include:

The CLR Inside

The CLR is now hosted inside of SQL Server. This allows you to write stored procedures, functions, user-defined types, aggregates, and extended triggers. This also means that you can do ADO.NET work inside of the database with a new managed provider for querying the database from within the SQL Server process.

The New XML Type

XML has graduated to a real type in Yukon. You can define schemas and store XML in specific columns. You can also add XML-specific indexes to your tables to allow you to index parts of XML documents for easier searches.

Service Broker

The purpose of the Service Broker is to handle asynchronous database work. It is akin to have MSMQ integrated into the SQL Server. You can simply push work onto the Service Broker to allow some non-time-sensitive work to happen when the SQL Server has time.


Women may be from Venus, but queries can now be from MARS. MARS stands for Multiple Active Result Sets and is meant to allow multiple active result sets within the scope of a single transaction. There is support for this in ADO.NET, as well as support for it in the Yukon engine.

Codename "Longhorn"

Further out than Whidbey and Yukon is Longhorn, the next release of a desktop operating system. Longhorn consists of a number of new systems:


A new rich client API that allows you to define user interfaces with a markup language called XAML. XAML supports tags that more or less map to existing Windows Forms controls. For example, a simple XAML page that shows a single button would be:

  <Button Width="150px" Height="24px">Ok</Button>


Indigo represents a maturation of web services. Indigo is the next generation tool for developing web service applications. Indigo has taken a completely different approach than the WebMethod work in the 1.x Framework. It attempts to treat web services as a set of network protocols with a real network stack that can be plugged into. Indigo will support (by default) all of the WS-I specs that have been addressed in a somewhat piecemeal fashion.


WinFS is the file system that you've heard whispered about for years. (Anyone else remember that this was part of Cairo?) WinFS is essentially a SQL Server store that works locally and somewhat transparently. Files, contacts, images, media, etc. will all be stored in WinFS to provide a more transparent way to handle data of all sorts. The promise is that searching for related pieces of data should be make easier by allowing these objects in different types of applications to be more easily linked together.


Most of what is discussed at this year's PDC is for the future. I would guess (yes, guess ... I have not been given any information from Microsoft about this) that the Yukon/Whidbey releases will happen in 2004, with Longhorn being sometime after that (e.g., 2005 or 2006). I have glazed over many of the details as I have been only given a taste by the pre-conference literature. In the coming weeks we will be running more and more about what these releases actually mean to you, the working developer.

Shawn Wildermuth is the founder of ADOGuy.com and is the author of "Pragmatic ADO.NET" for Addison-Wesley.

Return to ONDotnet.com

Copyright © 2009 O'Reilly Media, Inc.