The Longhorn Pillars
Four pillars of Longhorn from a developer perspective:
- Avalon: new display subsystem (composition)
- Indigo: communication and web services
- WinFS: structured, schema-based storage
Fundamentals: getting the basics better (deployment, reliability, performance,
WinFX is the new API (MS-DOS -> Win16 -> Win32 -> WinFX). It is written using
the .NET Framework and enables you to write Longhorn applications using managed code.
- Easy deployment for new applications with ClickOnce.
New services for migration from one machine to another. Aim is to reduce the work
necessary to rebuild a machine or copy settings from one place to another.
- Fast rebooting via non-volatile memory
- Adding a lot of code to improve pre-fetching of code – called “SuperFetch”.
- Security: no-execute flag for pages in memory (requires hardware support).
Today there is a dichotomy between web- and Windows-based applications. Both have
strengths and weaknesses (deployment, graphics, connection etc.)
Avalon provides a unified presentation model for Windows, web and media applications.
It provides a vector-based composition engine (replacing the current 2D/3D model).
Full HighDPI support – can describe dimensions in inches, pixels or points.
Most importantly, we have moved to a “declarative programming model”. XAML is a markup
language that enables you to separate code from content. With XAML, you build up the
UI design as an XML file, with code-behind partial classes implementing the underlying
functionality. The XAML gets compiled into a partial class too, and together they
make up an executable.
XAML allows you to add flow-layout as well as absolute layout. You can dynamically
add transform decorations too (scale, rotation, alpha blending etc.)
MSBuild provides an XML-based build system that enabled command-line or IDE-based
The bits that PDC attendees receive contain a development theme called “Slate”; this
isn’t the final theme. The final theme is codenamed “Aero” and was demonstrated in
the BillG keynote: very “glassy” with lots of transparency.
WinFS provides a schema-based structure that allows for metadata to be created and
searched in an arbitrary order. No longer are you limited to a hierarchical file system
structure – you can drill down according to dynamically-chosen properties. Longhorn
will include some standard schemas (for example, people, calendars and documents);
you can extend these schemas or build your own.
As well as the schema, WinFS is of course a store. You can physically store object
data in the engine and perform rich queries on that data.
It’s important to note that WinFS understands the relationships between different
objects (so for example, a person and their documents can be related). WinFS itself
is stored in NTFS as streams.
Indigo will provide a message-based communication model based on web services (it’s
in the new System.MessageBus namespace).
It also offers support for collaboration (including a new unified API). There will
be a single namespace for contacts that includes presence information.
Ports are the means via which messages enter and leave an AppDomain. Channels are
I/O devices that are used to get messages in and out of a port.