Understanding relationship between WPF and Expression Blend - wpf

I am the Creative Director/Designer/Front End guy for a software company. We are redoing our software for our next release in WPF instead of Windows Forms. I have been tasked with designing the GUI portion of it. Here is where I'm stuck at. While there are tons of tutorials out there on Blend, they all relate to Silverlight. all of Microsoft's "toolbox" tutorials center around either Sketchflow or Silverlight. We don't utilize Silverlight, and I only need to start learning Blend as it pertains to GUI design/implementation - esp. importing art from Photoshop/Illustrator (I already have the Illustrator XAML plug in).
Can anyone point me in the right direction for some good tutorials? Where did other GUI designers start using Blend?

If you really want to know the relationship of WPF and Expression Blend, maybe you should ask the relationship of Developer and Designer aspects of WPF. Expression Blend is simply a designer that generates XAML (although it can be used to code in the code behind .cs or .vb).
Expression Blend can open the same csproj or vbproj file, as the same as VS 2008 or VS 2010 project file.
For more information about how Expression Blend and VS 2008/2010 WPF Editor collaborate, please visit:
http://windowsclient.net/wpf/white-papers/thenewiteration.aspx

I think the official Expression Blend Training page offers some good video tutorials

Related

Expression Blend for VS2012

I have been developing in WPF using VS2010 for a few months now and have just upgraded to VS2012 Professional and noticed it comes with Blend for VS.
Is this expected to replace GUI design in VS or is it for doing "extra" bits that cant be done in VS?
I want to know if I need to spend time learning this new tool?
Blend is primarily used to make designing your app easier. It can be used to replaced the Visual Studio designer but it's better to use VS to create the backend code. Assuming you have the same project opened in VS and Blend, when you make changes in one, the other will ask to reload these new changes.
Blend makes it a lot easier to write your XAML (since it's a WYSIWYG editor) but also provides easy access to some of the more complicated aspects such as data binding. You could do all this in VS, and by hand, but Blend just makes it more efficient. It also has nicer workflow features from a designer perspective such as having the ability to zoom in and out.
You don't have to learn to use it, but I prefer using Blend for the GUI design and VS for the code-behind.

Is Expression Blend required when you have VS2010?

There have been posts on this site in the past that say that programming in WPF is difficult without Expression Blend?
Is this still the case with VS2010, or does this new IDE have features that make WPF a lot easier?
I am a developer, but there is no way I would develop XAML applications of any kind without Expression Blend. The value is far too great and not limited to just pretty graphics. Templates, data binding, resource management, layout, rapid design, visualization, etc. are all vastly superior experiences in Blend.
I really struggle with developer rejection of Blend. Aside from the fact that it isn't free or included with Visual Studio there are no compelling reasons to ignore such a powerful tool. Yes, it is different than Visual Studio, and yes, there is a learning curve, but once you know how to use it Blend is unquestionably the right choice.
I understand developers need help through that learning curve. I also understand that Blend is unlike other tools we have used in the past: believe me, I've been there! That's why I wrote the book "Expression Blend in Action: a developer's guide", to help developers over this hurdle. This isn't meant to be an advertisement so I'm not providing the link, but if you're interested you can find it at Manning.com.
I am not sure why people are comparing the development of WPF apps on Visual Studio and Expression. The Simple answer to this question is when you need to do vector designing for your application, Expression Blend is the resource for it. You can't design a control in WPF as per your requirement. Expression Blend supports the WPF text engine with advanced OpenType typography and ClearType, vector-based 2D widgets, and 3D widgets with hardware acceleration via DirectX.
In essence, it is a user interface design tool developed and sold by Microsoft for creating graphical interfaces for web and desktop applications that blend the features of these two types of applications. It is an interactive, WYSIWYG front-end for designing XAML-based interfaces for Windows Presentation Foundation and Silverlight applications.
Expression Blend supports developing Microsoft Silverlight browser-based Rich Internet Applications providing animation, vector graphics, interactivity and video playback capabilities
It depends what you are using WPF for.
If you are writing a line-of-business CRUD application, then there is no need for expression blend at all.
I've been programming in WPF for years, and was only introduced to Expression blend a month ago.
It definitely makes some things easier, in particular animations or vector graphics.
But, if you've become comfortable typing directly into the XAML editor (as most developers are), then it really isn't necessary to do your job.
The short answer is no, it's not required. But Expression Blend is a great UI design tool that can simplify your UI development. It's a tool, like any other, optimized for doing certain tasks. Developers pick tools based on what they do for us. Think about unit tests. Using a Unit Testing framework saves us a lot of time and effort, as the framework people have optimized their tool for the task.
For me, Blend is my goto tool for these features.
Animations and Timelines
Gradient Editing
Control Templates
Template PARTS
Visual State Manager
Resources and Resource Dictionaries
Styles
Sample Data, with DataBinding
Shape Combining
Paths, Layout Paths
Here is just one example. Setting up an multipart animation in Blend might be a two minute job. Writing the same Animation logic in Visual Studio XAML editor may take 5-10x longer. Plus Blend has an animation preview. In VS I have to compile and run my app to see if the animation works as intended. On big projects that build time eats into my productivity.
It is a bit yes and no, you can do Xaml development without Blend but for somethings Blend is a better solution. Personally I stick with VS2010 unless I know that I'm gonna be doing some custom styling or custom UI in general.
You mentioned programming in WPF so take it that you are not a UI designer. Go with Visual Studio, theres's nothing you cant to in Visual studio that you can do with Expression Blend.
Blend is not required for WPF or Silverlight. However, it makes some things a heck of a lot easier. Specifically:
Animations
Extracting control templates
Styling controls without having to build and run everything
You can do all of these things without Blend, but it's not as easy. For example, you can write a WPF program that extracts the default template for a control and then displays it as text. Or if you use Blend, you can click a button. I find that without Blend, I have to constantly do edit/build/run cycles and that takes time. ("Nope, that color isn't right. What if I just tweak it this way a little bit..." and then I'm off to get a cup of coffee as the whole thing builds and runs just so I can check a color.)
Blend saves me time and makes my life easier -- that's why I use it or any other tool.

First dabble in WPF using VS2010 and Expression

I am looking at using WPF for the GUI side of an upcoming project.
I know I have a huge decision to make on WPF vs. Win forms, but before I can make that decision I want to have a play around with a few simple WPF programs.
I have read a few posts online that say Visual Studio (2008 at the time of the post) lacked somewhat in editing the XAML and they recommended using MS Expression?
Questions are:-
I have VS2010, Has this fixed the lacklustre XAML editing present in VS2008?
Which product in Expression studio is used instead to edit the XAML?
Is the idea that you build the code side of the WPF in VS and Build up the XAML in Expression the copy the generated XAML into VS?
Any suggestions/tips on combining Expression and VS2010 would be appreciated.
Kind Regards
Ash
VS2010 has a much better enviroment for supporting XAML compared to VS2008 (in VS2008 it really was not the greatest experience) - so it would be possible to play around with some basic projects straight in VS2010...
Expression Blend really shows it power when you get into animations and transitions etc (Expression Blend to me would be the starting space in the Expression suite once you had covered the basics in VS2010).
The approach I would take is to get basic exposure in a tool/ide you are used to like VS2010, and then go through some of the Blend examples/tutorials that are available off the Expression Website to then take it to the next level.
The things that got me sold on WPF/Silverlight were databinding, separation of concerns using the MVVM pattern and commanding... it just seemed easier than what I was achieving in the winforms arena and cleaner... but it took a while before I was sold on it just because I was used to the winforms way of things and was trying to do WPF but with a Winforms approach.
For basic projects you could build the code and XAML all directly in VS2010. In fact for someone learning XAML for the first time who comes from a code centric perspective, coding XAML directly in VS2010 might be beneficial so that you get used to the basic syntax before you work in a tool like Expression Blend where that can be hidden from the developer.
use VS2010, it has much better intellisense support for XAML (and better support for large solutions >50 projects).
also you dont copy over files between Expression blend and VS2010, both open the same solution work on the same solution (Blend now has support for source contorl as well), you can flip to show the C# in Blend and vice versa in VS2010

XAML editing options

I use Visual Studio 2010 for WPF development of desktop apps. I edit my XAML with the visual editor, often tweaking it manually. My code-behind is C#. I haven't had any particular problems with this arrangement.
What are the advantages of Expression Blend over Visual Studio for editing XAML? Why is Expression Blend so expensive (it's more expensive than I paid for Visual Studio!!) Are there other full-featured XAML editors which are cheaper? (I'm not talking about free ones like kaxaml - those are too limited)
Thanks in advance.
Expression Blend does not come stand alone any longer; it is part of Expression Studio which also provides SketchFlow, Design, and a couple of other tools.
Visual Studio is geared towards the development aspect while Expression Blend is geared towards the design aspect. Building animations and performing binding all within the UI of Expression Blend is possible; not forcing you to modify the XAML by hand. You can however modify the XAML directly within Blend as you can the C# code behind as well.
I typically use Blend to lay out the UI and then make use of Visual Studio for the code behind and tweaking of the XAML. Blend is definitely a nice tool to have within your tool belt and I would recommend you download the trial to get a better understanding on the offering.
I find that the main advantage of Blend is that the UI makes it very, very easy to create complex animations and transitions - really gorgeous user experience things - but you need to spend some time 'learning' Blend to do it. To write the XAML in Visual Studio to create the same effects would be much more difficult - Blend does it much quicker, and you can preview the results instantly. It's not easy (if it's even possible - I've honestly not tried the more demanding stuff) with Visual Studio.

WPF or WinForms for occasional programmers?

I'd like to move my project's ActiveX controls to (preferably) WPF or WinForms. My customers aren't expert .NET programmers, but they're able to use WinForms to do basic drag-drop to use my controls. I've experimented with the VS 2010 WPF designer, and it seems like the drag-drop experience is much less intuitive than WinForms.
Is it realistic to expect occasional programmers to be able to use the WPF designers in Visual Studio (or Expression Blend) to build these kinds of simple GUI's? Also, what's the simplest available WPF designer?
It depends on how familiar you are with WPF or WinForms.
WPF has many advantages (full transparency support, etc.), but surely is more complex than WinForms.
In addition, WPF comes with a totally new programming experience: Without using patterns like MVVM you soon will be lost as things don't work as in WinForms.
To your customers:
If they are able to target at least .NET 3.0 you can provider wrapper controls using System.Windows.Forms.Integration.ElementHost.
Thus, they could profit from using everything "as before" and you could profit from a more powerful UI-API.
Expression Blend is a much better WPF designer then Visual Studio 2008. Visual Studio 2010 is slightly better than 2008, but Expression Blend has either Visual Studio version beat.

Resources