Silverlight versus other applications inside web browser

With this new releases of Silverlight, the border between web applications and desktop applications is becoming much thinner. Code Name WPF/E. You might have heard the name Windows Presentation Foundation Everywhere, or WPF/E. This was the code name under which Microsoft developed Silverlight, in reference to Windows Presentation Foundation, the rich desktop programming framework included in .NET 3.0 and later. Very soon, however, this name was abandoned in favor of the catchier Silverlight. Silverlight is here to stay, and Microsoft is betting a lot on this technology. In these three years, it went from “Flash contender” to major user interface technology. A convergence is occurring between Silverlight and WPF. More and more features are shared. The movement is toward compatibility, with Silverlight becoming a complete subset of WPF. Not just compatibility of interfaces, but also binary compatibility. We will probably see this happening in the next few years.

Silverlight is a powerful development platform for creating engaging, interactive applications for many screens across the Web, desktop, and mobile devices. Silverlight 5 introduces more than 40 new features, including support for running Silverlight applications with desktop features in the browser, dramatic video quality and performance improvements, and features that improve developer productivity.

Alternatives to Silverlight

Adobe Flash - this is the obvious contender, the one technology that is most often mentioned when Silverlight is compared to other frameworks. Adobe Flash is installed on a huge number of computers and various operating systems. It is also a well-known environment, and many companies develop applications in Flash for the Web. As mentioned when Silverlight 2 was released, Flash is not going to be killed by Silverlight, and in fact this was never Microsoft’s intention. Rather, Silverlight provides a welcomed alternative to firms who do not want to invest in two very different technologies for the desktop and the Web. Silverlight and Flash are coexisting on the Web, sometimes even in the same web pages. Thankfully, this is easy to realize, and there is even a possibility to let these mixed applications communicate together through JavaScript. This allows a gradual modification of existing websites from Flash to Silverlight, without breaking the functionalities or forcing the users to adapt to large-scale changes. We actually saw some striking examples of this at Microsoft itself, with existing Flash applications being gradually converted to Silverlight without disruptions.

Java Applets - Java as a plug-in is quite widespread and allows small applications known as applets to run in the web browser. Java was revolutionary in that way when it was released, but it suffers from a lot of issues: . Java is notoriously slow. It’s slow to install on a new computer, and especially slow to start. Java applets have a bad reputation when it comes to security. This claim might not be as true in newer versions as it used to be, but Java’s adoption in the corporate world has suffered a lot from this concern.

Microsoft ActiveX - silverlight differs significantly from ActiveX, and converting existing applications to this new technology is not the easiest task a developer can dream of. With this step, however, you will offer a newer, richer, and much friendlier interface to your users, and make a big step toward the future of software development.

Adobe AIR - For users, AIR applications are known to be heavy in memory consumption, and require an additional framework that must be installed the first time you run an AIR application(even if you have Flash already installed). This can be a problem on corporate networks, where IT departments are often reluctant to install new components on users’ PCs. Silverlight, on the other hand, is installed once and gets the out-of-the-browser capabilities immediately.

HTML5 - this new revision of HTML intends to provide a wide range of rich functionality, allowing developers to reduce the use of third-party plug-ins. In this matter, it positions itself as a concurrent of Adobe Flash and Microsoft Silverlight.
Although it is true that plug-ins cause problems, they also solve some. One big issue with HTML is that different web browsers have different implementations of the standard. This is a well-known issue: Testing a web page for all major web browsers on all major operating systems can be a real hassle. On the other hand, Silverlight as a plug-in is guaranteed to run the same in every supported web browser. The major issue that HTML5 faces is that a wide adoption will take a lot of time. Also, if we learned anything from the past, it is that each browser is likely to offer a slightly different feature set. Some features will simply be missing from some browsers; other features will be implemented in a different manner. Compatibility will take a lot of time, if it is ever achieved. In the meantime, and until we know whether HTML5 really delivers what it promises, Silverlight offers a real alternative.

One important thing to keep in mind is that Silverlight is not a replacement for HTML web pages, and will absolutely not kill HTML. Silverlight is here to enhance your web pages with richer content, and with the out-of-the-browser feature, to create lightweight applications that can function online or offline. Learning Silverlight does not mean that you should avoid writing HTML code, or that you should stop investing in technologies such as ASP.NET. But it means that you can now realize applications that were impossible (or very difficult) to do in HTML/CSS/JavaScript, and that you can use the same languages (and in some cases reuse code) on the server and on the client.

