I'm a .Net, C# and WPF programmer. Is Expression Blend worth it?

11,536

Solution 1

I have it and rarely use it.

I greatly dislike all the extra markup that gets added to the XAML files, and prefer to know what I'm doing to just dragging/dropping items.

The few times I have used it have been to pull out the default styles or templates of a control, or to build something like a gradient, animation, or path, and then copy/paste the XAML into my project.

It's nice if you're into drag/drop coding, or if you're working on a large enough team to be have a separate UI and Coding team, but other than that I don't use it for solo development since I have to maintain the XAML mess it generates.

Solution 2

I stopped developing GUIs in VS and switched to Blend. It was very confusing at first, but I'm now glad I took the time to learn Blend. Most things that you can do in Blend can be done in Visual Studio, but Blend makes them much easier (once you learn how to do it). I constantly astound my fellow developers when I show them how to do something in Blend because a simple drag and drop can replace quite a bit of typing. The thing I really like about Blend is that the design surface is accurate while the Cider WPF designer in Visual Studio often lies to you or misleads you (and is just a piece of crap in general).

Blend can do the following things that Visual Studio cannot:

  1. Create and manage visual states. (I guess you could do this all by hand in VS, but that's just insane for anything even moderately complex.)
  2. Extract and modify control templates.
  3. Easily work with behaviors (I can't imagine doing a FluidMoveBehavior by hand in VS).
  4. Generate sample data for use at design time (reduces coupling of your software components).
  5. WYSIWYG animation editor. (In VS you have to run the application to see the animations; Blend gives you live previews.)
  6. Built in transition effects and easing functions.
  7. SketchFlow (great for making a high fidelity mockup that you can show a client/stakeholder).
  8. WYSIWYG path editor (great for doing simple vector artwork).
  9. WYSIWYG gradient editor.
  10. Import artwork from Photoshop and Illustrator.

These are the sorts of things that can really set your user experience apart from every other freelancer out there. And for the record I'm a developer with no design experience.

Solution 3

  1. It's much easier to edit default styles as you have option Edit a copy which is extracting default style into the new one and you can change it
  2. I find also very useful to edit additional styles like generated content as you can easly see what additional styles control has.
  3. If you are doing animations it can make a difference as you can actually see during desgin time how is it behaving
  4. If you have a dedicated designer in your team it is much more friendly for them as it's similar to photoshop/flash editing software
  5. From my point of view if you are working in a team its enough to have only few expression blends

Solution 4

I always have Expression Blend open next to Visual Studio and switch back and forth between the two when working on Silverlight, WPF or Windows Phone Projects. These are my main resons:

I use a lot of animations and visual states in my applications. To create these you would like to see what is going on. In the visual studio you can't (yet). It's almost impossible to write a real animation or visual state by hand.

Managing resources is something I use Expression Blend for too. Creating new dictionaries and moving resources around is very easy in Blend. It even notifies you when you try to delete a resouce you are using in some place. Finding and editing a resouce is very easy. With a click of a button a property is converted to a resource and ready for use in other places.

One other thing I use a lot is Sample Data. I would like to see my forms and lists filled with data when creating them. Depending on the state of the application I create sample data by hand, use an xml export from the database or generate sample data from code.

Databinding becomes a lot easier when you are using sample data. Just drag'n'drop the property on a textbox and you'll have a binding. Through the databinding editor you can finetune the binding the way you want.

Solution 5

I think there's an easy way to answer your question... all you have to do is ask yourself what is the end result of anything you do in Blend?

The answer is XAML. So if this tool generates XAML for you, why wouldn't you work directly with XAML in the first place? XAML is human readable, it's easy to understand and master and between VS Intellisense and Resharper code completion there's really not a whole lot of typing required.

The time you invest in mastering Blend is much better invested in mastering XAML because Blend is just a tool used to generate XAML in a visual way so working directly with XAML means better understading of the underlying technology and taking full control of your code instead of relying on some black box tool to generate something you don't really understand.

And what if you invest all that time in mastering Blend and you end up in some other company 6 months down the road and they decided not to use Blend? If you don't know XAML, you'll now have to invest more time to learn it and if you do know XAML you'll be good to go in any environment as I really doubt it any company would force coders who need to work with UI as well to use Blend and not allow them to work with XAML directly.

There are a few scenarios Blend would save you quite a bit of time (people mentioned visual states and animations) so it's certainly good to have Blend on such occasions but if you're developing typicall LOB apps there's pretty much nothing there that will make you feel like you really, really need Blend...

Share:
11,536
Ignacio Soler Garcia
Author by

Ignacio Soler Garcia

I am now acting as a delivery manager focused on the three main pillars of software creation: People, Procedures and Code working mainly with Javascript teams (React / Redux / Node) building applications 100% in the cloud with CI/CD, etc. I am open to proposals, let's talk. Previously I used to be an experienced technical leader commanding .Net technologies, passionate about Agile methodologies and a people person.

Updated on June 06, 2022

Comments

  • Ignacio Soler Garcia
    Ignacio Soler Garcia about 2 years

    I mean, as a normal developer, is there something that I will achieve with Expression Blend that I won't using VS? I have no idea of Expression Blend and at first sight didn't look very friendly / easy to learn.

    What do you thing out there? It's worth the time learning to use it or I will do the same as I do with VS?

    Thanks!

    EDIT: I know what Microsoft says about the tools. What I want to know is if you, as a developer like me, tried Expression Blend and found that it was a waste of time or you thought it was a good tool and you stopped developing the WPF GUIs from VS and switched to EB.

  • Ignacio Soler Garcia
    Ignacio Soler Garcia almost 13 years
    Are you using it? And are you a developer or a designer?
  • Samich
    Samich almost 13 years
    I'm developer, but when I was working on the UI staff of WPF project - I was cheating :). I apply some effects, made some gradients, animations and so on and then just copy generated code to the Visual Studio :)
  • Ignacio Soler Garcia
    Ignacio Soler Garcia almost 13 years
    No, I'm working as a freelance developer so I would be the only one to use it or not. I plan to use animations but really simple, just to difference my GUIs from the others.
  • Ignacio Soler Garcia
    Ignacio Soler Garcia almost 13 years
    Are you a developer or a designer? Mmm, at the end I think I will give it sometime only when I become stuck into something or have spare time.
  • bartosz.lipinski
    bartosz.lipinski almost 13 years
    sure it is possible to do the job without this tool especially if you need to learn new tool there is also one more advantage my visual studio is crashing a lot with huge xaml styles and blend is not but this could be resharpers fault
  • Sorskoot
    Sorskoot almost 13 years
    I'm a developer, although I have some experience in design.
  • VitalyB
    VitalyB almost 13 years
    Well said. I give Expression Blend a long try and read a book that is supposedly for programmers and not designers. Yet, after a short while I gave up. Expression Blend is fine for the little tasks Rachel described. However, when it comes to actual programming, binding and such, it is really bad.
  • JackNova
    JackNova over 12 years
    DataContext Panel is also very useful, especially in mvvm scenarios, you can drag and drop ViewModel Properties or Commands;
  • Andres Scarpone
    Andres Scarpone over 12 years
    This blog gives some good background on visual states and what you can do with them in Blend: blogs.msdn.com/b/expression/archive/2010/03/16/… . Googling for "Blend Behaviors" should give you some good results. If you're writing XAML and not using behaviors, you're probably doing something suboptimally. (Don't be fooled: Blend Behaviors are part of the free Blend SDK and do not require Blend to be installed.)
  • CodeWarrior
    CodeWarrior over 12 years
    I would like to comment that I agree with all that Rachel said, but in addition, I have found that where Blend excels is in two areas, Animations and Templating. I don't think you can view Templates (of any kind really) in VS, but in Blend you can, and that is the what they call the bomb-bizzle. Simple animations can be done in VS. Color changes and margin animations and what not. Anything that has objects moving around, especially if it is not a straight line, I totally use Blend. The Animation designer allows for a lot of flexibility and plays the animations for you.
  • Alan McBee
    Alan McBee over 11 years
    I think this answer best reflects how I felt about answering the question. Yes, Blend will add some bloat to your code, so if you are a code purist, Blend is not for you. OTOH, WPF/SL/XAML/WinRT is SERIOUSLY powerful and potentially VERY complex to manage. Blend helps with this better than VS, but it has a non-programmer learning aspect to it. You will sacrifice some amount of fine-grained control; whether that's appropriate depends on your project and work environment.
  • cunningdave
    cunningdave about 11 years
    Blend 4 was an invaluable tool - it's not just drag&drop coding, it's fast-fail coding. If you do something that doesn't work or is broken, you can often catch it in the Design view without even needing to launch your application. You can also test your layout code with the design-grips. Finally, it excels as a tool for making custom controls because of its solid template and style support. It's not a perfect program, but it beats doing UI in VS for sure. Blend for VS is an unfortunate buggy step-back for the series. Many, many problems, which leaves 4.5 .net WPF UI devs in the dark.
  • BrainSlugs83
    BrainSlugs83 over 10 years
    I also see lots of Visual Studio crashes (usually just the designer, but sometimes the whole damn thing) when working with XAML -- I do not use resharper.