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 asp.net 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)
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!
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
- Create Data-Centric Web Applications With Silverlight 2
- Model-View-ViewModel In Silverlight 2 Apps (I especially like this one â€“ be sure to check out the code sample)
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:
Castle Core, Microkernel, Windsor, DynamicProxy2 â€“ all Silverlight ready (see trunk)
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.