Xaml As Documents, Again
A while back, I wrote a post on Xaml as Documents, predicting that XAML will also be a pervasive document format. Recently, I discovered further evidence for my prediction.
In the Longhorn SDK, there is a help page called Avalon-based WinFX Applications Overview. In a section on application types, reprinted below, the page lists three types of documents--traditional Windows/Forms applications and two other "navigation applications," consisting of multipage applications and documents.
- Multipage applications. Multipage applications are conceptually similar to Web applications. They consist of a collection of pages, each page containing a user interface (UI) for part of the application. When the user is finished with a page, they navigate to the next, and so on.
- "Windows/Form" applications. This application is similar to a conventional Win32 application. The window is treated as a canvas and redrawn as needed in response to user interaction.
- Documents. Documents are basically a type of multipage applications in that they consist of a collection of pages that the user can navigate between. However, documents are primarily focused on delivering content such as text and graphics. While they can contain active elements such as controls, they are not full-fledged applications. The distinguishing feature of documents is that they are packaged in a container rather than a .exe file. The container provides services such as Digital Rights Management (DRM) and digital signing.
The page goes on to talk about document containers, somewhat similar to the MHTML web archive file format, but instead using compound files (using the extension .container, I believe) that contain a tree of XAML pages and other resources like images. Document containers will include support for digital rights management and digital signatures. In addition, XAML will contain document-centric elements such as the Document, AdaptiveMetricsContext, PageViewer elements. Longhorn will also likely support various annotations on these standalone documents, possibly storing these annotations alongside the document through WinFS.
The reason why I find this interesting is that XAML could become a universal document format in Longhorn. Longhorn will provide a means to view XAML documents containers in IE, independent of any other application. In addition, it will likely be able to operate on these documents such as by applying annotations, performing searches, and printing. Since XAML allows references to custom assemblies in its markup, these documents could theoretically consist of third-party controls that Longhorn can render.
I am not so sure if Longhorn will provide a way to construct or edit these documents, unless the rumored "Sparkle" XAML designer ships with the OS instead of Visual Studio; however, Sparkle is probably for developer or designers, not end-users.
If Longhorn has its own document format that it understands, will it make more sense for third-party applications to emit XAML as their own document format? Especially, since the XAML will provide rich capabilities. The text component, for example, is expected to go beyond the existing richtext and HTML controls in Windows to match modern wordprocessing capabilities with support for pagination, wrapping, footnotes, multiple columns, and the like. In some areas such as typography, it will even surpass Word. Will future document-based applications essentially be XAML editors? Does XAML have any implications for Word and Excel and their closed document formats?