os Angeles?Microsoft rolled out a superabundance of new technology at the Professional Developer’s Conference (PDC) in Los Angles this week?so much new technology that it’s difficult to determine which of the various new capabilities developers should pay immediate attention to.
In the foreground: Whidbey, the 2004 release version of Visual Studio.NET, with major enhancements not only to its primary patron languages, but UI and functionality improvements to the IDE itself, which Microsoft product managers promise will increase the productivity of the typical developer by 50 percent.
On the horizon: Longhorn, the next version of Windows, with a 64-bit file system, a Web services management framework, and a graphical user interface that is bound to impress even the most stoic developer at least a little bit.
And somewhere in between is Yukon, which will bring more powerful business intelligence and data analytics to SQL Server developers, as well as a more productive user interface, and built-in support for Web service-based transactions.
And here in Los Angeles: At least 5,000 developers, juggling nearly a dozen code names and struggling to absorb a complex and insular, but promising future for the Windows developer.
Longhorn: A Better File System
While coders are already coveting Whidbey, which, among many other things, will finally bring edit-and-continue back to Visual Basic, the most exciting demonstrations centered around Longhorn. The Windows versions you’re using now marks the end of Win32 as the dominant Windows API. Longhorn uses WinFX, a larger and richer API. Fundamental changes to the OS extend to the similarly named WinFS?a new file system based on the tried-and-tested NTFS file system, but that extends it to fulfill three key functions, said Senior Vice President Eric Rudder: Find, Relate, and Act.
Find?Includes schemas that make it easier to locate data.
Relate?Reveals relationships between data.
Act?Utilizes agents to act on your behalf in communicating with the file system.
In Longhorn, ALL users’ data will make its way into the file system?not just files, but contacts, objects, multimedia, etc.?where they are referred to generically as items. WinFS allows items to be attributed with metadata, which is used to make deep associations between them. From a user experience perspective, this metadata association is used to dynamically discover related data. WinFS is better than anything that’s come before it for searching and sorting. Users can find related data by, say, customer name, project name, location?basically any characteristic they can think of. Creating associations between items is done on the fly via drag and drop data binding. Avalon, the codename for the Longhorn UI, adds some nice features such as mouseover highlighting on associated files and animated, dynamically generated semantic views of related data.
WinFS also lets users perform natural language searches that can execute advanced associative queries. For example, in the demonstration WinFS was able to find documents of a certain type that mentioned sums of about $1.6 million.
Avalon: Vector-based GUI
As with Windows XP before it, the graphical UI for Longhorn is impressive at first blush?and probably well beyond. But even if it were to look exactly the same, Avalon is a huge improvement to Windows because it is vector-based. As Flash developers have long known, vector graphics are faster, more scalable, and have lower overhead than traditional bitmap-based graphics.
Avalon includes a handful of features that cannot be categorized as merely slick-looking, though they are that. For example, scrollbars in Longhorn can be moused over to provide a preview of any page in your document. The preview pops up as a semi-transparent thumbnail next to its region on the scrollbar?and it retains any embedded multimedia in your documents.
The Longhorn desktop uses a “sidebar,” which is used as a holder for things the user needs to have handy, such as an integrated IM buddy list, recently used files, and an integrated RSS feed; users can drag and drop items onto the sidebar as they wish. Longhorn also adds real-time collaboration features that allow trusted users to push live images from their machines onto another.
Indigo: Enterprise Service Framework
The third major arm of Longhorn is Indigo, a secure framework for Web services that is capable of supporting transactional data. Indigo lets you build Web services that span multiple transports, handle various encodings, and work across multiple network topologies. One of its most important capabilities is to expose functionality from older systems built on COM+ and MSMQ through Indigo without modifying existing code. For enterprises where interoperability and data integration have become high-priority headaches, Indigo will be compelling. And it gives existing Microsoft customers an easy path to service-oriented applications.
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 language?including 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 content?a 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.