Windows Vista’s new presentation subsystem, Windows Presentation Foundation (WPF), totally rewrites the OS’s design capabilities, offering resolution-independent, vector-based graphics and fonts, multimedia support, data binding, adaptive onscreen layouts and fixed print layouts, animation, 3D and more. But how do you go about putting this new power to use?
Well, WPF supports XAML (eXtensible Application Markup Language), which enables designers – not just programmers – to exploit all of WPF’s new features via a comparatively straightforward markup. XAML is declarative rather than procedural: you just declare what you want to see – a title so big here, a user form there – without having to specify how this will actually be achieved. In this respect, XAML is very like HTML, whose declarative markup of text content is interpreted by a web browser. XAML files too consist of tags and attributes in angled brackets surrounding the actual textual content, so in theory you could write them using a simple text editor. However, in practice, that isn’t feasible, because XAML is far more complicated than HTML, with dozens of tags and attributes, and is based on a far less forgiving XML syntax – one error will cause a whole project to fail. To take full advantage of WPF via XAML, you’ll need dedicated tools.
The potential here is enormous because XAML is an open standard, so expect a flood of new authoring tools and XAML export capabilities for existing ones. In fact, the first solutions are already here, such as Mobiform’s Aurora XAML designer and Michael Swanson’s XAML exporter for Illustrator. Inevitably, though, Microsoft has a head start over these third-party developers and the powerful advantage of controlling where WPF and XAML will go in the future. Alongside Vista and WPF, Microsoft is launching its own Expression suite of applications aimed directly at the designer.
Expression Web, formerly called Expression Web Designer, is built on Microsoft’s experience with the user-friendly but standards-flouting FrontPage. With its new focus on rigorous adherence to the XHTML and CSS standards, Expression Web is intended to leapfrog Adobe’s Dreamweaver and seize the web developer high ground. Its user interface and approach are those of a professional programming environment – as in Visual Studio, you drag controls from a main Toolbox onto a page layout and then modify their attributes in the Tag Properties palette. Such an approach is largely overkill for XHTML’s simple tags and attributes, but it’s well suited to CSS authoring and especially Microsoft’s data-driven ASP.NET 2 controls.
Expression Web’s environment would also be a natural place to edit XAML, but this feature is notably absent from the current beta. On reflection, though, this makes sense, because the web is built around cross-platform standards. There’s little point in writing XAML pages that are only viewable on WPF-enabled systems until these become ubiquitous. It’s a chastening reminder that while Microsoft may dominate the desktop, on the internet the humble web page and cross-platform XHTML/CSS standards will rule for some time. With Expression Web, Microsoft is determined to prove it can support these standards.