Code Renaissance is about building great teams and great software. By exploring best practices, team interactions, design, testing and related skills Code Renaissance strives to help you create the team and codebase that you've always wanted.

WPF and Expression blend - a marriage of necessity

I've been using VS2008 WPF(Windows Presentation Foundation) and Expression Blend lately at work and I'm loving the combination. If you've been struggling with doing design work with WPF in Visual Studio it's because Microsoft took all of the tools that make it easy to work with and packaged them as a separate application called Blend.

Of course you could use either tool to create a complete application but I wouldn't recommend it.

Blend is painful to code in - it has poor intellisense and lacks tools like refactoring and namespace resolution - but what it lacks in coding it makes up for in design. It has all kinds tools and shortcuts for creating, manipulating and consuming controls, resources and styles. In particular designers will love that all of their design work in Blend is created as vector graphics and so will render flawlessly no matter what resolution they are rendered in.

Visual studio is of course the preferred coding environment but it is severely handicapped in when it comes to design. It lacks UI basics like a font-chooser, and all of the other nifty Blend tools that make design so pleasant. If you choose to use Visual Studio for design the easiest way will be to dive head first into XAML and do all your design there. Actually hand coding XAML is how I started out and it gave me a great deal of insight to how things worked and what could be done. I still do most of my animations by hand there.

One thing that I finally get is Microsoft's vision for splitting design and development. In a development shop where you have Joe Coder who hates design and Joe Designer who despises code, these tools can work well together. The developer can create a functional but ugly UI in Visual Studio and pass it off designer who can skin it, style it and turn it into a work of art in Blend then hand it back to developer when he's done. It works pretty seamlessly.

Of course as one person doing both design and programming it's a huge pain. I find myself constantly switching from one app to the other and it wears on you after a while. Also if you're doing any hand coded XAML you have to familiarize yourself with how Blend marks everything up or you can have trouble editing things using it's UI tools when you're done.

Anyway, I'd like to write some tutorials and compare and contrast the two further if I get the chance... I'll see what I can do.

0 - What do you think?: