Microsoft & .NET.NETSilverlight - What Makes It Special

Silverlight – What Makes It Special content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

“Silverlight is a client-side runtime that enables developers to design, develop, and deliver rich, interactive experiences across the internet”. Understandably, this sentence from the first paragraph in my book “Silverlight 2 in Action” does little to explain Silverlight’s valuable features. In fact, if you are introducing Silverlight to someone else, they probably just want to know what it can do for them. This can be a challenge because many of the features of Silverlight provide different amounts of value to different audiences.

Three different audiences can benefit from Silverlight. The first audience is one that does not understand software platforms. I will refer to them as “users” for a lack of a better term. The second audience includes those individuals that recognize they need to rely on a software platform, but may not be interested in the technical details. I will refer to these individuals as “MBAs” or Masters of Business Administrators. Finally, I will target the audience that is nearest and dearest to my heart, the developers. These are individuals that recognize the business need, but are primarily interested in the nuts and bolts of a particular software platform. The wording used in each section is intended to be read as if you were talking to an individual that fits in that respective audience. Because of this, you may want to skip to the section that meets your immediate need.

Editor’s note: You might want to jump to the Developer section first!

Silverlight’s Value to You, the User

Silverlight is a piece of software, provided by Microsoft, which allows you to interact with new types of applications over the Internet. These kinds of applications could include new ways to view pictures or maps in highly immersive ways. These applications could allow you watch and listen to the richest media available on the internet. For more traditional web applications, like a time entry application, Silverlight allows you to still use them, even when you are not connected to the internet. Amazingly, all of this is enabled by Silverlight which can be installed in less than one minute and you only have to install it once.

User: What do you mean by “view pictures or maps in a highly immersive way?”

Silverlight lets you view your pictures in spectacular detail thanks to a feature called DeepZoom. DeepZoom allows you to see the smallest detail you can imagine in a picture taken with a digital camera. For instance, imagine seeing the thumbprint on a guitar or seeing the individual scales on a fish. These types of scenarios are made possible by the fact that DeepZoom allows you to “zoom in” on any part of a picture. In addition, the web page still loads quickly because DeepZoom only gets what it needs! This feature is particularly useful for mapping scenarios over the internet.

User: That’s pretty cool, but why is watching a video with Silverlight better?

Silverlight supports the most popular music and video formats on the internet. In addition though, Silverlight also supports a newer video format called “VC-1.” The reason why VC-1 is a big deal is because this format is already backed by the big companies. VC-1 is supported in the latest hi-def video players. It is also supported on the Xbox 360 and Netflix. Basically, VC-1 is the reason you can now watch videos from Netflix on a 360 or through your computer on the internet.

User: That’s nice, but I don’t really watch videos that much. Why should I care about Silverlight?

Silverlight is not just a media player. In fact, Silverlight lets you experience your favorite web applications even when you are not connected to the internet. For instance, America Online (AOL) has demonstrated using Silverlight to let individuals view their email. While this is just one example, Silverlight can actually be used to replace those annoying input forms applications you probably use at work.

User: Sounds pretty cool, but it’s probably a pain to install right?

Actually, it’s pretty painless. When you visit a website that uses Silverlight, it will ask you to install it if you don’t already have it installed. If you agree to install Silverlight, it will walk you through the process, which takes about 1 minute. Best of all, you only need to do this once. If you are at work, you should ask your network administrator to install Silverlight over your network for the smoothes experience.

These are just some of the features that a typical user would find valuable. These same features, and a couple of others, can be valuable to an MBA if described in a slightly different light.

Silverlight’s Value to You, the MBAs

Silverlight is a runtime, provided by Microsoft, intended for rich interactive applications (RIAs). These kinds of applications are suitable for line-of-business and media solutions alike. Significantly, RIAs allow users to interact with an application whether they are on the internet or not. RIAs built with Silverlight also allow professionals to deliver solutions quicker, cheaper, and with lower risk. These solutions can quickly process data while looking good at the same time (if you need them to). The really cool part is, RIAs built with Silverlight can run on Windows and MACs, which account for about 97% of the devices on the internet.

MBA: Interesting. Everything I have seen with Silverlight is about video. Are you telling me I can use Silverlight for line-of-business applications?

