Is WPF / Blend Ready For Production? Are you a WPF developer? RRS feed

  • Question

  • I have a customer ready to build a customer facing business application based on WPF.  After having read on the subject for months now and working with a few for-fun applications I was willing to give it a try.  I have been building the plumbing for the application over the last weel and I am starting to get very worried that this is not a for-prime-time product just yet.

    One specific problem is that there seems to be a push on educating designers on the expressin suite but not so much a push for developers.  The result of this is that I seem to be having a hard time finding in-depth documentation.  There seems to be lots of very pretty examples that work on the surface but are very fragile.

    Let me discuss two simple problems.  If anyone has feedback, I am most intrested in finding relevant documentation because I don't want to have to post for resolve problems.

    1) A very simple issue.  I have a form with two dropdowns.  ( They are connected to a Object datasource which is another problem. )  If I follow the blend example to make the application windowless, the dropdown content boxes are obscured behind the window, so when I have a very narrow window, the first few combobox items are obscured!!!

    2) I also followed the example for binding these comboboxes to a data class.  The two comboboxes are dependant on each other, so when one changes, the other needs to show a subset of data based on the selectin of the first.  Simple?  Only, how do you set the selectedindex on the combobox?  There seems to be no good way to get a handle for the control.  And how do you register for a selectionchanged event.  I tried many ways to work around this issue  (still using a seperate class as the examples show because this appeals to me as neat and tidy).

    Would love some answers.  More importantly, would love to know some developers who have had some success and what sources they used to get over the learning curve.

    Sunday, April 27, 2008 9:51 PM

