WPF or WinForms for occasional programmers? - wpf

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.

Related

When to use Blend for a WPF developer?

I'm a WPF developer and use VS Pro 2012 everyday for UI adjusting and coding. I installed Blend for Visual Studio but I never used it (just launched it by accident several times).
I'm afraid that I missed something by not using Blend. If I did miss something, what is it then?
Blend lets you design WPF UI, create controls and determine their behaviors visually (by UI), and Visual studio lets you do that programatically.
There is nothing you can do in blend, that you can't do in visual studio.
It is a tool for people who are less comfortable using code, and more comfortable using a cool UI to create custom controls and behaviors and design thier UI
In Visual Studio 2012 and later, the WPF UI designer is Blend; it's actually loaded in the background and accessed through out-of-process COM interfaces. This is part of the reason its behavior can be a bit bizarre at times, why you get messages about being able to edit the XAML while the design surface is loading.
If you're used to VS form builders you're going to be fine with Visual Studio.

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

WPF: MSVS 2010 and Blend. Will Studio designer replace Blend soon?

I started to play (just play, not to produce real life projects) with WPF since MSVS 2008 where WPF built-in designer (as far as I can remember) was extremely poor so if I wanted to create layout I had to dive deep into XAML tags. So I treated Expression Blend as temporary application developed to overcome limitations of MSVS those days.
MSVS 2010 provides much more powerfull designer so I forgot about Blend at all.
Is there Microsoft vision on Blend and MSVS designer as rival products, will designer replace Blend one day or any other vision how these products will share the market in the closest future?
May I treat MSVS WPF designer vs Blend evolution as MSVS intellisence compared to ReSharper one?
Blend is for more complicated designs, like storyboards and visual state managers etc, which is not possible currently in visual studio. Visual Studio provides basic functionality of editing needed for business/crud apps, but for high class animation and better rich graphics results, Visual Studio will never replace Blend.
For graphics designers, intellisense is of very low importance then richness in the graphics editor. Blend is for designing Themes, color schemes. Visual Studio is for writing code and business apps.

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.

How much better is the WPF Designer in Visual Studio 2010?

For those who have spent time in Visual Studio 2010, and work with WPF, how much better, if any, is the designer for WPF? Are other designers, such as Blend, still preferred, or can we be productive in VS 2010?
The WPF Designer in VS 2010 is hugely improved over the one in 2008.
It handles many more unusual cases without breaking, and does a better job overall.
That being said, with a few exceptions, it's still the same fundamental design as the 2008 designer. There are some new features, particularly for auto-generating forms based on data, etc, but overall, it works the same way.
As a result, I still find Blend a much nicer tool, overall, for working with WPF from a designer standpoint. I'm just very happy that the designer doesn't "break" as often, especially when doing things like using Blend behaviors, etc.
VS2010 WPF designer is much closer to the level of WinForms designer than it was in VS2008 - I would say it will suit typical programmer quite well. However Blend is still needed if you are a designer.
Also, I found VS2010 designer much more stable than VS2008 SP1 one. Not a single crash so far.

Resources