Seeing the Light

…the Silverlight…

The more I dig in and experience the Silverlight, the more I start to realize that this is a great technology just in it’s infancy with tons of potential.  The capabilities are endless, everything from as simple as replacing your javascript ajax muddling mess, to  building off-line applications inside Mesh, to plugging in RIA inside your Sharepoint installs, to pulling stock data with Silverlight’s rich networking capability.

What is really cool is it’s all done with my favorite language of choice (C#), or if you like VB.NET, IronRuby, IronPython, etc… you can build Silverlight apps – there is even an Eclipse plugin if your not a Visual Studio user!

What tops is all off was the great decision to use XAML for the views.  There are frameworks emerging, such as the newly release Prism V2 that allows you to create Silverlight/WPF apps using the same modular, dependency injection, event-driven architecture, or you can simply learn the MVVM architecture which is, in and of itself, very flexible and easy to develop with (and I would suspect Commanding will be included in Silverlight 3).

The two-way databinding is a real treat, as well as the fact that you must use asynchronous calls back to a service layer, supporting WCF, and even ADO.NET data services.  The power of ADO.NET data services let’s you take your Entity Framework, Linq to SQL, or even NHibernate Linq to hook up calls to the database.  Silveright consumes these services and creates proxy objects that can be mapped back and forth with your view model objects.

Silverlight even has a Silverlight test tool to run UI tests – which if you use the MVVM design, you’ll be rewarded with an easy to test control.

Silverlight can be a fully blown application, with navigation, page loading, etc… or can sit inside a page as a ‘Silverlight island’ – ie. think of a rich upload control showing upload progress.  You can tap into the underlying DOM from within Silverlight, or access Silverlight controls from your web pages – there is a Html bridge, etc…   It can run in your plain html page, your jsp page, your aspx page, your mvc view (and even call your controllers if you so wish).  It has crossdomain policies to keep it secure or to allow access to certain resources outside your domain.

The information out there on Silverlight is growing in leaps and bounds.  Some favorites:

Jonas Follesoe – wow – TONS of good stuff here!  Great blog to read as well, he does a fantastic job explaining how Silverlight works- good pictures, etc…

  • Is Silverlight 2 Ready for Business Applications?  This article is a nice overview of Silverlight 2:
    • Offline Storage of Data
    • Access to Local Files and Improved File Uploading
    • Multi Threading, Real-Time Networking, and Cross Domain Services
    • Rich Control Framework for Great User Experiences
    • Visualizations and Animations
    • WPF Portability
    • Linking, Search Engine Optimization, and Printing
    • Printing in Silverlight 2
  • Mesh-enabling the Dive Log Silverlight Application (if this isn’t cool I don’t know what is – lol)

Nikhil Kothari – ie. MVVM explanation, as well as a very cool Silverlight framework: Silverlight.Fx

Vectorlight has a nice set of controls: here is a ‘desktop environment’ showing off some of the controls they have

Silverlight Toolkit – this is a must – very very very cool charting, graphs, Themes, Layout tools, as well as other free controls!

Silverlight File Upload – this one is well done!

SilverlightContrib – free controls!

‘DeepInConcert’ has a TON of other stuff as well – Isolated storage, Dependency Properties, etc…  ie. Silverlight 2.0 Layout – a good primer on Grid, Stackpanel, Canvas, etc…

John Papa’s blog -  also, his great book on the data aspects of Silverlight, ‘Data-Driven Services with Silverlight 2’:  WCF, ADO.NET, DataBinding, REST.  I own this one and I loved it – it’s been a good reference as well

Shawn Wildermuth on his blog, as well as some great MSDN articles:

Prism 2 – a CAB architecture mentioned above – just recently released

Silverlight Unit Test Framework (don’t you just love to see MS create a test framework suite to go with their new products… wow, it’s a coming of age isn’t it – lol)

Rockford Lhotka (CSLA) – several good posts on Silverlight as well as a framework update to CSLA for Silverlight

Some notable open source libraries:

Json.NET for Silverlight

Castle Core, Microkernel, Windsor, DynamicProxy2 – all Silverlight ready (see trunk)

Ninject – Using Ninject with Silverlight

ok… my fingers are hurting now – but this should give a tremendous amount of information on Silverlight.

Silverlight at first is a bit daunting if your a web developer who hasn’t touched my XAML.  But it doesn’t take much to start to get into the groove.  And once in that groove – it’s been a blast learning about it.  Some parts are very much in their infancy (ie. the Silverlight Datagrid by MS… not quite ready to be ‘released’ imo), but it’s a great emerging technology.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s