There are currently two versions of Silverlight, Silverlight 1.0 and Silverlight 2.
§ Silverlight 1.0 –
Silverlight 2 Beta 1 –
· Development with the .NET Framework
· This version combines the presentation core in version 1.0 with the following - Silverlight libraries, .NET Framework capabilities, and other features to offer the full architecture and feature set viz.
1. Isolated Storage
2. Asynchronous Programming
3. File Management
4. HTML –Managed Code
7. XML Libraries
· Provides information for developing with Silverlight 2, which includes .NET Framework features.
Resources for Getting Started with Silverlight:
§ Silverlight .net: Silverlight.net is a general Silverlight developer site that provides resources such as samples, QuickStarts, whitepapers, instructional videos, forums, and blogs. In particular, beginners might want to check out the Silverlight.net QuickStarts.
§ Silverlight.net QuickStarts:
§ Silverlight Forums: http://go.microsoft.com/fwlink/?LinkId=91169
§ Other Resources
§ Microsoft Silverlight is a cross-browser, cross-platform Client Technology that helps you design, develop, and deliver media-enabled experiences and rich interactive applications on the Web.
§ Provides a powerful platform that makes it easy to develop Web applications with professional-quality graphics, audio, and video for an engaging user experience.
§ Silverlight also enables you to use professional-quality tools like Visual Studio for coding and Microsoft Expression Blend for layout and graphic design.
Silverlight is not only an appealing canvas for displaying rich and interactive Web and media content to end users. It is also a powerful yet Lightweight Platform For Developing Portable, Cross-Platform, Networked Applications that integrate data and services from many sources. Furthermore, Silverlight enables you to build user interfaces that will significantly enhance the typical end user experience compared with traditional Web applications.
While Silverlight as a client-side runtime environment seems simple and compact in size, the Silverlight development platform integrates a number of features and complex technologies, making them accessible for developers. To create effective Silverlight-based applications, developers need a working knowledge of the platform architecture.
Role of WPF & XAML in Silverlight:
· WPF: WPF lets you create immersive graphics, animation, media, and other rich client features, extending browser-based UI beyond what is available with HTML alone.
· XAML: Extensible Application Markup Language (XAML) provides a declarative markup syntax for creating WPF elements.
· WPF and XAML :
o Silverlight includes Windows Presentation Foundation (WPF) technology, which greatly extends the elements in the browser for creating UI. And such WPF elements are created using XAML.
o Hence its implcit that WPF & XAML together makes Silverlight.
WPF and XAML
As explained above.
Silverlight included the ability to work with WPF elements.
Cross-browser, cross-platform support
Silverlight runs the same on all popular browsers (on any platform).
Integration with existing applications
.NET Framework programming model
Access to the .NET Framework programming model and to associated tools. You can create Silverlight-based applications using dynamic languages such as Managed JScript and IronPython as well as languages such as C# and Visual Basic. You can use development tools such as Visual Studio to create Silverlight-based applications.
Silverlight includes language-integrated query (LINQ), which enables you to program data access using intuitive native syntax and strongly typed objects in .NET Framework languages.
| || |
Cross Browser: It runs in all popular Web browsers, including Microsoft Internet Explorer, Mozilla Firefox, and Apple Safari, and on Microsoft Windows and Apple Mac OS X.
Cross Platform: It runs Microsoft Windows and Apple Mac OS X.
Running Silverlight-based Applications
Silverlight-based applications run in the browser. To run a Silverlight-based application, users require a Small Plug-In in their browser. The plug-in is free. If users do not already have the plug-in, they are automatically prompted to install it. The download and installation take seconds and require no interaction from the user except permission to install.
Note: XAML is the primary point of interaction between the .NET Framework and the presentation layer.
The Silverlight platform as a whole consists of two major parts, plus an installer and update component:
The core presentation framework
Contains components and services oriented towards the UI and user interaction, including user input, lightweight UI controls for use in Web applications, media playback, digital rights management, data binding, and presentation features, including vector graphics, text, animation, and images. Also includes the Extensible Application Markup Language (XAML) for specifying layouts.
The .NET Framework for Silverlight
A subset of the .NET Framework that contains components and libraries, including data integration, extensible Windows controls, networking, base class libraries, and the common language runtime (CLR).
Some parts of the .NET Framework for Silverlight are deployed with your application. These "Silverlight Libraries" are assemblies not included in the Silverlight runtime and are instead shipped in the Silverlight SDK. When Silverlight Libraries are used in your application, they are packaged up with your application and downloaded to the browser. These include new UI controls, XLINQ, Syndication (RSS/Atom), XML serialization and the Dynamic Language Runtime.
The installer and updater
An installation and update control that simplifies the process of installing the application for first-time users, and subsequently provides low-impact, automatic updates.
The core presentation features of the Silverlight platform, shown in the previous section and illustration, are listed in the following table with descriptions:
Handles inputs from hardware devices such as the keyboard and mouse, drawing, or other input devices.
Renders vector and bitmap graphics, animations, and text.
Features playback and management of various types of audio and video files, such as .WMP and .MP3 files.
Supports extensible controls that are customizable through styling and templating.
Enables dynamic positioning of UI elements.
Enables linking of data objects and UI elements.
Enables digital rights management of media assets.
Provides a parser for XAML markup.
The following table describes a partial list of the .NET Framework for Silverlight features shown in the previous illustration.
Supports Language-Integrated Query (LINQ) and LINQ to XML 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.
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.
Window Communication Foundation (WCF)
Provides features to simplify access to remote services and data. This includes a browser object, HTTP request and response object, support for cross-domain HTTP requests, support for RSS/Atom syndication feeds, and support for JSON, POX and SOAP services.
CLR (common language runtime)
Provides memory management, garbage collection, type safety checking, and exception handling.
WPF (Windows Presentation Foundation) Controls
Provides a rich set of controls that ship as a Silverlight Library to deploy with your application. This includes Button, Calendar, CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox, RadioButton, and ScrollViewer.
DLR (dynamic language runtime)
Microsoft Silverlight-based provides number of ways, depending on the type of the error.
· A try/catch block can be placed around a synchronous method call, and errors resulting from the call can be handled in the catch block.
· Event handlers - can be attached to asynchronous error events, such as the MediaFailed event.
Read from Books
Silverlight Object Models
Microsoft Silverlight-based scripting applications expose their functionality through a
· Browser-Based Document Object Model (DOM), as well as a
· Silverlight-Specific Object Model
o The Silverlight object model defines a set of objects that enable you to populate and adjust the content of a Silverlight-based application.
o The Silverlight object model is exposed through the Silverlight plug-in, which you create as the content container on a Web page
Lets see how the Web page, the Silverlight plug-in, and the Silverlight content interrelate.
This diagram shows the two object models available within the Web application: one for the HTML DOM and one for Silverlight. The Silverlight plug-in (The Blue Border), represented in the HTML source as either an HTML Object or Embed tag, is conceptually the intermediate between the two object models. Certain properties or behavior of a Silverlight plug-in are available to either object model.
var plugin_1 = document.getElementById("SLPlugin_1");
See Example : Silverlight Hierarchy of XAML Objects
<!-- The top-most object in the XAML hierarchy is referred to as the root object. -->
<!-- Canvas objects can be a child of another Canvas object. -->
Foreground="Teal" FontFamily="Verdana" FontSize="18" FontWeight="Bold"
Text="Sample Output" />
Foreground="Maroon" FontFamily="Verdana" FontSize="24" FontWeight="Bold"
Text="Hello, world" />
GetElementById vs GeHost
· To retrieve the plug-in's DOM properties, you must use the GetElementById method to return a reference to a DOM-accessible object.
· The GetHost method does not return an object from which all DOM values can be retrieved.
· However, there are properties that are deliberately captured from the DOM and exposed in the Silverlight object model at least as reference properties, for instance ActualHeight (Silverlight Plug-in).
Plug-in Position and Dimensions
You embed the plug-in within its host HTML page, and you can either position the plug-in somewhere inline in the HTML page display or you can have the plug-in take up the entire HTML page.
· Within the plug-in: Position objects relative to the root Canvas within the plug-in. Most of this overview describes this type of positioning.
· Within the HTML: The entire plug-in and all the objects positioned within it are subject to where you place the plug-in in HTML
Thanks & Regards,
Arun Manglick || Tech Lead