Microsoft's Extensible Application Markup Language (XAML) promises to usher in a new era in the development of applications by clearly delineating the different operations involved in building applications. As part of the Windows Presentation Foundation, XAML provides an infrastructure to allow designers, developers and business process managers to coordinate their areas of expertise through a fluid processes.
That was the clear message of a recent Burton Group report, "XAML: Declarative Programming Advances in .NET 3.0."
"By following and contributing to best practices for design, developers and architects will begin building highly adaptive applications with new declarative layers for user interface (UI) and business logic," wrote Chris Howard, vice president and service director, Burton Group. "Development shops that embrace the advantages of XAML and restructure their software development lifecycle (SDLC) to accommodate XAML-based tools will become more productive."
XAML has so much potential, Howard wrote, that if Microsoft decided on open standards or licensing, XAML "could easily become the universal grammar for declarative programming, regardless of the target implementation language."
Improved collaboration and productivity
Using the current generation of programming tools, a significant hurdle exists between the design of the user interface and the user experience, and the coding of the application. Parimal Deshpande, senior product manager for Windows Presentation Foundation at Microsoft, said XAML accomplishes two things -- it separates the User Interface, or UI, and business logic, it allows tools within Visual Studio and the design environment to access the same data.
"There is a need for good architecture principles and separation principles to have a clean separation between UI logic and business logic," Deshpande said. "It was very frustrating for developers and designers to work off the previous model because it took a lot of time and then end result was not all that great."
Ron DeSerranno, CEO of Mobiform Software, which makes the Aurora XAML graphics authoring tool, noted that WPF and XAML provide 10 times the capability that was available with traditional Scalable Vector Graphics programs. He added that the technology is allowing him to write applications with better interfaces in half the time it took using traditional .NET development tools.
Designers typically create a mockup of what the program is expected to look like using a graphics tool, or even pen and paper, which the programmer attempts to implement. But owing to limitations of time and programmer expertise, the final product commonly falls short of the designer's expectations. Microsoft's Expression family of design products, and other tools that output XAML, allow designers to create a user interface and save it as a XAML file, allowing developers to create the programmatic infrastructure around the prototype design.
"You are going to start seeing graphics artists and designers incorporated into the development process," DeSerrano explained. "Right now, there is a large separation of where documents, video, and audio live. It gets complex when you start mixing them together. With XAML, you will see more of a merging of those worlds."
For example, XAML will make it easier to paste video clips onto objects in 3D virtual worlds within the interface. "Companies are looking for the next level of experience for their users. They want to have compelling tools for selling retail products to consumers," DeSerrano noted. He also expects to see early adoption in CAD applications, GIS, medical imaging, industrial control systems and other applications that are graphics-oriented and require animation.
XAML challenges, and how to overcome them
Howard noted in his report that XAML is part of a general trend toward abstraction in software development. The obvious benefit is less time writing code, he said, but the emergence of model-based development and visual design tools into the controller logic of applications may make some developers uneasy at first. "Eventually, as patterns and guidance emerge that distinguish declarative business logic workflow from application controller logic," Howard said, "many developers will embrace the declaration of business logic as a design practice and leverage it for creative solutions."
Other hurdles exist between the creation of workflows -- those that specify how data is to be used within an application and those that illustrate the roles of multiple participants in various business applications. Business process experts will be able to save their proposed workflow as Extensible Orchestration Markup Language (XOML) files, a special case of XAML file types, which specify the workflow logic within an application as part of the Windows Workflow Foundation. WF includes support for both system workflow and human workflow across a wide range of scenarios.
"WF allows for creative manipulation of running workflows, ranging from modifying activities to loading XAML workflow segments to generating completely new processes," Howard wrote. XAML tools will make iteration more natural, since the translation step is not longer an issue. However, he cautioned that, to avoid "the silo mistake" of automating workflow and then forgetting about it, "WF design will require workflow analysts to break down processes into smaller application-level business logic flows."
Microsoft plans to release the first official versions of XAML and WPF when Windows Vista ships late this year. It is also working on Windows Presentation Foundation Everywhere, or WPF/e, which will allow a subset of WPF to run within a variety of environments -- various browsers, devices, and operating systems such as Linux and the Mac.
Other vendors are also starting to release tools optimized for creating XAML files, such as Mobiform with Aurora and Electric Rain with ZAM3D. Along with WPF, Microsoft's XAML tools include Expression Interactive Designer for applications, Expression Graphic Designer for graphics, and Expression Web Designer for Web sites. All three Expression tools remain in beta.