Silverlight 2 beta 1 has introduced a lot of essential UI
controls to the infant web platform, but there is much more that needs to be
done to make Silverlight "complete." From a more complete collection
of built-in controls to a robust and functioning 3rd party market, Silverlight
has some work ahead of it to become an equal peer among stalwarts like WinForms
and ASP.NET. There are three key areas in Silverlight's UI component model that
need improvement: More advanced controls, 3rd party support, and better data
access support.
Advanced Controls
While the first beta of Silverlight 2 does ship with a
DataGrid control, it is lacking many of the other "complex" controls
that are required to build complete line-of-business (LOB) apps. Controls like
treeviews, tabstrips, menus, rich text editors, and schedulers are all absent
in the current preview. Some of these controls may be added by Microsoft in the
next two betas, but if history is any indication, there will be gaps in
Microsoft's effort.
Part of the challenge with Silverlight and its requirement to
provide vast collection of controls is that it is trying to appeal to two
distinct developer groups: Windows developers that want to build their apps for
the web and web developers that want more rich "desktop-like"
experiences in their web apps. Each group is used to a different
"default" collection of controls, so it is going to be very hard for
Microsoft to please everyone. All the more reason the next point is important.
3rd Party Support
Every successful Microsoft development platform has been such
due in part to rich 3rd party support, especially in the UI control arena.
Microsoft recognizes that it can't (and doesn't want) to please everyone and
they rely on the symbiotic relationship with component vendors to address the
needs of a diverse development community. Silverlight is no exception.
As Silverlight moves past its first beta and approaches RTM
near the end of summer 2008, UI component vendors (like Telerik, DevExpress,
etc.) will start to ship complete toolboxes of controls built for the new
platform. And while it's good to know that's coming, production versions of 3rd
party UI controls are still months away. It's an important consideration to
keep in mind when debating any Silverlight development this year. Just imagine
how productive you'd be without your favorite UI component set in your current
WinForms/ASP.NET projects!
Data Access Support
Finally, Silverlight has a long way to go to make data
access a more intuitive process. Silverlight beta 1 has none of the traditional
"data source" controls we've grown to expect in Microsoft's
development platforms, so building a "quick" proof-of-concept
Silverlight application that accesses a SQL Server database is no trivial task.
At present, it requires (at least) a web service to serve the data from your
web server to your Silverlight application running in the browser.
There are solutions on the horizon, like the Astoria
project, that promise to ease the pain, but Microsoft has no published plans to
add data source controls to Silverlight (or WPF, for that matter). Some
Microsoft insiders have blogged about the possibility
of data source controls in the future, but at this point it's nothing more than
ideas. The only way to ensure Microsoft spends enough time on this problem is
if they get clear feedback from the community- a.k.a. you! If you want data
access in Silverlight to be easier, let Microsoft know.