49

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.

Bridge
  • 29,818
  • 9
  • 60
  • 82
Ignacio Soler Garcia
  • 21,122
  • 31
  • 128
  • 207
  • 1
    I think with a bit better formulation this could be an interesting question. In essence it's "When is it useful to use Expression Blend when you know how to work with WPF GUIs in VS". – CodesInChaos Sep 22 '11 at 16:17

8 Answers8

65

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.

Rachel
  • 130,264
  • 66
  • 304
  • 490
  • 1
    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. – VitalyB Sep 23 '11 at 16:46
  • 22
    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. – CodeWarrior Dec 08 '11 at 17:15
  • 3
    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. – cunningdave May 17 '13 at 15:45
38

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.

Mike Post
  • 6,355
  • 3
  • 38
  • 48
  • 2
    This blog gives some good background on visual states and what you can do with them in Blend: http://blogs.msdn.com/b/expression/archive/2010/03/16/dynamic-layout-and-transitions-in-expression-blend-4.aspx . 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.) – Mike Post Sep 29 '11 at 00:36
  • 3
    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. – Alan McBee Jan 22 '13 at 19:16
16
  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
bartosz.lipinski
  • 2,627
  • 2
  • 21
  • 34
  • 1
    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 Sep 23 '11 at 08:16
  • 2
    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 – bartosz.lipinski Sep 23 '11 at 08:22
  • 2
    DataContext Panel is also very useful, especially in mvvm scenarios, you can drag and drop ViewModel Properties or Commands; – JackNova Sep 28 '11 at 19:25
  • 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. – BrainSlugs83 Jan 02 '14 at 22:51
14

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.

Sorskoot
  • 10,190
  • 6
  • 55
  • 98
3

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...

Dean Kuga
  • 11,878
  • 8
  • 54
  • 108
2

As a professional developer Expression Blend is invaluable and does many things which VS does not,

Just off top of my head, Sample data, Storyboarding, Far superior datatemplate support Way better resource dictionary support Much better Custom Control tooling Much better XAML control

If you are simply editing very basic UI then Blend wont be of any use stick with VS. Blend is for design and animation it is for front-end.

Mark Homer
  • 960
  • 6
  • 15
2

When the Visual Studio is more oriented on the developers, Expression Blend is oriented to the designers. It have a lot of predefiend tools whitch can generate a lot of code and simple to use (espessially animations, design issues, etc.). So everything what can be done in Expression Blend you can do in Visual Studio. I'm not sure about viсe-versa.

Here is what said on official site:

Expression Blend, Visual Studio, Silverlight and .NET provide the most compelling and seamless design and development workflow on the market today. Rapidly iterate on both the user experience and core architecture, evolving your ideas quickly from initial prototype through to completed project.

Key components of Expression Blend, including Behaviors, Visual State Manager, transition effects, and SketchFlow (Expression Blend 4 includes SketchFlow in Expression Studio 4 Ultimate product only), coupled with the speed and flexibility of this modern workflow challenge you to push boundaries and work beyond the limits of what you thought possible.

So, it depends on where you are: if you mostly working with the UI layer of the application you may found a lot of useful things in Expression Blend, otherwise if you mostly work with backgound - Visual Studio is your choiсe.

Update

Also check out following tread on SO: WPF Applications: Visual Studio vs. Expression Blend

Community
  • 1
  • 1
Samich
  • 29,157
  • 6
  • 68
  • 77
  • Are you using it? And are you a developer or a designer? – Ignacio Soler Garcia Sep 22 '11 at 16:03
  • 2
    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 :) – Samich Sep 22 '11 at 16:07
-1

Blend tool having multi purpose.

I assume it's mainly on

1.build animation(Story Board) in silverlight

2.create WPF/SL/WP XAML layout

If you want to create some animation silverlight/ some data-bound sliverlight application, my answer is yes after i try to use Adobe Edge in 7 days and used flash from flash 4 ,MX2004, flash 5 in long time ago.

To create a fancy animation, Expression Blend still beat Adobe Edge and comparable to Adobe Flash.

And you can write your familiar programming language to control everything just like flash action script.

In my optional, Action Script is quite messy on mid-large project and very hard to debug/maintenance.

Cheung
  • 15,293
  • 19
  • 63
  • 93