XAML - Extensible Application Markup Language (pronounced "Zammel") -- is fundamental to Microsoft Windows Vista and .NET 3.0, and promises to bridge the gap between designers and developers. To use these new tools effectively, though, organizations need to re-examine their software engineering practices and strengthen their software development life cycle (SDLC), according to Burton Group analyst Chris Howard in a recent Webcast on XAML.
"It opens the door for non-engineer developers," said Howard, vice president and service director for application platform strategies at Midvale, Utah-based Burton Group. "People all across the SDLC are starting to contribute, so it places more stress on the SDLC."
XAML is a declarative programming language that provides the grammar for domain-specific languages (DSLs), and underlies both Windows Presentation Foundation (WPF) and Windows Workflow Foundation (WF).
According to Howard, XAML cleanly separates the roles in a project while at the same time increasing the compatibility of the artifacts produced, since both user interface designers and developers are speaking the same "language." "The promise of DSLs is providing people with the right tool at the right time," Howard said.
Declarative programming increases the level of abstraction, which increases developer productivity and is a "hallmark" of the evolution of technology, Howard said, but there are some caveats. "You're working with an environment that architecturally keeps you safe, but the complaint I hear is maybe it's too constraining," Howard said.
"Some developers will love it, some will want to keep their distance at first," said Rob Relyea, lead program manager for the WPF Team at Microsoft.
A solution, Howard said, is to combine the declarative aspects with code behind, but organizations need to think through their designs. "By abstracting, you're making it more productive for the things you don't want to write more than once, but it allows you to hook into code behind. So you can do pieces that are declarative, pieces that are structured, pieces as Web services. But it means you have to consider design very carefully. What am I going to make declarative? And you have to build those standards into the way you build applications," Howard said.
"In WPF and Workflow, both models give the option of ignoring markup completely and coding away, and both allow the flexibility of XAML parsed at runtime," Relyea said. "The story of XAML started on the WPF team, and over time we saw WF with a similar technology." The teams talked about leveraging XAML for WF as well, he said. "XAML encoding of workflow is clearly taking off. They're [the WF team] finding many of their customers like to have it human readable/writable for quick manipulation."
For development teams, XAML is the unifier in what has often been a disjointed process, Howard said. "The SDLC today in most shops, you have a user experience team working in Visio, you've got a marketing team that produces ad materials, you've got business analysts building workflow in some kind of tool. There is a lot of disjunction. XAML as a universal grammar unifies," Howard said. "If the idea works - a unifying language across artifacts - it becomes a powerful thing, but it causes you to revisit [the SDLC]."
XAML is the language used in Microsoft's new Expression line of tools, which are targeted to designers. Now, the output from the Expression tools can be the input to Visual Studio. This commonality allows domain experts to contribute directly to development, without losing anything in translation, Howard said.
With this ability, a big question development organizations need to ask, Howard said, is are they correctly staffed? "Most big shops I deal with, their shops are spread out and it's hard to get people on the same floor to work together, much less crossing boundaries, especially with designers," Howard said.
That's a "big challenge," Relyea agreed. "Many people don't have graphic designers along with their staff, but you've got a great story when you have a team with multiple disciplines."
In terms of staffing, an emerging area to watch is the development of user experience teams, Howard said. "They have nontraditional backgrounds, but they're experts in how people interact with machines and with each other. They can translate that into design and hand it off to the engineering process." Howard said there are examples of this approach in the financial services industry today.
However, Howard does caution that organizations need to clarify the roles of developers and designers. He also said there are some security concerns with the ability to pull XAML in from the server. "You like to think people have things locked down, but there is still a potential risk," he said.
Still, Howard recommends that now is a good time to get started with .NET 3.0. He suggests staffing development organizations carefully, "and don't limit yourself just to technology roles."
From Microsoft, Howard said he is looking for "advice on where to write what. Organizations will need guidance in terms of best practices."This article originally appeared on TheServerSide.NET.