So I wrote yesterday a little bit about how difficult designing a GUI can be for a developer. We deliver the world of functionality, but get nagged about the font style. I once argued for hours with a business user whether a certain function should have been launched with a button or a hyperlink.
With Windows Vista, Microsoft will be releasing the Windows Presentation Foundation classes. These will be in Vista by default, but can also be installed on XP. WPF will be one quarter of the release being billed as “.Net 3.0″ (although you will find much debate on the web as to whether or not it deserves the label–it’s not really a new version of .Net).
WPF will add a new layer to Windows presentation. A new XML protocol called XAML (pronounced Zammel) will allow developers or designers to design GUI’s with a markup language similar to HTML.
If I want a button that says Click Me, the XAML would look like this:
<Button HorizontalAlignment=”Left” Margin=”122,194,0,228″ Width=”116″ x:Name=”btmMyButtonName” Content=”Click Me!”/>
By separating out the design from development, actual I’ve-been-to-art-school designers can develop GUI’s and developers can build robust systems.
If this was all that XAML could do, there would be a huge ‘so what’ factor, but the advances in GUI design are pretty spectacular.
One of the things that really used to bother me in the VB6 days was that every application we’d ever build would look that same. It was a square box with other square boxes on it. A lot of the time it was gray. We used to argue about whether to keep the system colours (and allow users to adjust the look of the form with their desktop theme) or jazz it up with some bitmaps and change the background color. Nothing we’d design would ever look like a cool app from the movies (Like, when someone gets an email in the movies, a giant envelope flies around the screen and opens up in front of them). Our apps were boring. .Net apps are that big an improvement. Although you can inherit the Form class and make a round form or something, it was more trouble than it was worth.
With XAML, the designer starts with a blank page and builds a GUI from thin air. He or she can easily change the appearance of all buttons, forms, listboxes, etc.
For designers, this would be as easy as drawing pictures on a palette.
Microsoft is releasing a suite of tools called Microsoft Expression. The three tools in this suite include Graphic Designer, Interactive, and Web Developer.
The Microsoft Expressions Graphic Designer application is basically a paint programme like Photoshop or PaintShopPro. The only difference is that it will export Vector graphics in XAML format which can easily be loaded into Expressions Interactive.
Expressions Interactive Designer is an application that allows the designer to build GUI’s with a WYSIWYG editor. This produces the XAML–including mouseovers, button clicks, etc.
The third tool in the suite, “Web Designer”, is used for Web applications. (obviously).
I’ve always prided myself on being an HTML guy. I don’t do WYSIWYG. I’ve never trusted WYSIWYG-generated code to render consistently in all browsers. However, I think I will go the Expressions route when building XAML. Since we are talking single platform–single runtime– I see no reason not to use it.
I’ll save a post for Microsoft Expressions for another time. If you want to see Microsoft’s official Expressions website, click here. I’ve downloaded RC1 of the software and don’t have any problems with it so far.