Silverlight cynicism
For a long time I wondered whether Microsoft was ever going to fix basic defects. With every release, there was a slew of sparkly but basically useless multimedia toys. There are remarkably few occasions on which I need spinning cubes with a different movie playing back on each side, whereas the need to bind a DataForm combo-box to a lookup table crops up every damn day.
But along comes design tooling in VS2010 and Lo! the basic engineering gets fixed. It’s not finished, but they did say it was a beta. All in all it’s pretty damn good. RIA is what changes Silverlight from a wannabe Flash competitor to The Next Big Thing in commercial development.
That’s a pretty big change. Flash is basically only good for animated diagrams and putting sparkle on electronic brochures, and Silverlight 1 was basically Microsoft Flash.
Silverlight 2 eliminated the need for interpreted script and the glacially slow event marshalling associated therewith. That was definitely worth a major version number change. Silverlight 3 on the other hand contained multimedia toys and a few bugfixes, and I don’t think it deserved a major version change. I would have called it 2.1, not 3.
Silverlight 4 is a similar story. It adds RIA, which is important, but it doesn’t fundamentally change the rest of the platform, it just adds missing libraries, fixes bugs and refactors the assemblies to match the rest of .NET – which is a very good idea that will eliminate a whole class of headaches, but not worth a major version. Maybe combined with RIA it’s enough, barely.
But that’s all history. The point is it’s nearly ready. The tooling’s here, the libraries are getting shaken down as people start trying to do real work with them and the VS tooling is getting better, although if you ask me it needs rethinking in several respects.
In particular, using grids is a colossal pain in the bum. It’s obvious what needs doing: instead of just XAML and designer views, there ought to be XAML, designer and preview just like Windows Live Writer. The designer ought to use designer styling so that rows and columns set to auto sizing don’t collapse to nothing when you remove their content. When rearranging controls in a grid, they should keep the same margins etc they have when the drag starts instead of getting weird margins and spanning rows and columns. If we want oddness like that we’ll use the property sheet guys! Have you been taking lessons in how to build a crappy designer from the morons over at Crystal Reports? Also a drop-target magnifier would be a good idea if you’re going to do that sort of precision placement with a mouse.