Microsoft® Silverlight™ - An Introduction


Overview
Microsoft® Silverlight™( code-named Windows Presentation Foundation/Everywhere or WPF/E)is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

It is a proprietary runtime for browser-based Rich Internet Applications, providing a subset of the animation, vector graphics, and video playback capabilities of Windows Presentation Foundation. The runtime is available for Microsoft Windows and Mac OS X, with Linux support under development via the third-party Moonlight runtime.
Version 1.1 will include a complete version of the .NET Common Language Runtime, named CoreCLR,[3] so that Silverlight applications can be written in any .NET language.

SilverLight Architecture
Silver Light Architecture

Input
Handles inputs from hardware devices such as the keyboard and mouse, drawing, or other input devices.
UI rendering
Renders vector and bitmap graphics, animations, and text.
Media
Features playback and management of various types of audio and video files, such as .WMP and .MP3 files.
DRM
Enables digital rights management of media assets.


The .NET  Framework  for Silverlight.
WPF (Windows Presentation Foundation)
Provides an extensible set of rich controls that extend the features of standard Web browser controls. WPF includes controls for shapes, documents, media, animation, and more.
Data
Supports language-integrated query (LINQ) features, and LINQ for XML (XLinq) features, which ease the process of integrating and working with data from disparate sources. Also supports the use of XML and serialization classes for handling data.It can handle data in either RSS, POX and JSON formats in addition to XML. Silverlight also includes classes for data access over XML-based Web services (POX), REST and WCF Services.

BCL (base class library)
A set of.NET Framework libraries that provide essential programming functions, such as string handling, regular expressions, input and output, reflection, collections, and globalization.
Networking
Provides features to simplify access to remote services and data. This includes a browser object, HTTP request and response object, access to RSS, and extensive Web services support. However, in the current release of Silverlight 1.1, cross domain communication is not allowed. Silverlight also supports asynchronous programming via the use of the threading libraries.

CLR (common language runtime)
Provides memory management, garbage collection, type safety checking, and exception handling.
DLR (dynamic language runtime)
Supports the dynamic compilation and execution of scripting languages such as JavaScript and IronPython to program Silverlight-based applications. It includes a pluggable model for adding support for other languages for use with Silverlight.


Silverlight Features:
WPF and XAML
Silverlight includes Windows Presentation Foundation (WPF) technology, which greatly extends the elements in the browser for creating UI. WPF lets you create immersive graphics, animation, media, and other rich client features, extending browser-based UI beyond what is available with HTML alone. Extensible Application Markup Language (XAML) provides a declarative markup syntax for creating WPF elements.

Extensions to JavaScript.
Silverlight provides extensions to the universal browser scripting language that provide powerful control over the browser UI, including the ability to work with WPF elements.

Cross-browser, cross-platform support.
Silverlight runs the same on all popular browsers (on any platform). You can design and develop your application without having to worry about which browser or platform your users have.
Integration with existing applications.
Silverlight integrates seamlessly with your existing JavaScript and ASP.NET AJAX code to complement functionality you have already created.

Access to the .NET Framework programming model and to associated tools.
SilverLight based applications can be created using dynamic languages such as Managed JScript and Iron Python as well as languages such as C# and Visual Basic. You can use development tools such as Visual Studio to create Silverlight-based applications.

LINQ.
Silverlight includes language-integrated query (LINQ), which helps to program data access using intuitive native syntax and strongly typed objects in .NET Framework languages.
If ASP.NET is already used then, Silverlight can be integrated with the server and client capabilities of ASP.NET. Server-based resource can be created in ASP.NET and the AJAX capabilities of ASP.NET can be used to interact with server-based resources without interrupting the user
Flexible:
  • Based on the Microsoft .NET Framework, Silverlight enables developers and designers to easily use existing skills and tools to deliver media experiences and rich interactive applications for the Web.
  • Simple integration with existing Web technologies and assets means Silverlight works with any back-end Web environment or technology. No "rip and replace" required. Silverlight integrates with your existing infrastructure and applications, including Apache, PHP, as well as JavaScript and XHTML on the client.
  • Choice of development languages including JavaScript, Ruby, Python, C#, Visual Basic .NET, and more.
  • Role-specific tools for both designers and developers that take advantage of Web standards and the breadth of the Microsoft .NET–connected software features.
  • For designers: Microsoft Expression Studio for creating interactive user interfaces and media rich experiences, preparing media for encoding and distribution, and creating World Wide Web Consortium (W3C) standards-compliant sites using modern XHTML, XML, XSLT, CSS, and ASP.NET.
  • For developers: Microsoft Visual Studio for developing client and server code with full Microsoft IntelliSense, powerful cross-platform debugging, rich language support, and more.
  • Consistent presentation model by using XAML, the declarative presentation language used in Windows Vista–based applications. Controls, visual designs, media, and other elements can be presented with full design fidelity in both Silverlight and Windows–based applications.
  • Extensible control model makes it easy to add rich content and behaviors while enabling efficient code-reuse and sharing.
  • Dramatically improved performance for AJAX–enabled Web sites with the power, performance, and flexibility of Silverlight and .NET-connected software.





Silverlight provides several additional features that help developers create rich and interactive applications, as described in the following table.
Feature
Description
Isolated storageProvides safe access from the Silverlight client to the local machine's file system. Enables local storage and caching of data isolated to a particular user.
Asynchronous programmingA background worker thread carries out programming tasks while the application is freed up for user interaction.
File managementProvides a safe File Open dialog box, to ease the process of creating safe file uploads.
HTML - managed code interactionEnables .NET Framework programmers to directly manipulate UI elements in the HTML DOM of a Web page. Web developers can also use JavaScript to call directly into managed code and access scriptable objects, properties, events, and methods.
JSON (JavaScript Object Notation)Enables developers to call directly from JavaScript to ASP.NET-based Web services.
POX servicesEnables calls to simple XML-based Web services.
XML librariesXMLReader and XMLWriter classes simplify working with XML data from Web services. The XLinq feature enables developers to query XML data directly within .NET Framework programming languages


Summary:
  • Silverlight is a cross-browser, cross-platform technology. It runs in all popular Web browsers, including Microsoft Internet Explorer, Mozilla Firefox, Apple Safari, and Opera, and on Microsoft Windows and Apple Mac OS X.
  • It is a cross-browser, cross-platform technology. It runs in all popular Web browsers, including Microsoft Internet Explorer, Mozilla Fire fox, Apple Safari, and Opera, 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.