Yes! As a matter of fact, Silverlight was built with data in mind. Silverlight leverages the powerful and time-tested .NET Framework, which was first released to the public 7 years ago. As proven time-and-time again, .NET understands your data and is a safe bet for line-of-business applications. If this isn’t enough, there is even a free chart control that lets you easily include area, bar, bubble, column, line, pie and scatter charts in your applications.

MBA: We use .NET. It’s robust, reliable, and scalable. That’s good to know. But you mentioned support for offline applications. Did I hear you correctly?

Yes! Applications can be created with Silverlight that address occasionally dis-connected scenarios. Imagine… you may have a sales representative that needs to enter customer orders while away from the home base. Or, you may be on a long flight across the country and need to update your expenses. These are just two scenarios that demand a platform that allows you to run applications disconnected from the internet. Significantly, these applications can run on both Windows and Macs. Because of this, you can sort of think of Silverlight applications as smarter clients.

MBA: That sounds really cool. But, we already have a nice web application. Is Silverlight going to save us any money?

It could. It depends on the types of features you are delivering through your web application. For instance, if you allow your users to view product catalogs online, it probably will. If your users watch videos on your website, it probably will. The reason why Silverlight can help you save money is because it only downloads the information it needs. Traditional web technologies on the other hand generally download data as fast as they can. This leads to wasted bandwidth, which means wasted dollars. Just to be clear though, Silverlight runs just as fast, if not faster, than traditional technologies. Silverlight is able to do this by simply working more intelligently.

MBA: Very Interesting. To be honest though, it still seems kind of risky. Won’t my team have to learn a new set of skills to take advantage of Silverlight’s features?

No. Silverlight uses .NET. If your team already knows .NET, you can run with Silverlight. The other thing to take into consideration is the integration needs of the whole solution. The integration points are always the pain points. These pain points are what introduce risks into your software solution. Silverlight helps to remove these pain points by extending .NET features onto the client-side. With these features available to you, you can create the necessary services, workflows, business components, and user experiences all under the .NET umbrella. This approach drastically reduces the number of integration points, thus actually lowering your risk. Silverlight is the only solution that enables you to use .NET from end-to-end.

MBA: I’m definitely intrigued. Maybe we should test Silverlight out on one of our sites to see if it meets our needs. The particular site I’m thinking of is kind of ugly. Is there anything Silverlight can do about the appearance of our site?

Silverlight opens the doors to more engaging applications. These applications can include blurs, drop shadows, gradients, animations, themes, and perspective 3D graphics. Significantly, a developer and designer can actually work side-by-side to seamlessly create more engaging applications. This approach can actually help you get a software solution to the market more quickly by reducing long design and development cycles. At the same time, you are empowering developers and designers to meet their full potential.

MBA: I like a good looking application as much as the next guy. But, my application is still a line-of-business application. Is there anything else I should know?

Remember this: Silverlight can process data fast, extremely fast. In fact, Silverlight can process data at least twice as fast as similar technologies.

MBA: One more thing. Silverlight is a Microsoft technology. I noticed you said it works on the Mac too. Did I hear you correctly?

Yes. Silverlight has the capacity to run on approximately 97% of the computers that connect to the internet. Silverlight can run on Windows as well as a Mac. In addition, Microsoft backs the Linux support that is being provided through an open source project called Moonlight. While we’re on the topic of reach, I think I should also point out that Silverlight is the only browser plug-in (as of the time of this article) that allows individuals with diminished vision to use high contrast color schemes through familiar operating system controls. This enables a Silverlight application’s content to be more readable.

This is really just a small list of the benefits that an MBA may find interesting. This list is slightly larger than an “elevator pitch”. However, for even more technical information, there are some details of specific interest to developers.

Silverlight’s Value to You, the Developer

Silverlight is a client-side runtime that enables you to design, develop, and deliver rich interactive applications (RIA’s) across the internet. These applications can be created in your favorite .NET supported language with the help of some of the features found in .NET’s base class library. In addition, Silverlight empowers you to easily create input forms, load data, and transfer binary and textual information across a network. All of this can be executed at lightening fast speed in, or out, of the browser.

Developer: What languages can I choose from?

Silverlight gives you the flexibility to use both dynamic and static typed languages. This list of supported languages includes the ECMA-standardized C# and JavaScript languages, as well as the popular Visual Basic language. In addition, Silverlight supports IronPython and IronRuby which are implementations of the Python and Ruby languages designed to work with the .NET Framework.

Developer: Why is the base class library important?

