What Is Being Unveiled at the PDC this Year?

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:

Generics

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:

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.

VB.NET Changes

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

C#-like documentation: A new commenting system that works much like the C# counterpoint to allow self-documenting code.

Edit-and-continue:They have finally re-enabled the VB-like edit-and-continue way of developing. How I wish C# would get this; but for now, it's a VB.NET-only feature.

ASP.NET v2

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:

More controls: A large number of controls have been added for all sorts of ASP.NET work.

Master Page System: Provides a way to create a master page with other pages that derive from it in a more normal way than ASP.NET does today. Allows the master page
to show the developers what sections of the page they are able to change.

ASP-style development: Out of the box, developers can develop ASP.NET sites with automatic compilation -- no more hacking a solution file to make this
happen. It will be supported implicitly.

Built-in support for personalization: Most new controls support personalization by individual users by default. Since most of
the web sites out there need this, Microsoft seems to be listening.

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:

ObjectSpaces: This much-vaunted project is finally seeing the light of day. This project allows you to create a mapping between a set of classes
and a database store, so that all of the serialization to the database is handled in a seamless way.

DbTables: In order to bridge the ADO and .NET worlds, Microsoft has created a set of classes called DbTables that are more general use single resultset objects. In other words, more
like disconnected ADO recordsets. Under the covers, these were implemented with ADO.NET so that they are not just a cheap port of ADO or some other bastardization.

New XML stack: There have been a number of improvements across the XML stack to add features and standards that did not exist at the time of the 1.1 writing. There are
also expectations of performance improvement, especially in the new transformation (XSLT) engine.

Visual Studio .NET v.Next

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

Visually docking windows: No more being caught up in the purgatory of trying to get your windows in the IDE to dock where you like.

Better debugging: The debugger now handles collections much better than before. In addition, walking through code will automatically skip code that isn't
yours. No more hitting some framework or x86 code that is sandwiched in between two calls that you are debugging.

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.

MARS

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:

"Avalon"

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:

"Indigo"

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

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.

Conclusion

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.