Expression Blend is the design tool for Windows Presentation Foundation (WPF) and Silverlight, and thus a key tool for building applications for the current generation of Microsoft’s platform. How good is it? There is a shortage of in-depth reviews, if my quick Google search is anything to go by, though there are plenty of quick write-ups saying that it is not as good as Adobe Flash. Blend got a bit of attention following the 2009 Mix conference thanks to SketchFlow, the prototyping feature built into Blend 3, and which has been well received.
One reason for Blend’s relatively low profile is that it is aimed at designers, whereas Microsoft’s community is more developer-focused. WPF developers can avoid Blend to a large extent, by using the designer built into Visual Studio, which is fine for laying out typical business applications. Now with Visual Studio 2010 the same is true for Silverlight. Another option is to write your own XAML code, which works for laying out controls though it is inconceivable for drawings. XAML is verbose
It is just as well you can avoid it, because although Blend is very capable, it is not easy to learn. I’m guessing there are quite a few developers who have opened it up, clicked around a bit, and retreated gratefully back to Visual Studio. This was a problem for Adobe Flash Professional as well, and one of the reasons for the creation of Flex and Flex Builder, a code-centric IDE for the Flash runtime.
You can argue that a design tool does not need to be easy for developers to use; it needs to be good enough for designers to create great designs. That’s true; but the developer/design divide is not a absolute one, and ideally Blend should be something a developer can dip into easily, to create or enhance a simple layout, without too much stress.
Maybe some developers can; but I have not found Blend particularly intuitive. The user interface is busy, and finding what you want or getting focus on the right object can be a challenge.
As evidence of this, take a look at Adam Kinney’s Through the Eyes of Expression Blend tutorial, which is among the best I have found. Try lesson 9, Styling and working with design-time data. Then ask yourself how easy it would be to discover the way to do this without the step-by-step instructions. Would you have known to right-click the StackPanel and choose Change Layout Type > Grid? What about step 8, right-clicking the ListBox, and selecting Edit Additional Templates > Edit Layout of Items (Items Panel) > Create Empty?
And notice how in step 9 you have to click the “small grey square next to the Source property”, that’s the one called Advanced Options:
Overall it is a nice tutorial, but you might need an evening or two with a couple of fat books, one on XAML and one on Blend itself (if you can find a good one), in order to understand the features you have have been using.
It is probably worth it, if you intend to work with Silverlight or WPF. Blend has one great advantage over Flash Professional: it authors XAML, and you can open it up in Visual Studio and continue working on it there. Microsoft has no need for something like Adobe Catalyst to bridge the XML/Designer divide.
Still, Microsoft had a clean slate with Blend, which is only a few years old, and it is a shame it could not come up with something a bit more user-friendly.
The other implication is that the new visual designer in Visual Studio 2010 makes Silverlight applications a great deal easier to create. You can Blend if you want to; but the Visual Studio effort is far more approachable.
How do you find Blend? I’d be interested in other perspectives.
As a Silverlight / WPF developer I agree with you. I’ve never been very excited about the Blend UI.
I’d be willing to deal with a non-intuitive UI if there were good comprehensive documentation or 3rd-part books covering the latest version, but that was lacking when I looked several months ago.
I’m hoping the designer built into VS2010 will let me avoid Blend, except for things like animation tweaking, where Blend’s time-line UI does really add value.
Tim, I really appreciate your blog, since you aren’t afraid to dig into the current short-comings of the platform. Blogs from MS directly, or from MVP-type folks tend to just stick to the positives.
Anonymous
I agree with many of your points above especially the hidden access to features/properties and lack of clear identification of the current focus item.
As you mentioned, I think that Blend has a learning curve comparable to Flash Pro IDE. I see a lot of similarities between the two. In fact, that is how I learned Blend as quickly as I did. Took me about a month to really get familiar with it. I needed to create a Silverlight app and I found Blend fairly intuitive once I learned a few general tricks.
If you’ve ever tried to customize a control in Flash it’s a pain, and the approach to it in Blend is a lot simpler. The Sample DATA is extremely useful, and as you mentioned, SketchFlow is a huge time saver for many rapid prototype scenarios.
Personally, my biggest issue with Blend is the import tools. Sure it can import layers from a Photoshop file…but it has limitations and it’s a real pain to have to overcome those limitations day after day. Blend 4 is promising even better integration w/ Adobe design tools, and I look forward to that. If they can get to the current level of integration w/ Flash and Photoshop I’ll be one happy integrator.
So, honestly I don’t think Blend is easy to learn, but I don’t think it’s hard either. It’s funny to think that if the people that USE Blend weren’t so darn busy working with it, there might be more of a library of tutorials and samples but right now we’re all SWAMPED just getting our paid work done (most of the time using Blend).
I agree with ‘Anonymous’ about the value of this blog in a the ‘only positives’ world of the Microsoft echo chamber.
Views on the difficulty of Blend seem to vary widely. Some Microsoft staff will describe the learning curve as “brutal”, others will say “it’s easy”. The designers I know all find it way too complex, but that may just be because they’ve had years with Adobe products and just don’t want to learn anything new.
I think part of the “perception” problem about the difficulty of Blend is down to the general lack of good books/training on the subject. The two “Blend” books I’ve found are truly terrible and don’t appear to reflect any kind of reality, having been written to very early beta’s that the public never got to see or use. The only book I’ve found really helpful at “teaching” Blend (or aspects of it) is Jeff Paries “Silverlight 3 Animation” which isn’t a complete solution as it suffers from being focussed on a very narrow area (as well as having been written to a beta version rather than the finally released version).
There are a whole bunch of free training videos out there, but most are so slow and unrehearsed they’re really not worth the time needed to watch. Most designers I know don’t want to learn by watching long drawn-out screencasts! I do think that the recently launched “Design Toolbox” at http://www.microsoft.com/design/toolbox/ does an excellent job of giving some ‘real world’ scenarios to help you learn Blend, but it requires a SIGNIFICANT investment of time to complete.
All that being said, I do think developers are going to have to get to grips with Blend because the designers are steering well clear. There’s obviously something wrong when terms like “MVVM” are dropped into a designer tool (but NOT the developer one!) and so it’s hardly surprising that people who find Visual Studio terrifying aren’t exactly falling in love with Blend. The Visual Studio designer helps overcome some of the issues of writing raw XAML, but not all of them – especially when it comes to animations and good UX (which, typically, is the motivator to get to grips with Silverlight and WPF).
Hi Tim,
I agree in principle that Blend can be a little bit strange to look at for a VS developer, but really it’s not that hard. Any developer will be very happy digging around the UI and finding options like “Edit Layout of Items (Items Panel)” once they understand the concepts – and of course there are multiple ways to get to everything (as is the MS way) – so they will find the method they prefer over time (in this case I would say the Breadcrumb at the top of the artboard is more intuitive).
In my experience, it’s more a question of familiarity – I have trained developers who have really hated Blend to start with, but on future visits they have come round to “it’s actually quite cool” – and designers with a Flash background who may dislike the many tiny grey icons and squares (we do need a name for that advanced option square thing – Adamn Kinney called it a “peg” – which I think is as good as any), but come to appreciate the power of it as they use it (templating, binding, sample data, etc)
I sometimes think that if MS provided a few more themes for Blend it would make the initial transition easier – as it is we have two: Dark and Light (which reminds me of The Blues Brothers film – “we have both types of music: country AND western”). Perhaps a VS inspired theme would make it easier.
One thing is clear is that it is not “pure designers” who need to use Blend, not even just “Integrators”, or “developers who like to make things pretty” but there are many smaller departmental teams who have never really had to consider design much for the LoB apps before, but are now being told it is a competitive advantage, and that they need to “design” their apps now. VS2010 won’t really cut it for this unless they choose to buy in the design.
It is also clear that there is a growing need for people who understand how to use Blend and work with Xaml (particlarly with a ViewModel) are going to be more and more in demand going forward.
Cheers
Ian
Blend is something new and different and there is a need to take time to learn how to use it because of that. Building an interaction design tool for amazingly dynamic frameworks like Silverlight and WPF, while maintaining support for high-quality coding patterns and practices created by .NET developers is difficult. And I’m not trying to make an excuse, rather I’m presenting the task at hand for writing a tool that allows you to do more work faster than before and with less “hand-written” code.
That being said, I agree we can do more on the content side and to help encourage the community to share what they already know. In my own tutorials, I feel I’ve jumped ahead a bit and too much into the details before explaining some of the broader concepts. I think we can do more of that across the board to ease the learning curve.
I am glad to see you’re trying it out and posting your feedback always helps, as well.
Your post has also prompted me to write an Expression Blend for Developers post highlighting when its valuable to switch to Blend during development as opposed to hanging out in Visual Studio.
Adam Kinney
Expression Evangelist
I strongly disagree that Blend is hard to learn, with just a little hands-on scrubbing you can get a hang of it. The problem with Blend is elsewhere, it’s with the approach and mind-set people come to it. Developers come to it with an antiquated Win Forms / Web Forms (or dear I say Visual Basic) mindset, where you want to drag-drop the UI and then make it work using the code-glue. On the other hand, designers come to with a Photoshop mind-set – they wanna make it pretty, and then basically just pass-it on to the developers to magically compile it. But, like in politics, Blend is at its best when you approach it in the middle of the developer-designer divide, it gives the ability to do the pretty of Photoshop and it also gives you the ability to hook-up code without having to write the code-glue. That’s its niche, think about it for a sec.
I’ve personally used Flash, Photoshop, Illustrator and Visual Studio extensively, and I think I understand the mindset of being both a developer and a designer. For me Blend is a beautiful place, it lets me forgo writing the code-glue (which I hate) and also bypass Photoshop for actual/usable/functional UI (hurray to that) – in fact, I hardly use Photoshop/Illustrator anymore, even when starting from scratch. But when it comes to writing code, I honestly avoid Blend like the plague.
So Blend is not fluff, its got a proper role to play, and it is designed around the new kind of approach to designing and development. And I think the push back from developers and designers is not with the tool, but against the new approach. And yes, if you show me Blend has UI approaches to tweak or things to simplify – I can agree to that, but don’t generalize it. And honestly, just try some of the 3D tool or even something more mature like Dreamweaver/Flash to see how Blend is refreshing in its approach.
Cheers,
Rishi
Tim,
I think what you are facing is mostly around confidence levels and trying to attach Expression to an existing pattern of usage with other tooling stories. It’s no doubt Expression Blend is unique experience on it’s own, it still has a lot of usability issues that I find when I engage customers/community here in Australia as being “too hard”.
I know the Expression Team have a lot of prototypes/experiments mapped out to simplify and clean this story up in a way that would hopefully reduce articles like “this is to hard” down to the lazy. The reality is that Expression is the meat in the sandwich a lot of the time when it comes to the .NET/Silverlight production pipeline, and I’ve yet to see this team get a descent break between releases to re-factor UX. It typically is a situation where “add new features, do what you can to stop usability bleeding, but keep moving forward” and essentially march onto the MIX deadline(s). As you can see now, SL4 + VS2010 have launched, now Expression has to finally lock down their work streams post RTM given they are the last link in this chain of sequential development.
I think its time for the DevDiv guys to slow the production schedules down, push it out to a 18month shipping cycle and let the industry firstly digest “what just happened” and secondly focus on refactoring the existing feature set and usability / bugs attached now in this next 9month window or i simply think it will be a tipping point in avoidance for Silverlight/Expression adoption.
Expression Blend is WPF under the hood, so this team can and have reacted very rapidly to new feature direction, so giving them the free reign or resources to re-factor some of the interesting and usability enhancements would in my opinion grow the interactive customer base by an easy 20% without adding new features. It would be a much easier conversation to have withe Adobe community and one that can backfill a lot of built up market demand around .NET + UX (I get asked daily “how do i work with designers or how do i get started in UX” from the .NET community).
Visual Studio 2010 is also suffering from some stability pain (word on the street anyway) so both teams executives need to argue the case for pumping the breaks to give the SDE/Program Management level time re-factor in a way that isn’t held hostage to events like MIX? As both are now on WPF based platforms which in turn should position Microsoft in a much more agile posture.
My hat goes off to the SDE/Program Managers etc so far, they have a very tough schedule and seem to be holding their ground beyond what I would initially think possible – just the fatigue is starting to show i think.
–
Scott.
As a previous tech writer, I can truthfully say that the documentation (both online and what I’ve seen in print) makes the learning curve for Blend difficult. Especially if you are not a programmer.
I just got Blend and actually love fooling around with it, but I’m tempted to put out a book myself when the new version comes out, because there’s nothing on the web I see, or even in the book I’ve bought that makes it easy to learn. And nowadays people will NOT take a lot of time to slog through learning, particularly when there are other programs on the market that have great documentation.
Why hasn’t someone just written a simple step-by-step process?
The biggest thing I find lacking is overviews. And it doesn’t take a lot of sentences to quickly summarize concepts BEFORE you get into details. Details given before people have an overview is a sure way to confuse anyone looking to use a program.
I suppose the right question for MS to ask is: who did they aim this program at? Only developers? Only designers? Both?
The book I bought assumes I know C#. Much as I might like to learn it, there are lots of other potential customers who don’t want to.
And for developers who see the daunting interface, that’s not a problem if the documentation is good. Because as with most programs, keyboard shortcuts cut through the haze and make things quickly useful.
Anyone want to help me write a book?
Al Harris asked
“Anyone want to help me write a book?”
And I say “yes, I will” if you’d like to write for this complete beginner who’d like to learn.