JimAll: One Lap Around Longhorn

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,
    security).

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.

Fundamentals

- 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).

Presentation

- 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
    compilation.
  • 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.

Storage

- 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.

Communication

- 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.