Tuesday Morning Thoughts

Some random stuff and some not so random stuff.

First, the Oral-B CrossAction Vitalizer is possibly the best damn (non-electric) toothbrush ever made.  It’s comfy on the gums, it gets to the back teeth, and the handle is just right for control of pressure and angle.  The “soft” bristle isn’t very soft at all, but I’ve found that it doesn’t cause any pain or damage to my gums…it’s just right.

Second, in reorganizing some of our code, I jumped headfirst into Microsoft’s Smart Client Software Factory (SCSF).  While the verdict is far from conclusive, I have to say: I like it.  It implements several ideas I was tossing around in my head for a Windows Forms client but is obviously much, much more well developed and thought out.

I do find it annoying that it is somewhat difficult to visualize the relationships.  That is the one advantage to using an XML based object configuration system as opposed to the attribute based system used by the Composite Application UI Block that SCSF is built on: it’s quite easy to wrap your head around the relationships and see how the pieces fit simply by reading the XML.  To be honest, it wouldn’t be too terribly difficult to build similar (but certainly much less refined, given the amount of time I have) facilities with Spring utilizing the dependency injection, loosely coupled events, expression evaluation, and other components of Spring.

However, I think that the entire package, including the GAX pieces make this too compelling of a package to pass up.  There is surely a huge learning curve for the framework and library itself, but I think it will be made up for with the gain in development and deployment speed.

It’s kind of cool that it also supports WPF modules.  I spent quite some time last night (up until 2 AM) trying to replicate some of the existing UI components that we have into WPF UIs.  I think I’m starting to “get it”.  Not in the sense of why XAML is great for UI developers (I’ve always preferred declarative markup), but in the sense that I’ve kind of aligned myself with some of principles of XAML (i.e. layout, grids/tables, applying styles, backgrounds, etc. – which are of course slightly different than HTML) and I can now really appreciate how much easier it will be to create snazzy UIs in the future.

cab-hosted-wpf-UI.jpg

While I have Expresison Blend, I found it much more constructive to actually go into the raw XAML and write it by hand (well, not to mention that I find the UI hideous and unusable or perhaps I’m just way too Adobe-ized).  It was quite slow going at first, but once it clicked, it picked up very quickly.

Ultimately, however, I don’t think that I can use WPF for our next release.  There seems to be some runtime instability with the current Visual Studio 2005 extensions (the November 2006 CTPs) to support WPF and WCF…I was only able to run my application once last night; subsequently, it would crash immediately.  The problem was only fixed by rebooting my machine.

But in any case, there are some great SCSF resources out there.  I would start from Cabpedia.com as CAB itself is really what presents the challenge in the Smart Client.  Cabpedia has a list of great resources which helped me at least grasp some of the conceptual ideas behind CAB.  In particular, a series of articles by Szymon Kobalczyk.

You may also like...

2 Responses

  1. Rob Relyea says:

    Charlie-
    The crashing problem that you mention sounds bad. Please work with the WPF Forum [1] to understand the issue. It should not block you.
    [1] http://robrelyea.com/wpf/forum

    Thanks, Rob

    Rob Relyea | Program Manager, WPF & Xaml Language Team
    robrelyea.com | /blog | /wpf | /xaml

  2. Chuck says:

    Rob,

    Thanks for the bit of encouragement.

    I’d really like to switch over to WPF. I’ve always be the kind of guy to really get a kick out of hand crafting HTML and ASP.Net pages so I’m very much drawn to the XAML methodology of defining UIs as opposed to the standard Windows Forms methodology.

    That said, unfortunately, our timeline simply doesn’t have enough slack to deal with _possible_ instability issues (it’s too unpredictable at the moment – the crashing does not occur consistently enough for me to make any determinations (of course, this doesn’t factor in VS2005 crashing occasionally either)) with the development tools, the overall lack of community documentation (in comparison to Windows Forms), and the lack of well developed tools for the 2005 suite (not considering Orcas quite yet).

    Deadlines are deadlines, unfortunately.

    Nonetheless, I see myself spending a great deal of time with WPF in the future 🙂