From a security point of view, Silverlight also scores better because you don't really have to worry about common issues such as XSS, CSRF and other vulnerabilities that are common in web-development.

Silverlight can give you animation online, deliver RIAs, stream movies etc (all that Flash and HTML 5 can do), but Silverlight has a lot more to offer. The architecture behind Silverlight I feel is spot on. It mixes both the worlds of Desktop and Web seamlessly, effectively delivering desktop applications (with all their power) via the internet for installation, communication and maintenance. This is very different to HTML 5. Because of this, developers will use Silverlight for business applications, for RIAs that need to do more (integrate, carry out complex functions etc) and all without the reliance on the browser or server doing processing jobs. This reduces testing and ensures a single code base (and that’s how it should be). In addition, you get frequent updates, and full support from Microsoft, which again are good things for real developers.

References

http://sobees.com/web - Many people, however, do not use the social websites but prefer to use a rich aggregator instead. Sobees offer such applications for multiple platforms, including one built in Silverlight 4 or 5 and running either in the browser or installed out-of-the-browser. The Sobees application can be used to visualize entries from Twitter, Facebook, MySpace, and LinkedIn within one single window. It is also possible to perform multiple searches on Twitter.

Deep Zooming the Matterhorn - Deep Zoom application was developed by Microsoft Switzerland to celebrate their 20th anniversary in Switzerland. When the image is loaded in the DeepZoom viewer (powered by Silverlight), the user can zoom in or out (for example using the mouse wheel or, if he has a supported multitouch screen, with a “pinch” gesture).

Another great way to get involved in the Silverlight community, you can find more information about the Silverlight community at http://silverlight.net/community
Microsoft Silverlight team are on Twitter. You will find their usernames at http://www.galasoft.ch/sl4-twittermvp and http://www.galasoft.ch/sl4-twittermsft

http://www.microsoft.com/silverlight/

Silverlight Training Course on Channel 9

Silverlight Forums on the Silverlight community site

You can gain more insight by reading the post about Silverlight on these blogs:

Summary

Note the following restrictions:

  • The Opera web browser is not officially supported at the time of this writing.
  • PowerPC-based Apple computers support only Silverlight 1.0.
  • Cross-Browser and Cross-Platform Compatibility

If you were still hesitating to invest in Silverlight, now is a great time to start.

Comments (6) -

  • Some points:

    - Java applets startup time, and performance has improved a lot since a lot of years ago and most of those problems disappeared. I haven't found the installation time to take long either, at least with the Java 6 runtime.

    - Maybe you should add JavaFX to the list.

    - Although it's tempting to add it because of OOB support in SL, I don't know if AIR should be in the list, as it runs on the desktop. I think Adobe should fuse Flash and AIR.

    - One point to consider about ActiveX, is also that it does not have the sandbox problems other plugins like SL and Flash has.

    - About this SL5 line: "including support for running Silverlight applications with desktop features in the browser", it is worth noting that this requires group policy registry keys, which will not be something you'll find in the open web. And this will be a further problem with cross-platform support.

    - I don't know if I'd stick with this sentence "Silverlight can give you animation online, deliver RIAs, stream movies etc (all that Flash and HTML 5 can do)". There are things SL can do that Flash cannot, and viceversa, and some people could say the same about HTML 5, as it natively offers (or the browsers do) some things that you must code in SL and Flash. And even if AIR is a different environment, the same codebase can be used for Flash and AIR in a similar way. Well, just a debatable thing.

    - Something that may be of interest to a lot of people is that SL is not supported in the WP7 browser, for me it was at least, I was really shocked when I learned of it. This post may be of interest as well:

    davybrion.com/.../
  • About ActiveX, forgot to say that it also suffer from the lack of cross-platform support, and that in order to use it non-IE browsers you need some extra plugin installed in the browser or use it in the web.
  • Nice advices Héctor. I read your post before submitting this article, very interesting approach to have points table for technology and make brainstorming for pros and cons of it. I agree that for you project Silverlight is not best choice. As for me ASP.NET MVC is completely cover your tasks, but you need to say that SL can be used in other projects.
  • Thanks, but that post is not mine at all, just read it yesterday and thought it was somewhat along the lines of this one.
  • Just so you know, your link to John Papa's blog is pointing to Adam Kinney's.  Otherwise, great article! Smile

Add comment

Loading