The base class library handles a lot of the dirty work for you. For instance, the base class library enables you to work with generics, LINQ, and data streams. This means you have the flexibility to leverage the versatility of collections, lists, and stacks without having to worry about the implementation details. At the same time, the built-in LINQ support enables you to easily query across disparate sets of data, in the language of your choice.

Developer: That’s nice. But I saw a blog post that said Silverlight doesn’t even have a TextBox and it’s just a media player?

When was this blog post dated? Silverlight is an excellent platform for both line-of-business and media-centric applications. It provides over 100 controls out-of-the-box. These controls empower you to effectively address varying input, layout, and visualization scenarios. In short, Silverlight provides all of the controls you would expect from a great UI platform. These controls include buttons, checkboxes, radio buttons, textboxes, combo boxes, and date and time controls. Silverlight 3 even adds multi-select list boxes. In regards to layout, Silverlight has support for free-form layout through the Canvas and row-and-column placement with the StackPanel and Grid controls. Silverlight 3 adds support for positioning content in regards to North/South/East/West directions with the DockPanel and wrapping content with the WrapPanel. Finally, there is an online toolbox with over 30 controls, including a feature-rich DataGrid and Chart, with the source code provided.

Developer: These controls sound nice. At the same time though, efficiently building a data entry form is more than just laying out controls. Does Silverlight provide any data-binding or validation features?

Silverlight knows that the most important part of an application is the data. This can be seen in the ways that Silverlight allows you to query, bind to, and validate information. For instance, Silverlight gives you the flexibility to easily query disparate data sets with three different flavors of LINQ built-in (LINQ to Objects, LINQ to XML, and LINQ to JSON). When it’s time to bind that data to a UI, Silverlight provides one-time, one-way, and two-way binding support. Silverlight 3 adds to the list of data-binding options with support for UI-to-UI element binding. Once bound, you may need to validate data entered by a user. For this reason, Silverlight 3 has added a versatile validation arsenal that makes creating line-of-business applications even easier.

Developer: It sounds like Silverlight can handle my data once it gets to the Silverlight application. However, Silverlight runs over the internet, which is by nature, a disconnected environment. How does Silverlight transfer data over the Internet?

Silverlight provides a feature-rich war chest of networking features. For transferring data across a network, Silverlight has support for POX, REST, WS*/SOAP, sockets, and standard HTTP services. There is also baked in-support for syndicated content through Atom and RSS feeds. Silverlight 3 adds support for binary XML and communication between two Silverlight applications through a feature called local connection. This feature removes the need to rely on the HTML DOM APIs for client-side communication between Silverlight applications as was required in Silverlight 2.

Developer: The HTML DOM APIs? What are those? They sound interesting.

The HTML DOM APIs are a special addition to the Silverlight version of the .NET Framework in the System.Windows.Browser namespace. This addition empowers you to manipulate the HTML DOM from managed code. The reason this approach can be useful is because it gives you the advantages of compile-time type-checking and a rich debugging story. This makes it feasible to consider Silverlight for scenarios where you would traditionally rely on AJAX.

Developer: I saw on a blog post that Silverlight can now go out of the browser and run offline. Is this true?

Yes! In order to take advantage of this feature, a developer must simply update the AppManifest.xml file. Once this file is updated accordingly, a user can install the Silverlight application on their local machine. The really cool thing is, you can update the AppManifest.xml file of an existing Silverlight 2 application and it can be used out-of-the-browser.

Developer: One more question. Do Silverlight applications run quickly?

Silverlight applications running compiled code simply run faster than their interpreted counterparts. This performance gain is useful for even day-to-day tasks such as sorting a list of items. Because of this, Silverlight is a valuable platform for developing line-of-business applications. For more complex scenarios, Silverlight has built-in support for multi-threading. In addition to multi-threading support, Silverlight will actually use the GPU and cache parts of a screen to a bitmap to improve rendering performance. These performance enhancements can really make an application zing at runtime.

About the Author

Chad Campbell is a Microsoft MVP and solutions architect. He has been developing enterprise-level web applications with a wide variety of technologies since 1999. Beginning with the initial public release of what would become Silverlight in 2006, Chad hit the ground running and has not looked back. He holds MCSD and MCTS certifications. In addition, Chad has a BS degree from Purdue University where he focused his studies on computer science and minored in psychology. His latest book is Silverlight 2 in Action.

# # #

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories