Wednesday, December 05, 2007

What is this.... WPF and what is Expression Blend all about?

I have been looking into WPF (Windows Presentation Foundation) for some time now, since probably April last year when it was known as part of WinFX codenamed Avalon. I was impressed last year but even more so now with what you can do with the latest tools.

WinFX was the codename for what is now known as .NET Framework 3.0. Which comprises of the following:
  1. WPF (Windows Presentation Foundation)
  2. WCF (Windows Communication Foundation)
  3. WF (Windows Workflow Foundation)
  4. CardSpace
The nature of this post is to give a quick overview of WPF, I will talk about the other elements of WinFX in later posts. XAML is the new way of defining screens which is XML based. XAML stands for eXtensible Application Markup Language. Pronounced "zaml", I've been pronouncing it as "x-zaml", I must stop ;)

As in Windows Forms you had C# code which effectively specified what was drawn on the screen. With XAML you have well guess...XAML which is separate from your C# code. It is more in-line with how ASP.NET works where you have the HTML/ASP. NET and then you have the code-behind. In fact XAML does work within the Web Browser as known as XBAPs. They are supposed to be fairly interchangeable.

Then a few months back we had "Cider" which was a preview add-in for what was to come in Visual Studio .NET 2008 which allows a very small subset of the XAML designer and functionality. Although this preview was very limited indeed, it gave you an idea what XAML is.

The truth is you can't do much cool XAML with the VS 2008 IDE alone. You can - just to be clear, continue writing WinForm applications in .NET 3.5 and Visual Studio .NET 2008 it's just using WPF enables you to target Vista and give your applications a Vista theme and a much richer look and feel than is easily possible with WinForms does. Do any anything close with WinForms that you can do easily in WPF you have to get you're hands dirty with GDI.

If you can't generate cool apps with VS .NET 2008 then what do you use? This is where Microsoft Expression Blend comes into play. It is designed to allow pure designers to generate screens so the developer can concentrate on the logic for the application. Blend generates XAML automatically so the designer doesn't need to learn XAML.

I have installed Blend recently, it looks rather ummm....feature rich so will require a bit of a learning curb, but looks very powerful.

I found this video recently which talks about WPF and gives examples of what Blend is and I found it very valuable, see for yourself: http://channel9.msdn.com/Showpost.aspx?postid=359715

See here for more information on XAML: http://msdn2.microsoft.com/en-us/library/ms752059.aspx

See here for more information about the Microsoft Expression suite of applications:
http://www.microsoft.com/expression/

For Device Developers:
Unfortunately WPF is not available on devices in CF 3.5.


No comments: