Lhotka's Labrynth
Designers and Developers: Better Together
Rockford shares his take on what worked (and what didn't) when collaborating with a designer on a new project using VS 2008, Express Blend and Team Foundation Server
Microsoft's theory that Windows Presentation Foundation (WPF) and Silverlight applications will be built by a combination of designers and developers working in tandem has been met with some skepticism. So it's been interesting for me to get a chance to put this process to the test recently, by working closely on a new project with Anthony, Magenic Technologies' lead designer.
On this project, Anthony created a set of storyboards in Visio before we did any detailed work, and we used these storyboards to work with the project sponsor to confirm the user experience and use cases. Anthony also created a couple test forms, so the sponsor could get a sense of the final application's appearance. Once the use cases were reasonably firm, I started some basic business object and database design.
I'm using Visual Studio 2008 (VS 2008). In this environment, I've designed my database, built my business objects,and linked them together. To make sure the objects work, I've created a set of unit tests that run against a set of test data.
All of our source code is in Microsoft Team Foundation Server (TFS), so I had to download the full TFS 2008 installation ISO file, extract the TFS client package, and install it.
Anthony is one of those rare designers who's willing to explore XAML and Expression Blend. He tells me that most of his friends and colleagues don't even know what XAML is, so of course they aren't trying to use it. The few that do know that XAML exists are hesitant to look at it because it comes from Microsoft. Clearly, there's an uphill battle here for Microsoft to gain acceptance in the designer world. Conversely, there's a great opportunity for open-minded designers to get a headstart on this new technology.
Learning Expression Blend has been easy for Anthony. He's done graphics, Web, and Flash work in the past, so Blend is just another tool with a lot of familiar concepts. He's been able to create some beautiful graphics and use them to build a set of nice XAML layouts, and it's been fun for me to build an application with such an attractive UI.
So far, it appears that the designer faces the biggest challenges. Microsoft Expression Blend doesn't work directly with TFS, so Anthony has both Blend and VS open at all times. He has to remember to go into Visual Studio and check out a file before editing it in Blend, and then go back into VS to check it in when he's done. This is awkward.
Also, our application is data intensive. Anthony can see the basic XAML layout in Blend, but he must build and run the solution in VS to see what it actually looks like. This forces a lot of back-and-forth between the two tools.
One nice feature: Blend can work with a custom subclass of UserControl. There is some functionality that is common across a wide set of our app's custom controls, so I created a custom subclass of UserControl to handle this functionality. Most of the UserControl objects in the application now use a new base type called EditForm.
What we've found works well is for me to create some basic data-bound XAML forms that work with the business objects, without worrying about the fact that their initial appearance is, frankly, terrible. I check those into TFS, and Anthony checks them out and opens them in Blend. He is then able to rearrange the UI elements, provide styling information, and merge in some graphics. The end result is a fully functional and attractive form that he can run in VS 2008 to make sure the appearance is correct.
Overall, our experience with Visual Studio 2008, Expression Blend, and Team Foundation Server has been positive. There have been some bumps, and there are some awkward processes involved, but I'm convinced that Microsoft is correct, and that we're looking at a future where even mainstream business applications will be built by a combination of designers and developers.
About the Author
Rockford Lhotka is the author of several books, including the Expert VB and C# 2005 Business Objects books and related CSLA .NET framework. He is a Microsoft Regional Director, MVP and INETA speaker. Rockford is the Principal Technology Evangelist for Magenic, a Microsoft Gold Certified Partner.