Anyone who knows me, will know that I have been an advocate of Silverlight for a very long time, since the very beginning in fact; I just knew Microsoft could be on to something big if they played their cards right. I even defended it when people called it names such as ‘fatso‘ … err, I mean… a ‘Flash clone‘. Colleagues and me would get caught up in trivial debates about whether it will provide any real world benefit – is it unnecessary and simply just more bloat-ware and did we really need a new programming interface to get the job done a different way, ala XAML?
Well I thought ‘yes‘, we do need a new way of doing things. I clearly ignored their pessimistic and habitual outlook because I believed it was, or could be, so much more – I backed Silverlight to be our next big thing indeed.
However, at the beginning, when I was first familiarising myself with the Preview releases, and getting pretty excited mind you between Expression Blend and Silverlight, I must have clearly misunderstood. I had my eyes clearly set on using Silverlight as a UI development and design platform so to speak; a way in which to deliver rich new user experiences to the user right from within the browser. Is this not what it was created for? I thought it could be used to completely change how we interact and think about apps for the web, and I wanted to harness this as a platform to provide my users with a seamless experience between pages; a way to easily create compelling, integrated, easy to use and most importantly, unified user experiences from browser to browser, pixel to pixel. Allowing us to say goodbye to traditional web application programming limitations set out by our old mates: HTML, CSS, JavaScript, AJAX – Pumpkin Mash and hello to a clean and crisp mark-up language – XAML allowing us to generate WPF-style interfaces where browser idiosyncrasies would be banished for good and traditional asynchronous calls performed over AJAX would be a thing of the past. Never again shall we need to bend our web applications to suit business needs or uphold smooth un-jilted flow in order to deliver a joyous experience. You can see I’m pretty keen to abolish Web 0.9 Beta.
However, what I discovered (along probably with thousands of other users) when I pulled the shiny and new Silverlight 1.0 out of the box is that this may not be our white horse and this magical replacement we were expecting. Microsoft did not have plans for this at the time to be a platform in order to deliver rich user interfaces, and it was not to be the next platform for RIA. What it turned out to be rather, was a platform for delivering multimedia, vector graphics capabilities, animation and rich content amongst other things (to save me from flamewar).
WHAT THE! My bubble had burst. In fact I think I heard a series of bubbles bursting from many fellow developers at ReMIX Australia when there was no word mentioned in the early days that Silverlight would be supporting this functionality [at least anytime soon] with the only answer being you can handle keyboard input manually and create your own input control mechanisms it did not sound promising. A lot of us had bigger plans for it, the thought of having a platform that more or less could do everything Adobe Flash could do, but with the benefit of entiremost of the .NET Framework with two of the greatest IDE’s ever designed (Expression Blend and Visual Studio) backing you up you were virtually unstoppable, and it just seemed odd Microsoft didn’t target this space.
But then at some point something happened. (Are you twitching from my overuse of italics yet?) MS seeing either the response from the community, electronic and verbal feedback alike, I feel Microsoft started to have a shift of vision, or perhaps saw this wonderful opportunity to leaverage Silverlight as a UI platform and we started to see a bit of this come to fruition around launch of Silverlight 2.0…
Now we’re talking! Silverlight 2.0 shipped with a stack of controls – TextBox, CheckBox, Slider, ScrollViewer, and Calendar. It contained two-way databinding support, automated layout management (by means of StackPanel, Grid etc) as well as data-manipulation controls, such as the TextBox and ListBox. In fact the Beta shipped with more than 30 UI controls for our hungry innovative appitite to really get started. We did after that see a load of great stuff coming out and lots of fun apps being developed. Of course Silverlight 2.0 shipped with a many more additonal features and fixes, such as LINQ, WCF support and loads of additional third party libraries which I won’t go into here. I was really pleased with the outcome of this version, unfortunately I never had a chance to get something out there in the commercial world. I believe Silverlight 2.0 was is a great testiment to what is possible and the direction of the new web.
But the real reason I present you my life story and my thoughts on Silverlight today is to express how far we have come, we started back in a day where HTML was the going thing, horizontal rules were rad, <marquee>’s were the bomb and if you used Flash you were only marginally more respected than a FrontPage developer. We now embrace and encourage new ways to innovate a site, take advantage of these tools and I think most interesting – want to bring a more desktop-like experience to the web, and I believe no better for us to take us there other than Silverlight. Just recently we heard a announcement from MIX 09 for the Silverlight 3.0 Beta containing a stack of great features described here at Tim Heuer’s Blog and here with a sample application already produced by Mike Harsh and an official download link here from Microsoft. This is looking to be the most promising version yet and is really starting to bridge the gap. It truly is great to hear, now we’re seeing things like the DataForm, DataPager, DomainUpDown, TimePicker, additional graphics effects, out of browser and offline user experiences a lot of great rich UI tooling to really start making some awesome applications that shine, are really usable and most importantly meet your business requirements without too much leg work and that they can perform quite fast.
Should you go out and start making your entire app in Silverlight?
I don’t know, that decision would have to be made by yourself dependent on your needs, but there was an announcement at MIX 09 for a new .NET RIA Services platform which is described over here, but probably in more detail over here which all Silverlight fans should take a look at. Also a nice article on building amazing business applications with Silverlight.
Should you investigate it as a solution to meet some of your needs at least?
Most definitely. I think we’re now talking about Silverlight providing great potential in the space for UI and UX, and it’s really starting to step up to a point in which anything you desire is almost achievable within reason for a web application.
In final thoughts, Silverlight is really beginning to catch my attention now and I haven’t read entirely about all the new features that can be found in Silverlight 3.0, but from what I have read – it looks like great stuff. I would appreciate any comments on this particular topic, I am very interested in what others feel about Silverlight and this shift to encourage UI development with it and what you guys may be interested in using it for. I imagine there are others like me who have been waiting to pick up this technology for delivering compelling rich user interfaces and right about now you’re starting to feel is a great time to jump in.
You can check out the new Silverlight blog, a bunch of articles on Silverlight at many popular .net aggregation sites, look at the penetration statistics for RIA-supporting browsers and of course take a look at info from the MIX Conference in Las Vegas (I’m so going next year), in fact a whopping 31 sessions on Silverlight are scheduled compared to WPF’s four (4)!
(Here is a link to a complete list of all the MIX videos, which will be easier to sort through in my opinion).
The latest info and downloads on Silverlight 3.0 can be found over at Tim Heuer’s guide or directly at Silverlight.net so you can start developing today!
Post a Comment