Interesting argument that XAML isn't a big deal at http://weslandia.org/blog/archive/2004/04/02/156.aspx. Am I the only person getting confused on who the people are behind some of the blogs? How about an “About me“ link on the page so I'll know who I'm having the conversation with? Maybe it is there and I just can't see it. As my response was turning into something of length I decided to post here. It's an interesting topic and I'm often slightly split on my thoughts when it comes to the importance of XAML in the whole scheme of things.
If I'm looking at the functionality that is enabled in Longhorn then I can argue that XAML is really not that much of a big deal. After all it is simply a markup language for wiring together .net objects. XAML is not directly related to any of the actual capabilities of the Avalon system in Longhorn. What is interesting is the databinding, element compostion, vector graphics, animation etc. that Avalon provides. XAML is just one way to implement that functionality and I could equally use any .NET language.
However if we think about the new types of application that Avalon and Longhorn allow us to build then XAML is a very big deal. With Longhorn the quality of design in an application will become more important than it is today. Today a designer authors a design for a dialog in an advanced design tool and a developer has to translate that into something that looks correct in a developer tool such as visual studio. If the designer is lucky then they might get something approximating what they originally wanted. However if the designer wishes to adjust the logo in the dialog box then they modify the original in the design tool and the developer once again has to try and implement the change. With XAML it allows both designer and developer to work alongside eachother in the same codebase. The developer works on the functionality that they wish to in a developer language such as C# or managed C++. While the designer can work in a design tool that understands XAML and create some very rich user experiences. An example of how designers can be bought closer to the creation process can be seen in the Longhorn SDK at http://longhorn.msdn.microsoft.com/lhsdk/Samples/demos/loginscreen/wcpsamp_demosample_LoginScreen.aspx Here a login page has been created by a developer who wires up all the necessary functionality for a user to login with button handlers etc. The Designer separately creates a set of XAML pages for this to give each user a different look and feel without having to interrupt the developer at all.
Of course all this is going to need a rich powerful design tool for the designers and a development environment that allows designers and developers to work closely together. Having XAML as a first class language that a designer targets though is a very important step in creating an environment where the designer is empowered to directly implement their design thoughts in a real application.
To address a couple of the questions:
Why do I care if a visual designer creates XAML or C#? In fact, why would I want to have my business logic in c# and have my UI in XAML?As a developer you probably don't care much at all as long as you can access the buttons and other elements that are being placed on the form by the design tool. Although visual design tools are likely to persist in some form of declarative format so that the files can be read and written with some form of fidelity.
We've seen how important markup has been to the internet with HTML and XML. A declarative model is very powerful for certain uses and allows a great deal more productivity and toolability than might be obtained from a purely procedural model.
Of course XAML is actually a very powerful language when combined with the Avalon presentation stack in Longhorn. Take a look at http://www.joemarini.com/tutorials/tutorialpages/xamlblogexplorer.php done entirely in XAML. XAML might not be for everyone but it is very powerful. Maybe people will not even realise they are using it if they are using visual design tools in a few years time!