XAML (pronounced Zammel) is an XML-based language for describing graphically rich visual user interfaces, such as those created by Adobe Flash. In typical uses, XAML files are produced by visual design and developer tools such as Microsoft Visual Studio. XAML extends the functionality of XML, which was designed to store data, by adding the ability to define properties for user interfaces and events. This allows applications to be developed faster.
XAML provides an abstraction layer that separates presentation from logic, letting designers maintain the overall design in XAML. XML markup, which is stricter than HTML, is a more natural fit for logical components, and it eliminates code duplication common to most Web solutions.
Benefits of employing XAML architecture include:
-- Increased visual consistency and productivity through component reuse and device-independent markup.
-- Partnership opportunities - integration of third-party applications is smoother.
HTML was developed primarily for use on the Web, whereas XAML's principal target is applications that run directly on Windows.
Unlike other markup languages, XAML is designed to integrate directly with .Net. Moreover, XAML browser applications are intended to combine the best features of Web applications and rich-client applications. As with a Web application, XAML applications can be deployed from a server to a system with a single click.
When distributing an application, the advantages of being browser-based vs. locally installed are clear, including easier rollout and maintenance. Consider an example of XAML in use within a browser-based content management system (CMS) with multiple geographically dispersed editors. XAML provides, among other things, a Web desktop, which lets users open multiple windows in a single browser.
XAML is used at two levels in the software: for the CMS application and for the Web sites that are created using the software.
Within the CMS application, XAML is used to manage, customize and extend the browser-based user interfaces to the CMS repository. XAML components are compiled into .Net Common Language Run-time instructions executed by ASP.Net for maximum performance. Only with XAML could a CMS vendor build a user interface comparable with the Windows desktop yet still run the application in a browser. This provides an extremely flexible interface familiar to users that can be quickly customized without major reprogramming.
In the development of customer-facing Web sites using the CMS, XAML presentation components are used along with standard ASP.Net technologies (such as aspx, ascx, XSL and Web controls). Coding with XAML avoids the burden of maintaining legacy code and paves the way for next-generation, rich Internet applications.
A CMS is a good example of where simultaneous development of presentation elements by the design team, and logic components from the development team, can be created in parallel with XAML and combined in a modular format to create a dynamic application or Web site.
With the new Microsoft Vista operating system starting to blur the line between the Internet and Windows environments, XAML is increasingly becoming an attractive option for development of applications that also cross this divide.
Microsoft seems to be moving toward using other applications that generate XAML automatically rather than promoting coding directly in XAML. But the ability of XAML to draw together .Net components and other XAML renderings in a very simple process shows it is a strong tool in its own right.
West is director of technology for Sitecore.