VB Welcomes Whidbey
"Whidbey" provides updates to the .NET languages and the IDE, adding much-requested (and much-needed) features to VB.NET, Visual C#, Visual C++, and J#. Those changes are geared toward differentiating the languages, improving performance, and improving productivity by reducing both development time and the number of lines of code that developers have to write to achieve common business goals, while still maintaining the level of language interoperability that developers enjoyed in Visual Studio 2002 and 2003.
For many VB developers, the return of edit-and-continue will be enough to make Whidbey earn its keep. But in a technical presentation Tuesday, Chris Dias, VB Group Program Manger, explained, "We're not trying to just bring back all the features that we lost in the move to .NET. We're not going to go 'oh we've got edit-and-continue, so we're just going to move onto the next level.' "
So besides edit-and-continue, VB.NET gets operator overloading, generics, and support for partial types, which is the ability to split a class or type between more than one source file. In addition, Microsoft has added significantly to VB's RAD capabilities by simplifying and improving the IDE with such features as more intelligent and intuitive docking windows, simplified and streamlined menus and property windows, in-place text and property editing (for example, you can now set a control name or change its text by typing directly into an editable window that appears over the control), and making other property settings available without navigating to the Properties window.
You no longer need to go through the legacy drop-down windows in the IDE to implement event-handlers; they're available from the Properties window as they have been in C#. Developers can create fully-functional data-bound forms by simply dragging database items (tables, views, stored procedures, or fields), Web services, or business objects onto a form, whereupon the IDE uses the underlying schema or Reflection to determine and create appropriate labeled control types to display or edit the data.
There are a variety of improved controls: a more intuitive splitter, an enhanced grid, a WebBrowser control, and a new Table control that functions much like an HTML table. Microsoft has simplified layout tasks by adding "snap lines": guides that let you line controls up without a grid and help you align labels along font baselines rather than against the edges of other controls. As you move controls, visual hints appear when control spacing meets Windows interface guidelines.
Also new is WinBar, a dockable, Office-like toolbar, and the data container, which binds contained controls to data. Product managers promise a more efficient, interactive debugging cycle; more sample code snippets; an auto-correct feature; and a task-oriented, customizable Help, optimized for VB language issues.
Whidbey: Spreading Joy
C# language developers have been long asking for generics, and Microsoft is delivering. In Whidbey, C# will support generics, anonymous methods, iterators, and partial types.
The Visual C++ team, too, has been working on enhancements for the Whidbey release, which for the most part are focused on bringing the language and .NET closer together, explained Brandon Bray, program manager for Visual C++. "Our goal for Whidbey is to bring C++ to .NET," said Bray, "But also to bring .NET to C++to make sure that all the features of the CLR really work well for C++ programming."
The Microsoft team, Bray said, has been working closely with C++ language heavyweights to create "natural and pure extensions to ISO-standard C++", with the goal of improving the quality and developer satisfaction with the managed extensions for the languageincluding support for deterministic finalization.
For Web developers, the Whidbey version of ASP.NET includes a new feature, called the Master Page, which is essentially an include file on steroids. It allows the developer to encapsulate persistent graphical elements of a site in a master file, which means individual pages contain only the code needed for its unique, page-specific contenta feature that Microsoft referred to as "visual inheritance for the Web." Master Page files can be also be nested with sub-master pages.
One of the more jaw-dropping demos at PDC was ASP.NET's personalization features. Product Unit Manager Scott Guthrie showed how in Whidbey developers can enable users to change the default page configuration by dragging and dropping controls and data source objects. ASP.NET remembers and delivers these presentation preferences in the future on authentication.
Some of Whidbey's best improvements are usability enhancements that aren't language specific. For example, developers can take advantage of new ClickOnce deployment and can preview, via a dynamic highlighting feature, the positioning of a dragged toolbar or menu on the Visual Studio desktop before it is dropped.
Reading Between the Lines
Of course none of these enhancements are very near. Whidbey is almost beginning to seem like it might get here before too long; Longhorn still feels like light years away. But still, attendees can be hopeful that all of this will be delivered, in part, because Microsoft brought with them plenty of demos. But as always there are some messages that are less direct. What does it mean, for example, when executive after executive reminds us how important it is to move to managed code? It may be stated as a suggestion, but developers need to be reading between the lines.
With nearly every language and every product family entering the post-.NET era, assumptions become very dangerous things. Executive Editor A. Russell Jones gives us his first-hand analysis of this "A Technological Sea of Change." Whether you are here in L.A. or monitoring PDC from afar, if you write Windows applications, you shouldn't miss it.