The WPF (read Avalon) application and programming models are just beautiful.
Having the ability to display the same markup in a standalone app or a web browser based app is fantastic. HTTP deployment scenarios are a snap (if you can figure the damn MIME types out).
Having said that, there are still major issues with the "Cider" designer, which shipped in December 2005 for the first time and resurfaced in January 2006 CTP (release notes here).
For it to be of any use, there are currently a couple of major disadvantages (yes, it's a CTP):
- It does not support (or has really limited support) to include external classes that one would want to use in a rich client, Avalon application. The following mapping PI <?Mapping XmlNamespace="my" ClrNamespace="MyNamespace" Assembly="MyDLL"?> breaks the designer and if one needs to include the class inside XAML, one needs to put it in a directory behind environment variable CIDER_MAPPING_DLL_DIR.
- There's no support for generating event handler implementation methods automatically. There's even no double clicking on the components one has drawn on the design surface.
- There's no ability to delete a component using a designer, once it's been drawn. You have to delete the approprite XAML block in an XML editor.
- Certain container components (like System.Windows.Controls.WrapPanel) do not allow a component to be draged (drawn) inside itself. You have to manually move the appropriate XAML block inside the <WrapPanel> element.
- There's no way to display a custom user control inside the current build of "Cider" designer. You can, however, display any Page, Window and Panel based components.
I'm wondering when Sparkle (Microsoft Expression Interactive Designer) is going to be updated to the latest WPF bits so it could work with 2.0.50727 and December 2005/January 2006 WPF. We need it as a CTP. Hell, if you're at it, release the complete Expression suite in CTP form.
Note: December 2005 and January 2006 bits of WPF should be binary compatible. I hope that this is a first indication of stabilization process starting. There's just too many products that rely on WPF rendering engine for it to be volatile.