Bill Gates Image Gallery: Bill Gates discusses Silverlight at the 2008 Consumer Electronics Showcase. See more photos of Bill Gates.
Robyn Beck/AFP/Getty ImagesThe way we browse the World Wide Web has drastically evolved since the early 1990s. Back then, most Web pages were limited to basic text, a few images, and occasionally a looping (and often annoying) MIDI sound file. However, the Web has become far more intricate over time. Today, websites include video, animations, sound, and interactive features. The most cutting-edge websites can make you feel as though you’re stepping into a movie. To build, view, and engage with these enhanced features, developers needed to create new applications. One such application is Microsoft's Silverlight.
Silverlight is challenging to define simply. In many respects, it resembles Adobe Flash. Silverlight requires both developers and users to download a client, as Web browsers cannot process Silverlight content without it. This technology empowers web developers to add streaming video, audio, and animation to their websites. Developers can craft intricate, interactive web applications with Silverlight technology. On the Internet, these applications are known as Rich Internet Applications (RIAs).
As RIAs grow more advanced, the lines between desktop applications -- programs stored on your hard drive -- and web-based applications begin to blur. It's possible that in the future, web browsers could evolve into fully-functional web-based operating systems, with the Internet becoming the primary platform for data processing and storage. This shift is referred to as cloud computing, where programs and data reside in the "cloud" of the Internet rather than on a user’s local device.
Silverlight is just one of many tools created to assist developers in building more advanced RIAs. Developed by Microsoft engineers as an extension of their other projects, Silverlight is a standalone application in its own right. Microsoft markets Silverlight as a cross-platform, cross-browser solution, meaning it should function on both PCs and Macs, as well as within browsers like Internet Explorer, Firefox, or Safari. A version for Linux is also in the works, with the open-source Mono project leading the effort to create it.
Despite being a relatively new technology, Silverlight has already faced its share of challenges and controversies. Some developers and users are not thrilled about yet another web technology that requires a plug-in for operation. Additionally, a partnership with NBC during the 2008 Beijing Olympics didn’t generate as much excitement as Microsoft had hoped.
But before diving into all of that, let’s first take a deeper look at what makes Silverlight tick.
Silverlight Beta
Companies such as the engineering firm Thomas Wilmes are leveraging Silverlight to design entire websites..
(HSW Screenshot -- no credit)One challenge with Silverlight is that, as of now, there are two versions: Silverlight 1 and Silverlight 2 Beta. Silverlight 1 supports applications written in the JavaScript programming language. The beta version of Silverlight 2 adds support for additional languages like C# (pronounced "C sharp") and Visual Basic. Both versions of Silverlight are compatible with the .NET framework.
So what exactly is .NET? It's another creation from Microsoft. The .NET framework is a programming model where developers can create applications, especially Web applications that utilize eXtensible Markup Language (XML).
The .NET Framework consists of two key elements: the common language runtime and the class library. The common language runtime functions like an administrator, overseeing applications and allocating the necessary resources (such as memory or processing power) for proper execution. The class library contains a set of reusable software objects that developers can use when building applications. A software object has two main features: state and behavior. The state of an object refers to the different statuses it can have, such as "running," "paused," or "stopped" (but not all at once). Behaviors define what an object can perform, like "start," "pause," and "end."
And that’s just the framework supporting Silverlight! Within Silverlight, Microsoft includes Windows Presentation Foundation (WPF) technology and support for eXtensible Application Markup Language (XAML). Developers can use both WPF and XAML to design Web applications, and they work flawlessly within the .NET framework. Microsoft created WPF to overcome the limitations of Hypertext Markup Language (HTML), which is unable to handle the more complex functions that modern web browsers can execute.
WPF uses a vector-based rendering engine to create graphics for applications, supporting both 2-D and 3-D graphics. It allows developers to power their applications within the .NET environment. XAML's primary function is to enable developers to modify the appearance of their applications. Together, WPF and XAML determine both the look and behavior of a Silverlight application.
While WPF and XAML define the visual appearance and behavior of an application, developers rely on other programming languages to actually build the applications. Silverlight 1 supports only JavaScript, but the beta version of Silverlight 2 introduces several dynamic languages. Developers use these languages within the .NET framework to create applications and utilize WPF and XAML to integrate them into the web browsing experience. All Silverlight applications operate within a web browser.
Let’s explore the architecture of the Silverlight platform to understand how these components work together, providing developers with the tools they need to create RIAs.
Silverlight Development
Microsoft operates a dedicated forum website where Silverlight developers can ask questions and exchange tips..
(HSW Screenshot -- no credit)Like any software, Silverlight has a specific architecture—a structured arrangement of its functions and features. A program’s architecture reveals much about its inner workings. It organizes tasks logically and demonstrates how various components collaborate to provide the service as a whole. Microsoft’s vision for Silverlight is to create a robust yet simple platform for the next generation of web-based applications.
Microsoft breaks down the Silverlight platform's architecture into two primary components, with an added installer and update module. These main components include the core presentation framework and the .NET framework for Silverlight. Let’s examine each of these individually.
The core presentation framework encompasses the following elements:
- A user interface (UI) rendering engine that creates all the graphics, animations, and text within an application
- An input interface that processes user input from devices like keyboards, mice, and digital tablets
- A media engine capable of handling a variety of audio and video file formats
- A digital rights management (DRM) feature that gives developers control over media within their applications
- Support for customizable application controls
- Support for dynamic UI layouts, enabling developers to alter the UI’s appearance in real-time
- Support for data binding, which links UI elements to data objects within an application
- A parser for XAML
The .NET Framework includes the following features:
- Support for Language-Integrated Query (LINQ), which allows developers to combine data from various sources
- A base class library that provides core programming functions, such as cryptography
- A set of features known as the Windows Communication Foundation (WCF), which simplifies accessing remote data and services
- The Windows Presentation Foundation (WPF)
- The Dynamic Language Runtime (DLR), which enables applications to support various programming languages
- The Common Language Runtime (CLR), responsible for memory management and other critical system functions
The core presentation framework and the .NET Framework primarily communicate through XAML, which serves as a conduit between the two. The installer and update component, on the other hand, plays a straightforward role. It aims to ensure a smooth installation process for users and provides a framework for automatic application updates.
Additionally, Silverlight includes several other features designed to assist developers in creating RIAs. Many of these features focus on securing data and managing applications. Among these are file management capabilities, an isolated storage feature, and XML libraries, to name just a few.
Now, let's explore the types of applications that developers can create using Silverlight.
Silverlight Applications
The Echo myPlace app leverages Silverlight to connect news articles to specific geographic locations.
(HSW Screenshot -- no credit)The possibilities for Silverlight applications are almost endless. With its tools, developers can build web-based programs that span from practical utilities to complex video games. Although Silverlight is still a relatively new platform, there are already numerous applications available online.
It’s no surprise that developers are turning to Silverlight for streaming media players. These players function much like Flash media players, such as those used by websites like YouTube. They stream video and audio content from the Internet directly to a user's browser. Silverlight allows developers to create customized video players that offer specific content. For example, the Futbol Mexicano Silverlight app streams Mexican soccer games for users. However, Silverlight's capabilities go far beyond video playback.
Silverlight applications can also be fairly simple, like hero bars. These web banners showcase short blurbs and links that direct users to more in-depth content elsewhere on the website. Developers can utilize Silverlight to create hero bars that automatically pull information from an RSS feed, which means the bar updates itself as the site's content evolves.
Buzzoggi uses Silverlight to collect trending keywords from various news RSS feeds and display them as a cloud.
(HSW Screenshot -- no credit)The TeamLive online productivity software allows Silverlight users to collaborate on projects. With TeamLive, users can capture screenshots from applications or websites and share them with others, making teamwork across different locations easier. The team can collaborate in real-time to address issues or refine designs.
Silverlight games can range from basic to highly immersive experiences. For instance, you’ll find simple games like Hangman as well as arcade-style games such as Zero Gravity, a space-themed adventure. Just like Flash, Silverlight provides developers with the tools to craft engaging and dynamic gaming experiences, all of which are accessible via a web browser.
These are just the beginning. As the Web continues to evolve and internet speeds increase, users will demand even more interactive and engaging browsing experiences. With more people turning to the Web for news, entertainment, and productivity, developers will need to leverage platforms like Silverlight to keep up with this growing consumer demand.
Silverlight has already made waves with some significant partnerships with traditional media. In the next section, we’ll take a closer look at these strategic collaborations.
Silverlight Video
NBC utilized Silverlight to stream Olympic events online for select users in the United States.
(HSW Screenshot -- no credit)Bill Gates took the stage as the lead keynote speaker at the 2008 Consumer Electronics Showcase (CES), marking his final appearance at the event as Microsoft's chairman. During his address, he introduced a series of new Microsoft initiatives, products, and services. Notably, he announced a collaboration with NBC to offer online coverage of the Olympics within the United States.
NBC had already secured the television broadcasting rights for the Olympics in the United States. In addition to traditional TV coverage, NBC, in collaboration with Microsoft, provided Olympic events online through its website. To access the video content, users were required to download and install Silverlight on their computers. Some technology journalists expressed concerns, noting that although Silverlight was a powerful platform, Adobe Flash was far more widespread. Most PCs already had Flash installed, while comparatively few users had downloaded Silverlight, making it appear to some like a bold experiment on NBC's part.
Was the partnership a success? It depends on who you ask. The New York Times reported that NBC's Olympic website delivered more than 72 million video streams to viewers throughout the games [source: Stelter]. However, blogs like TechCrunch argued that other websites covering the Olympics—sites that didn’t feature any video—had more visitors than NBC’s site [source: Schonfeld]. Some blogs also claimed that advertisers were dissatisfied with NBC’s online performance.
Perhaps NBC could have garnered more online viewers if it had chosen Adobe Flash as its streaming video platform, or maybe if they had not restricted the online coverage of certain events. Despite some criticism, Microsoft saw the situation differently. Millions of people downloaded Silverlight, which they considered a victory for the platform.
Microsoft has also formed alliances with other major U.S. organizations. In late 2007, Major League Baseball switched its streaming video player to Silverlight. CBS chose Silverlight to power an interactive web platform for user-generated content. The National Basketball Association also selected Silverlight for its online media player.
Will Silverlight emerge as the next dominant Internet standard? It's still uncertain. While it may be considered more powerful than Adobe Flash, Flash has already established a far more significant presence in the market. In the end, whichever technology prevails will ultimately offer users an engaging and immersive web browsing experience.
For more information on Silverlight and related topics, be sure to explore the links on the following page.
Despite NBC's initial use of Silverlight, it will not be utilizing the platform for streaming Sunday Night Football on the Web. Instead, the network has opted for Adobe Flash. However, don't assume this marks the end of NBC's partnership with Microsoft. The decision to go with Flash was made by the National Football League, not NBC itself [source: Learmonth].
