Silverlight

Kim Beaudin, John Nguyen, Raymond Ta, Frederick Vuong, and Ashton Wong

I. Introduction

The latest buzz-word to hit the computing science industry is Silverlight; an application framework designed to easily integrate rich applications like Windows Presentation Foundation

(WPF) applications into websites. Initially it was released solely as a video streaming plug-in, but later versions introduced additional features, more languages, and support for development and interactive tools. Silverlight has very similar features to Flash, and is being considered a major competitor of the technology. Unlike Flash, however, the Silverlight User Interface is written in XAML which can be scanned by search engines. It requires no extra work for a developer to have their Silverlight base applications appear in search results. Silverlight is designed to be lightweight, cross-platform and cross-browser compatible. This brings the question, what can developers do with Silverlight, and what is the main intention of this platform? What makes Silverlight better than other similar technologies? And lastly, as with all technologies, what are the downsides to Silverlight? This report examines the purpose, and the various benefits and pitfalls of Silverlight.

II. Purpose

Microsoft describes Silverlight as a tool that enables developers to bring the experience of Office tools to rich media applications via the web browser. In reality, Silverlight is essentially Microsoft’s response to the market covered by . Many developers find Flash awkward to develop in, but with Silverlight, the actual power comes from being able to develop in any supported .NET language. It removes the learning curve of having to learn an entire new platform and language. It also makes data binding much easier, without the developer having to write a bunch of “glue” to maintain the application. It integrates multimedia, computer graphics, animation and interactivity into a single run-time environment. It supports high-definition video files without having to worry about doing the heavy lifting of streaming them over the Internet. Since Silverlight is simply a plug-in that can be added to most major browsers, it is very accessible to both developers and clients. Silverlight can also be used for desktop or mobile applications, making it a very versatile tool.

Just entering the term “Silverlight applications” into your favorite search engine brings up many examples of rich interactive applications. Silverlight is used by businesses for advertising, toolbars and menus, galleries and slideshows, e-commerce, social media, and more. Silverlight can also be used to create simple games, interactive maps and wikis, online classrooms and so on. It is a tool that is already used by many developers, and many samples of Silverlight applications exist on the web. What a developer can build with Silverlight is limited only to their imagination.

On December 2, 2010, version 5 of Silverlight was announced, with the beta coming out early in 2011. This new release builds on the previous Silverlight editions to enhance performance and increase support for graphics. Microsoft intends to reduce the network latency by running background threads and to also improve start-up times by improving upon the XAML parser. They have also introduced a graphics processing unit (GPU)-accelerated 3D API for very slick and advanced 3D graphics to be added into applications. It is evident that Microsoft is invested on continually updating and improving Silverlight so that developers and businesses will continually be interested in using this application framework.

III. Pros Some benefits of Silverlight include:

1. Easily indexed by search engines.

Unlike Adobe Flash, Silverlight can be scanned by any ZIP-aware search engine that

can parse XML and plain text. Silverlight stores its apps in the ZIP file format so any ZIP

reader can access the files. All text in XAML files can be parsed as plain text by an XML

reader or a generalized text parsing utility.

2. Cross-platform and cross-browser compatibility.

Silverlight can be used on all Windows machines, Macs, and although buggy,

machines as well. The plug-in creates an identical development setup regardless of

user and browser. Thus, the idea is that developers do not need to

implement extra code and extra tests to be able to support the multiple browsers their

end-users may be accessing the application with. Silverlight is currently supported on

Internet Explorer 7 and 8, (only on Windows), , and Safari (only

on Macintosh OS). These are the most widely used browsers, and so it covers a large

majority of the user market share.

3. Can be written with any .NET language.

This includes #, Visual Basic, Ruby, Python, and managed Javascript. Thus

developers already comfortable with .NET can easily pick up and start using Silverlight

for their application on both the client and server side. It also uses Microsoft Visual

Studio to develop in, so again, developers already familiar with this IDE do not need to

learn anything new.

4. Supported in Windows Phone 7 OS, mobile application.

In a world of increasing mobile smart-phone usage, this is an important market share for

