2004-03-01
| Rate This Article: | Add This Article To: |
You can tell from the disclaimers plastered all over every technical document that the next generation of Microsoft Windows, codenamed Longhorn, is still very much a work in progress. That's not surprising, since Longhorn won't see the light of day, in shipping form, for at least another year, if not two. Despite the work-in-progress feel, Longhorn's influence is already being felt in the development world, as tools and techniques emerge that will give developers a head start in building apps for what Microsoft describes as the most significant operating system development since the move to 32-bit Windows. Microsoft distributed early code at last fall’s Professional Developers Conference, giving developers an opportunity to see what's in store.
Longhorn is very much a developer's operating system. Built with managed code (that is, code which runs in the context of the .NET runtime environment), it's the first Microsoft OS to include a compiler (C# buffs are the lucky winners here) and a unified build system that brings together Visual Studio, the platform, and the SDK with a single build format.
Managed code gives access to all sorts of goodies through the Common Language Runtime (CLR), such as memory management, cross-language integration, code access security, and automatic lifetime control of objects.
Yes, objects. Object orientation is alive and well and living in Longhorn, and thanks to this, Microsoft says that multiple deployment scenarios will be easier than ever. A central application object will contain the properties, methods, and events that allow you to assemble the application.
In fact, says Microsoft Canada's senior marketing manager, Web Services, Ben Watson, “It's easy to imagine a Web app that looks, feels and acts like a Windows application, but still is able to update itself, run locally, and is written in managed code.”
It's difficult to talk about developing for Longhorn without a look at the so-called “pillars” of the new OS: Avalon, Indigo, and WinFS. They provide the wherewithal to turn development on its ear, allowing programmers to work magic like that described by Eric Rudder, Microsoft senior vice president, Servers and Tools, at the PDC: cutting the number of lines of code in a secure transacted Web Services application from 50,000 in Visual Studio .NET to a mere three with the help of Indigo!
That, obviously, was an extreme example, but Lenny Louis, product manager, .NET Developer Tools, at Microsoft Canada cites an up to 70 percent reduction in code when building .NET data access applications under Longhorn, and up to 50 percent using Visual Basic.
Avalon is the face of Longhorn. It is to Longhorn what the now creaky old GDI and user.dll were to previous versions of Windows (though backwards compatibility is designed in). With Avalon, you can write applications that resemble the Windows Forms applications of today. But, there's a twist. Avalon also defines a new markup language, codenamed XAML (Extensible Application Markup Language). It's based on XML, so it will look familiar to Web developers, but XAML allows the entire UI to be dynamically rendered from data if necessary, and can be compiled for execution. Combine XAML with procedural code that does the work, and you're off to the races. And don't forget the “X” — XAML is extensible, so if you need a new component, you can build one.
Of course, you don't have to use XAML; everything it does can be done in procedural code. Similarly, you can write simple programs entirely in XAML and dispense with the program code - but only very simple ones. XAML is designed for presentation; Microsoft expects that design software will ultimately generate most XAML code as graphics specialists create user interfaces. Programmers will then be free to write their programs without fussing about the visuals.
The second pillar, Indigo, is the communications subsystem. It relies on messages in in-memory SOAP envelopes being delivered to services (autonomous programs that interact via messaging) via channels through ports. Microsoft defines a port as a location in network space, residing in a single AppDomain, that has one or more associated transport channels. Messages move through a port via these channels, which may also add processing code. Destination services can be self-hosted, or activated on demand by ASP.NET.
Indigo is, in fact, the next step in the evolutionary path that began with COM, COM+, and MSMQ, and from there through .NET Remoting, ASMX, System.Messaging, and .NET Enterprise Services. Says Watson, “It bakes Web Services right into the platform.”
The third pillar, WinFS, is a new way of accessing data within Longhorn. Sitting on top on NTFS, it uses a data model based on relational database technology to allow users to find their data without having to worry about directories, files, or applications. Data flow can be monitored and managed, and users or applications can be notified of data events. For example, an E-mail program can be instructed to forward messages to a mobile device if the calendar indicates that the user is out of the office.
In its current, incomplete form, WinFS's data model uses items, and their relationships, in an extensible schema. Its programming model exposes relational, object-oriented, and XML-based APIs for maximum flexibility in accessing the data store. It remains, however, compatible with Win32 APIs.
The first set of tools that talks to Longhorn is included in the upcoming Visual Studio .NET, codenamed Whidbey, that will be released this year. But the real goodies will be in the next version, currently known as Orcas. If it sticks to schedule, we should see it sometime in 2005.
Where Whidbey will give access to new IDE enhancements, the CLR, Office solution development, improvements in the .NET Framework and SQL Server Yukon integration, Orcas will add WinFS, Avalon and Indigo support, new UI tools, enhanced security, and XAML.
MSDN subscribers can begin to play with Longhorn now. The pre-alpha version of the operating system that was first distributed at the PDC is now available online, in the MSDN Subscriber Downloads. The SDK is available at the Longhorn Developer Center Web site.
|
![]() |
|


