Silverlight Overview
Microsoft Silverlight is a cross-browser, cross-platform implementation of the .NET Framework for building and delivering the next generation of media experiences and rich interactive applications (RIA) for the Web. Silverlight unifies the capabilities of the server, the Web, and the desktop, of managed code and dynamic languages, of declarative and traditional programming, and the power of Windows Presentation Foundation (WPF).What is Silverlight?
Silverlight enables you to create a state-of-the-art application that has the following features:
It is a cross-browser, cross-platform technology. It runs in all popular Web browsers, including Microsoft Internet Explorer, Mozilla Firefox, and Apple Safari, and on Microsoft Windows and Apple Mac OS X.
It provides a consistent experience no matter where it runs.
It is supported by a very small download that installs in seconds.
It streams video and audio. It scales video quality to everything from mobile devices to desktop browsers to 720p HDTV video modes.
It includes compelling graphics that users can manipulate—drag, turn, and zoom—directly in the browser.
It reads data and updates the display, but it doesn't interrupt the user by refreshing the whole page.
Why Silverlight?
Running Silverlight-Based Applications
Silverlight-based applications run in the browser. Silverlight makes sure that you can
run your applications in all modern browsers, without having to create browser-specific code.
To run a Silverlight-based application, users require a small plug-in in their browser. The plug-in is free. If users do not already have the plug-in, they are automatically prompted to install it. The download and installation take seconds and require no interaction from the user except permission to install.
Operating system |
Internet Explorer 7 |
Internet Explorer 6 | Firefox 1.5, 2.x, and 3.x | Safari 2.x and 3.x |
Windows Vista |
Yes | - | Yes | - |
Windows XP SP2 / SP3 | Yes | Yes | Yes | -
|
Windows 2000 | -
| Yes | - | -
|
Windows Server 2003 (excluding IA-64) | Yes | Yes | Yes | - |
Mac OS 10.4.8+ (PowerPC) | - | - | - | - |
Mac OS 10.4.8+ (Intel-based) | - | - | Yes | Yes |
Top 10 Silverlight Real World Implementations
Hard Rock Cafe Memorabilia - http://memorabilia.hardrock.com/
NBC Beijing Olympics - http://www.nbcolympics.com/video/techpreview.html
Microsoft Videos - http://www.microsoft.com/video/en/us/default.aspx
WWE / ECW X-Stream - http://www.wwe.com/shows/ecw/silverlight/ecw
Microsoft Health Common User Interface - http://www.mscui.net/PatientJourneyDemonstrator/
Torque TV - http://www.torque.tv/
Microsoft Popfly - http://www.popfly.com
Wish43 - http://silverlight.interknowlogy.com/wish43/
RobotChamps - http://www.robochamps.com/
Microsoft Live@edu - http://my.liveatedu.com/
3rd Party Support
More detail here. List the suites of silverlight tools + summary of their contents
e.g.
Vendor | Component |
Supported? |
Status |
Release Date |
Microsoft |
Standard UI Controls e.g. textbox, label, grid, treeview |
Y |
Production |
|
Microsoft |
Chart Controls |
Y |
Production |
|
Microsoft |
Map Controls |
Y |
Production |
|
Microsoft |
Gauges |
Y |
Production |
|
Infragistics |
Standard UI Controls e.g. textbox, label, grid, treeview | Y | Preview | Q2 of 2009 |
Infragistics |
Chart Controls |
Y |
Preview |
Q2 of 2009 |
Infragistics |
Map Controls |
Y |
Preview |
Q2 of 2009 |
Infragistics |
Gauges |
Y |
Preview |
Q2 of 2009 |
Addition to Microsoft Silverlight WPF controls there are other 3rd party control providers also announced their support to the Silverlight. E.g. we can use “Silverlight Line of Business controls” from Inragistics to achieve following.
Push the envelope of performance with a Silverlight grid that has data and UI virtualization, and a Silverlight tree that has lazy loading integrated into its core.
Create powerful designs for your next generation Web application through Silverlight's native styling and templating, supported by each control.
Build the best business applications imaginable.
Development Resources
Documentation for Silverlight is very easily available on internet and MSDN is the best resource for any kind of help. Apart from MSDN, books and forums are easily available for Silverlight. We can find examples and Silverlight samples on the internet. Some links to Silverlight web resources
http://msdn.microsoft.com/en-us/library/bb404700(VS.95).aspx
http://silverlight.net/quickstarts/
http://www.microsoft.com/Web/content.aspx?id=IT-Mentors-SilverlightFundamentals-5-CustomControls
http://silverlight.net/GetStarted/
http://cid-71b364b59919d1e8.skydrive.live.com/self.aspx/Public/blog%20files/
http://www.apurvalawale.com/silverlight.aspx
There are many more Silverlight resources available on the internet. Link to list of Silverlight books
http://www.silverlightbooks.net/
Why WCF (Windows Communication Foundation)?
Complete streamlined Technology
Provide access to ASMX, PHP, Java, TCP, named pipe, and JSON-based services by add a single XML element for each type of connection you want to support.
Works the same for both .NET and Silverlight
Purpose of using WCF: your address, your binding, your contract and your implementation, and UI are complete separate
By using WCF we can use our existing code in service implementation and expose as WCF service.
Technical Challenges using Silverlight
Complete new Asynchronous programming model: ASP.NET is the server-side technology while Silverlight is for client-side. This is officially the end of request/response architecture.
Clients as consumers of your server-side data: Silverlight requires you to think in terms of clients as consumers of your server-side data, which also contain code that executes to handle the end result of the data it receives. You have two applications to write now. Rather than processing the user’s view on a server, you’re much better served asking a server through a service call for some data, and then rendering that data through code executed right on the
client’s desktop.
Silverlight has its own mscorlib.dll: This is the reason we can’t use .net class libraries with
Silverlight because it is designed to be lightweight, quick to download, and not prone to the security nightmare. We can’t use many .net classes with Silverlight. Silverlight is a sub-set of .NET, but it is not .NET. In fact you can think of Silverlight as a really large copy-paste job with some very large missing pieces. (We need to keep in mind that this will make lot of
our existing code useless and we need to re-write these pieces, and this is the only reason we have to use WCF as a middle layer to access .net classes.)
Your entities are not entities: Silverlight applications of any complexity will ultimately have to work with copies of your objects (or perhaps copies of your DTOs which are copies of your entities), because they come in the form of a proxy to the real thing, facilitated through contracts, such as WCF serialization. Since a Silverlight application must only consist of
other Silverlight assemblies, it makes sense that you’d have to effectively duplicate all of your classes on the client, have no server classes at all, or represent those classes somehow with a
proxy.
What costs, if any, would be incurred by a switch to Silverlight?
Considering the fact that except all above challenges we may find new challenges at the time of development and fewer resources compare to ASP.net 2.0. We have to accept that it will take fairly good amount of time at initial stage of development to solve technical issues that will occur to accept new technology. Also we have to re-write existing web functionalities to provide support for Silverlight, and we have to redefine the web architecture to use WCF and Silverlight. As we already have all software and tools available from Microsoft and Infragistics We will not have any extra cost for tools and technologies.