All replies

  • Howdy,

     "One specific problem is that there seems to be a push on educating designers on the expression suite but not so much a push for developers.  The result of this is that I seem to be having a hard time finding in-depth documentation.  There seems to be lots of very pretty examples that work on the surface but are very fragile."

    Yes this is Microsoft's strategy, pushing towards designers, which as you say is a real issue for developers who no doubt find the Visual Studio design surface useless and therefore work with Blend.

    The short answer to your questions is yes, WPF with UI design from Blend is in a state where you can quite successfully build commercial applications. I am on several projects in several countries at the moment, all WPF , all using Blend, and one in particular here in the UK is a hardcore enterprize application (keep an eye on the expression show case, it should be there soon).

    For me personally it has been a hard slog for last few years, testing, breaking, fixing, learning and over coming issues with WPF and Blend.
    My book (Expression Blend Unleashed) which is in the final stages of production now has forced me to learn Blend as a tool, along with WPF as a platform. There are no shortcuts.

    Given the book being completed, I can now get back to concentrating on the video tutorial series on www.learnexpressionstudio.com which will have Blend instruction for designers as well as developers. I cant tell you when that will launch.. like everything else, it feels like a hurdle is placed before me at each stage and so it takes forever to get things released, but it will be very soon.

    Until then, there are some excellent resources on the web if you search long and hard with goggle. Not everything works because things have changed a lot in the last 2 years especially. If you get really stuck, post something in here, but try to post it with code and or markup which makes it easier to help you.

    Good luck, and keep pushing. It will happen.


    Learn Expression Blend at learnexpressionstudio.com
    • Proposed as answer by frommyuniverse Saturday, October 13, 2012 7:02 PM
    Monday, April 28, 2008 8:49 AM
  • I agree with Brennon on a couple notes.  First, WPF is definately ready.  I have quite a number of clients (mostly all in the US) that I have built and are building WPF applications for.  And as Brennon said, the majority of them are enterprise applications.  Ranging from ERP type systems to Shipping and Fulfillment systems, to CRM type systems.

    Having said that, and having worked with WPF since before it was released, forget most of what you know about developing the UI.  There is a paradigm shift in WPF that is large enough to cause problems if you try to apply too much of what you have been doing in winforms to WPF.  Not many developers do this (and I understand that time is always an issue), but you really need to peel back the layers of the SDK when building with WPF.  Don't get me wrong, software is still software.  All the same logic and standard practices apply.  But the specifics of developing the UI are very different (even if much of it "looks" the same at first).  For example, if you are going to use a combobox, take a little bit and look at the combobox in the SDK.  Review its properties and methods.  If possible understand how it is built (the whole logical vs visual model concept).  It will take a little longer on the front side, but will make life much easier down the road.

    While none of this answers your question, hopefully it gives you a different way of attacking the problems.

    Tuesday, April 29, 2008 2:29 PM
  • [quote]One specific problem is that there seems to be a push on educating designers on the expressin suite but not so much a push for developers.  The result of this is that I seem to be having a hard time finding in-depth documentation.  There seems to be lots of very pretty examples that work on the surface but are very fragile.[/quote]

    I am with you in your concerns.

    From the outside I look into the design and development of making a Windows or Web based application from an older design and development perspective. We come to the Microsoft site looking for tools to apply and get bombarded with literally dozens and dozens of toolsets or design implementations and no clear and concise top down view on which to apply for today.

    Microsoft  -  Stand back for a minute and look at yourself from the outside.

    There are frameworks DOT.NET, etc. but if we the person from the outside tries to figure out which is applicable there's no top level view down into the many toolsets, frameworks, etc.  Look at SQL server, hmm compact edition, developer edition, enterprise edition... why doesn't the label of the developer edition state simply it's the enterprise edition with a 1 user license instead of naming it developer edition.

    It feels like Microsoft makes the assumption that people have been developing and keeping up with Microsoft tools since day one. When in reality whether fresh out of school or having been locked into a corporate development suite of tools for the last 10 years people need some guidance on what to use and when, what the risks and benefits associated with each are.

    XAML, WPF, etc. all feel half baked and not ready for prime time... and it's not a matter of foundations, there's solid under pinnings but confusing messages which make utilizing these "feel" like a risk.

    ---- intentional run on sentence... trying to make a point in text that conveys the confusion of stepping into the Microsoft development environment.
    Server ASP.NET, client ASP.NET unless you want client functionality without reloading pages then ASP.NET Ajax or partial page updates but Ajax is just a wrapper for Javascript but C# and VBscript are the Microsoft languages of preference which get the most documentation and top level attention but they don't fit in the new world of cross browser Web Applications and clientside asynchronus communications and if you need an interface WPF and XAML will provide cross browser support only if you use Silverlight plugins and no C# or VBscript code on the client but the documentation and examples for writing secure production code are nearly all in C# so maybe Silverlight with Javascript are not ready for prime time....................

    For the longest time, I thought Expression Studio was a Web design only toolset for students to compete with Adobe Illustrator and to replace Frontpage and therefore didn't pay any attention to it. Only recently did I understand that it is truely a design and development environment (as long as you have Visual Studio to tie the pieces together).

    You getting the picture yet?

    Expression needs a cohesive message.

    The recent presentations and such point out that it's a bridge between the designer and the developer but you still need Visual Studio to cross the bridge.
    There's a gap from the Visual Studio group at Microsoft and the Expression teams.  

            Developers start with microsoft.com/visualstudio and don't see links to Expression.

    Designers might see stuff on Silverlight now (and more with the Olympics) and look up Silverlight and there at the silverlight.net site, a top level message says the following, "By using Expression Studio and Visual Studio, designers and developers can collaborate more effectively using the skills they have today to light up the Web of tomorrow.".        But that dialog doesn't link to anything.... What the heck guys!!!

    I know dealing with other divisions, groups, teams and especially their marketing people can be a challenge but you guys (guys includes girls too) in the Expression team could really benefit by getting your message integrated with others.    and those others could really use a makeover.

    I'm not writing this to troll or cause grief. I'm writing this as a reply to another post that I felt also touched on the same feelings I had about Microsoft, Expression and development using Microsoft products and hoped that maybe it would provide (lots of run on sentences :0  ) err umm a perspective that you're missing on looking into the Microsoft.com site and trying to figure out what toolsets are relevent and fully baked.
    Tuesday, April 29, 2008 6:11 PM
  • I am currently using WPF extensively in a product we are developing. WPF certainly has its issues... especially on Vista... there is great irony in the fact that the latest operating system doesn't do a very good job with the latest visual framework (WPF). Anyone that has tried a non-rectangular window that allows transparency knows the pain. I thought SP1 of Vista was to make that better... I guess it did sort of... but I guess the performance of these windows is pretty sucky on XP as well... especially as the window gets larger. I'm not even going to talk about bitmap effects and performance. Actually, I will: brutal.

    That being said, I heart WPF. I heart the Design/Blend/VS 2008 workflow. Done right, a designer can actually give an interactive developer more than a PNG. Actually, right now, we go Flash/Illustrator ->Design ->Blend->VS 2008. I'll take it though. The key to this is XAML obviously.

    Databinding, given all the things you can do with it, is outstanding. I would use WPF for this alone. But it did take a little bit for me to see the light. I mean: INotifyPropertyChange, Observable Collections, Collection Views, etc., etc. And that sort of underscores the potential problem with anything new... the learning curve. But, just because it may be hard to learn doesn't mean it isn't valuable or ready for primetime.

    For me, here is a sampling of some resources I find/found useful:

    Just search the Web on any WPF-related topic and you'll find lots of good stuff out there. The problems you're describing above are not deal-breakers, just little annoying things you'll have to work around or learn more about to use WPF effectively.

    I'll throw out one more thing... done correctly, WPF/Silverlight gives us the opportunity to build unified UIs... that is, we can design once (XAML) and deploy to both desktop and the Web browser. Though, to be honest, my initial foray into Silverlight was bitterly disappointing... but I've not given up just yet... plus, there's always Flex/AIR :)


    Sunday, May 4, 2008 2:48 PM