I made the preview release of StoryTeller a couple months ago as soon as I got some sort of “intelligent editor” functionality going in the WPF client so you very rarely ever had to expose your tender eyes to the horrors of the underlying Xml storage. Fine, except for one little problem: the UX and usability suck (and I know because my team uses it and I’m irritated with it when I use it. Hooray for dogfooding). It’s also butt ugly.
- It’s an excuse/reason to learn a lot more about WPF for me. I think I’d finally have to dig into data templates, styling, and attached behaviors to do this well.
- Embedding a WebBrowser control into a WPF app and letting more COM stuff in the door is kloogey and occasionally error prone. The integration is odd
- Might run faster
- Richer editing controls
- The amazing jQuery ecosystem of plugins and support. At a minimum, I’d be using the jQuery UI sortable/draggable stuff, jQuery Validation, and jQuery Metadata. I went looking today and I just don’t see any substantial OSS community around WPF other than more copycat MVVM frameworks than you can shake a stick at.
- I’m much more familiar with the jQuery way of doing things and HTML
- I’ve got a successful working prototype to start from
- Many of the mechanics are much simpler with jQuery than with WPF. For example, I want users to be able to reorder parts of the StoryTeller specification by dragging elements around. This is just a matter of some declarative class names in HTML with jQuery, but the WPF equivalent looks exceptionally nasty.
- I think this model is actually much easier to test than the WPF model. It’s hard to write automated tests against WPF without something special like TypeMock that can get around how the WPF team sealed so many of the routed event classes or an expensive 3rd party tool that screen scrapes.
- Truth be told, I don’t really like WPF. It’s weird and has more “oddball-ness” to it than any other technology I’ve ever used. There are parts of it that I love (the layout system comes to mind), and others that drive me batty (XAML’s runaway verbosity, binding expressions, routed events). I don’t hate it on first sight the way I did WebForms back in the day, but something about it just doesn’t agree with me.
Call it a Wash
- qUnit isn’t that hard to use, so I’m not sure that the C# code is any easier to test and I have a recipe for integrating qUnit tests into an automated build anyway.
Anyway, it’s been interesting. Now, what do you think?