WinFX is the programming model and WinFX SDK is the development library for the upcoming Windows version of
Longhorn. Longhorn is supposed to be the first
operating system built on managed code and is slated to be released in 2006 and
the WinFX will be released also for Windows XP and 2003 Operating Systems. The
WinFX released in March this year is now available as a Community Technology
Preview edition. Of course this is available to all MSDN subscribers.
The plans for Longhorn include a new storage sub system code named as
WinFS, which is built based on the database and xml based models for storage
and capabilities for natural search and additional security.
The WinFX separates the application development in two ways one for
Presentation and the next for Communication with each one named as Avalon and
Indigo both of which are the heart of WinFX development.
Avalon is the new graphics programming subsystem for the presentation layer of
applications in WinFX. This has added another declarative, mark up based graphics programming language called
XAML for developing Windows and Web applications. Avalon presents a rich
set of GUI options with choices for writing hosted applications (web
pages) which use the objects of type NavigationalApplications or Installed
applications which use objects of Applications. The other set of
options being Multi page apps containing options for navigating to different UI
pages, Windows/Forms applications with are similar to our normal Forms applications
and Documents.
Indigo is the programming subsystem for Service oriented
applications in WinFX. This is built on the previous web services platform allowing developers to expose an array of
web services over the network. It can be called as a Communication infrastructure used for building
distributed applications. It in fact uses a combination of transports like HTTP,
TCP, UDP and IPC.
The programming in Indigo involves two way approach viz. building a Service Providing application and then a Service consuming applications.
The beauty is Indigo can be used to extend even COM+ Applications. The Indigo programming used the namespace System.ServiceModel,
System.Runtime.Serialization which contain the necessary classes and namespaces for writing Indigo services and serialization features.
The documentation for the WinFX is still in the pre-release mode and yet to be improved. The WinFX MSDN still says the documentation is incomplete and contains a lot of placeholders to be filled with more documentation.
A good resource to know the basics on Longhorn is the Longhorn
Faq at Microsoft site.