Since the inception of the first version of Windows, graphical user interface (GUI) design has not changed much. Though languages have come and gone, and also evolved with the operating system, even to the extent of wrapping these APIs and simplifying GUI design, the core base of original API functions for interacting with Windows has always been at its heart. User interfaces have always been primarily created by software developers, who oftentimes are not the most skilled at graphics design, or usability. Now with the Internet being increasingly part of our daily lives, people see the rich set of graphics and controls on the web, and wonder why those same rich graphics aren’t part of their stand-alone Windows applications.
XAML, which stands for eXtensible Application Markup Language, is a new XML compliant syntax for declaratively creating user interfaces separate from the code behind them. It is part of the new set of APIs that are being introduced in Windows Vista called WPF (Windows Presentation Framework, previously code named Avalon) and will radically change how applications are developed for Windows. WPF, along with other new technologies for cross process communications, are together called WinFX. For the first time, not only will software developers be able to create user interfaces, but now graphics artists and designers will be able to create user interfaces that developers can attach their code to, much like how many web pages are developed today.
XAML in a Nutshell is divided into two parts. The first half of the book is a general primer on how to create an application front end with XAML. Even if you’ve never heard of XAML, this book gives a good starting point to begin your investigations into this new technology. The author lists all the resources you’ll need to begin developing applications, and makes sure to provide sample code that will work with the free tools available. General syntax is covered, as well as the basics of layout and positioning, graphics resources, and animations. Because this new way of creating interfaces is so different than previous methods used for Windows programming, it is very good to see that the sample applications are very simple, and build on each other one step at a time, adding only one new concept with each step. This way, you can see how minor changes to the code can sometimes have radical effects on the overall look of your application, and compare different layout mechanisms side by side.