Microsoft. Developers can use the same tools mentioned previously to create Silverlight

applications on the Windows Phone 7. As well, Microsoft has also received approval from Apple to port Silverlight to iPhone. Microsoft has also announced plans to make

Silverlight available on Symbian OS devices.

5. Silverlight is readily available for both developers and clients.

Silverlight is pushed down to client workstations through Microsoft Update so many

users have it installed already in corporate environments. If users or developers do not

already have the Silvelright platform, it is a free download from the Microsoft website.

IV. Cons

The pitfalls of Silverlight consist of the following:

1. Many browsers do not yet support all versions.

Since Silverlight is a proprietary Microsoft product it is not really supported natively by

any browser except Internet Explorer. Though claimed to be cross-browser and cross-

platform compatible, some browsers only support the early versions of Silverlight. On

Mac OS (only on Intel based computers), Silverlight up to version 4 is supported on

Safari, but on a Windows machine, only version 1 of Silverlight is supported on Safari.

This can create problems for a developer trying to test their application on different

browsers for their end client. In reality, Silverlight only works well on Windows OS using

the Internet Explorer browser. Functionality is possible on Mac OS, however it does not

work well as it is slow and buggy.

2. Silverlight support on Moonlight is not up to the standard of Windows.

An open source implementation of Silverlight 1 and 2 called Moonlight is currently being

developed by the team which is to make Silverlight available to Linux. However,

because of redistribution and patent concerns, Linux distributors such as Fedora have

decided to exclude Moonlight. Microsoft is also trying to restrict and place conditions for

the use of the Microsoft Media Pack, and those users and developers who oppose the use of closed-source software also oppose the need for proprietary codecs.

3. Not as wide user-base as Adobe Flash since it is relatively new to the web browser market.

By now, the majority of Internet users have already downloaded the necessary Flash

plug-ins onto their computer. It is required for many popular websites such as YouTube.

If a user goes to an application built in Silverlight and are asked to download a plug-in,

they may be annoyed or fearful since it is not a well-known or established name. Many

users have reported issues downloading the plug-in on non Internet Explorer browsers,

which would easily aggravate anyone, and thus, more users would avoid Silverlight sites

if they had previously experienced these issues. Thus, businesses may be more inclined

to turn to an existing and popular tool to appeal to their customer bases.

4. Silverlight performance currently is very slow and requires a large amount of CPU usage.

For any user trying to run multiple applications, their computer may perform poorly as

Silverlight applications use a lot of CPU power. Though Microsoft intends to improve

performance in Silverlight 5 by supporting hardware GPU acceleration, most existing

applications are written with Silverlight 3 or less and so are very slow unless they are

very simple programs. For this reason, Silverlight applications are currently almost

unusable for mobile devices. Unless there are drastic improvements in performance, the

Windows Phone 7 platform will likely lose appeal as applications for this phone can only

be written using Silverlight.

V. Conclusion

Silverlight may be a new and exciting technology on the market as compared to Flash, but it covers a large niche and has a great deal of support, so it does not seem like a technology that will fade away any time soon. It is great for existing .NET developers, and makes creating applications easy and fast. However, with the performance issues of running a Silverlight application and the debate over whether or not Silverlight is truly cross-browser and cross- platform compatible, it does not yet seem like a great solution to create rich interactive applications. Since the same result can be achieved from using Flash or a combination of

HTML5, Javascript and AJAX, Silverlight does not seem like it will defeat its competitors any time soon. If Microsoft is able to improve these outlying issues in the next versions of Silverlight, then they may indeed triumph, but for now they have a number of obstacles to overcome before being accepted as a mainstream technology.

VI. Resources http://www.cio.com/article/128700/

10_Things_You_Should_Know_About_Microsoft_s_Silverlight http://en.wikipedia.org/wiki/Microsoft_Silverlight#Mono_Moonlight_implementation http://en.wikipedia.org/wiki/Silverlight#Compatibility http://www.silverlight.net/getstarted/overview.aspx http://www.microsoft.com/silverlight/what-is-silverlight/ http://ostatic.com/blog/microsoft-brings-silverlight-2-to-linux