Now that Silverlight 2 is getting closer to a reality (and a Go-Live license) the 3rd party controls are starting to sneak out. None of these are in ‘release’ quality but I thought it might help to get my opinion on the current state of these controls. Some of the vendors are releasing previews of their entire Silverlight 2 suites while others are releasing teaser controls (and some are even free!).
Caveat: I don’t think its fair to ‘review’ these suites, I have included some comments about what I like and don’t like about the controls. Please don’t take any of these comments as a ‘review’.
In testing these, I simple was creating them ad-hoc with XAML. I did not test them with Blend at all. Here are the controls I’ve looked at so far (in no particular order):
ComponentOne Studio for Silverlight (M2 Preview Release):
This control suite looks like the most complete of the bunch. While I don’t prefer the speed of the Tree control or the look/feel of the DataGrid, overall its a great set of tools. I particular like the input controls (e.g. MaskedEdit) and the Image Rotator. It comes with lots of examples and seems to abide by design standards pretty well. My biggest complaint is the sheer size of the library. The shared part of the library is over 500K and on top of that you layer one of a number of assembllies that contain the controls. This means that a typical app is bloated by about 200-400K (after xap compression).
DevExpress’s AgDataGrid (Beta 1):
Another data grid that’s been thrown into the mix, DevExpress’s grid seems to perform pretty well though it is buggy with some of its implementation of ObservableColleciton…but it is Beta, right? Out of the box the Microsoft grid seems to do more than this grid but with a quick look under the covers its obvious that this is a powerful control. My only peeve is that they seem to be modeling this off their WinForms grid in its naming of common properties (e.g. DataSource instead of ItemsSource). But that’s not a big complaint.
I am less than blown away with these controls. This suite doesn’t quite seem to know what it wants to be with a mix of different types of controls thrown together (rotating cube, video player, tree control, and uploader et al.) it seems like mix of single use controls instead of a suite for a specific market (i.e. ComponentOne seems directly aimed at Line of Business apps). For the most part the controls work as advertised but they don’t behave well for measurement and arrangement (which means they are wonky in a Grid). This is the only suite that doesn’t mark itself as a non-released version (there was no indication of Beta, CTP, Alpha, etc.) so I suspect its a very early cobbling of some of their controls to give us a preview of what they’re capable of. In addition, there is no segmentation of their controls so you’re required to use the entire 900K+ assembly even if you only need one of their controls.
I used the UltraGauge and UltraChart to create a simple example using live data and was pleasantly surprised. The UltraChart was powerful and worked much like expected. The range of customization seemed deep and performance was good. The docs are a little lacking but at this point in their development they are what I would expect. The UltraGauge I was less happy with as it took a substantial amount of XAML to achieve even a simple radial gauge and setting values is not simple. This complexity is probably a benefit for customers looking for a very flexible Gauge, but for simple work it is a lot of work to get simple stuff to work.
The licensing (open source/free) is great. For straightforward charting, its a great solution. Two things that make me less than thrilled with it though: height/width must be specified (breaking design standards and annoying users); and will not dynamically display chart information. Adding data to the chart’s series’ simple does nothing. No redisplay no matter what I tried. The examples the site uses to show dynamic data involve updating external data and restarting the Silverlight application. Too bad too…
I decided not to review the GOA for Silverlight project as its really an implementation of Windows Forms for Silverlight and isn’t really a control suite but a porting package.