<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mukul Verma</title>
	<atom:link href="http://mukulverma.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mukulverma.wordpress.com</link>
	<description>Microsoft Techonologies....</description>
	<lastBuildDate>Sun, 18 Dec 2011 12:05:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mukulverma.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mukul Verma</title>
		<link>http://mukulverma.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mukulverma.wordpress.com/osd.xml" title="Mukul Verma" />
	<atom:link rel='hub' href='http://mukulverma.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Microsoft Silverlight</title>
		<link>http://mukulverma.wordpress.com/2009/08/28/microsoft-silverlight/</link>
		<comments>http://mukulverma.wordpress.com/2009/08/28/microsoft-silverlight/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 14:30:23 +0000</pubDate>
		<dc:creator>mukulverma</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mukulverma.wordpress.com/?p=44</guid>
		<description><![CDATA[Microsoft Silverlight is a web application framework developed by Microsoft. Initially released as a video streaming plugin, later versions brought additional interactivity features and support for .NET languages and development tools. The current version, 3.0, was released on July 9, 2009.[1] It is compatible with multiple web browser products used on Microsoft Windows and Mac [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mukulverma.wordpress.com&amp;blog=7254403&amp;post=44&amp;subd=mukulverma&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Microsoft Silverlight</strong> is a web application framework developed by <a title="Microsoft" href="http://mukulverma.wordpress.com/wiki/Microsoft">Microsoft</a>. Initially released as a video streaming plugin, later versions brought additional <a title="Interactivity" href="http://mukulverma.wordpress.com/wiki/Interactivity">interactivity features</a> and support for .NET languages and development tools. The current version, 3.0, was released on July 9, 2009.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-0"><span>[</span>1<span>]</span></a></sup></p>
<p>It is compatible with multiple web browser products used on <a title="Microsoft Windows" href="http://mukulverma.wordpress.com/wiki/Microsoft_Windows">Microsoft Windows</a> and <a title="Mac OS X" href="http://mukulverma.wordpress.com/wiki/Mac_OS_X">Mac OS X</a> <a title="Operating system" href="http://mukulverma.wordpress.com/wiki/Operating_system">operating systems</a>. Mobile devices, starting with Windows Mobile 6 and <a title="Symbian" href="http://mukulverma.wordpress.com/wiki/Symbian">Symbian</a> (Series 60) phones, will probably be supported in 2010.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl4mobile-1"><span>[</span>2<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl4mobile2010-2"><span>[</span>3<span>]</span></a></sup> A <a title="Free software" href="http://mukulverma.wordpress.com/wiki/Free_software">free software</a> implementation named <a title="Moonlight (runtime)" href="http://mukulverma.wordpress.com/wiki/Moonlight_(runtime)">Moonlight</a>, developed by Novell in cooperation with Microsoft, is available to bring compatible functionality to <a title="Linux" href="http://mukulverma.wordpress.com/wiki/Linux">Linux</a>.</p>
<table id="toc" border="0" summary="Contents">
<tbody>
<tr>
<td>
<div id="toctitle">
<h2>Contents</h2>
<p><span>[<a id="togglelink" href="toggleToc()">hide</a>]</span></div>
<ul>
<li> 
<ul><a href="http://mukulverma.wordpress.com/wp-admin/#Silverlight_1.0"><span>2.1</span> <span>Silverlight 1.0</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Silverlight_2"><span>2.2</span> <span>Silverlight 2</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Silverlight_3"><span>2.3</span> <span>Silverlight 3</span></a></ul>
<ul><a href="http://mukulverma.wordpress.com/wp-admin/#Operating_systems_and_web_browsers"><span>4.1</span> <span>Operating systems and web browsers</span></a></ul>
</li>
<p><a href="http://mukulverma.wordpress.com/wp-admin/#Overview"><span>1</span> <span>Overview</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Versions"><span>2</span> <span>Versions</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Release_history"><span>3</span> <span>Release history</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Compatibility"><span>4</span> <span>Compatibility</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Development_tools"><span>5</span> <span>Development tools</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Licensing"><span>6</span> <span>Licensing</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Mono_Moonlight_implementation"><span>7</span> <span>Mono Moonlight implementation</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Relationship_to_existing_Web_standards"><span>8</span> <span>Relationship to existing Web standards</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#See_also"><span>9</span> <span>See also</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#References"><span>10</span> <span>References</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#External_links"><span>11</span> <span>External links</span></a></ul>
</td>
</tr>
</tbody>
</table>
<p><a id="Overview" name="Overview"></a></p>
<h2><span>[<a title="Edit section: Overview" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=1">edit</a>]</span> Overview</h2>
<p>Silverlight provides a <a title="Retained mode" href="http://mukulverma.wordpress.com/wiki/Retained_mode">retained mode</a> graphics system similar to <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation">Windows Presentation Foundation</a>, and integrates <a title="Multimedia" href="http://mukulverma.wordpress.com/wiki/Multimedia">multimedia</a>, <a title="Computer graphics" href="http://mukulverma.wordpress.com/wiki/Computer_graphics">graphics</a>, <a title="Animation" href="http://mukulverma.wordpress.com/wiki/Animation">animations</a> and <a title="Interactivity" href="http://mukulverma.wordpress.com/wiki/Interactivity">interactivity</a> into a single runtime environment. In Silverlight applications, user interfaces are declared in <a title="Extensible Application Markup Language" href="http://mukulverma.wordpress.com/wiki/Extensible_Application_Markup_Language">XAML</a> and programmed using a subset of the .NET Framework. XAML can be used for marking up the <a title="Vector graphics" href="http://mukulverma.wordpress.com/wiki/Vector_graphics">vector graphics</a> and animations. Textual content created with Silverlight is searchable and <a title="Index (search engine)" href="http://mukulverma.wordpress.com/wiki/Index_(search_engine)">indexable</a> by search engines as it is not <a title="Compiled language" href="http://mukulverma.wordpress.com/wiki/Compiled_language">compiled</a>, but represented as text (XAML).<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-3"><span>[</span>4<span>]</span></a></sup> Silverlight can also be used to create <a title="Windows Sidebar" href="http://mukulverma.wordpress.com/wiki/Windows_Sidebar">Windows Sidebar</a> <a title="Microsoft Gadgets" href="http://mukulverma.wordpress.com/wiki/Microsoft_Gadgets">gadgets</a> for <a title="Windows Vista" href="http://mukulverma.wordpress.com/wiki/Windows_Vista">Windows Vista</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-4"><span>[</span>5<span>]</span></a></sup></p>
<p>Silverlight supports playback of <a title="Windows Media Video" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Video">WMV</a>, <a title="Windows Media Audio" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Audio">WMA</a> and MP3 media content<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-5"><span>[</span>6<span>]</span></a></sup> across all supported browsers without requiring <a title="Windows Media Player" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Player">Windows Media Player</a>, the <a title="Windows Media Player" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Player">Windows Media Player</a> <a title="ActiveX" href="http://mukulverma.wordpress.com/wiki/ActiveX">ActiveX</a> control or <a title="Windows Media" href="http://mukulverma.wordpress.com/wiki/Windows_Media">Windows Media</a> browser plugins. Because <a title="Windows Media Video" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Video">Windows Media Video 9</a> is an implementation of the <a title="Society of Motion Picture and Television Engineers" href="http://mukulverma.wordpress.com/wiki/Society_of_Motion_Picture_and_Television_Engineers">SMPTE</a> <a title="VC-1" href="http://mukulverma.wordpress.com/wiki/VC-1">VC-1</a> standard, Silverlight also supports VC-1 video, though still only in an ASF container format. Furthermore, the <a title="Software license agreement" href="http://mukulverma.wordpress.com/wiki/Software_license_agreement">Software license agreement</a> says VC-1 is only licensed for the &#8220;personal and non-commercial use of a consumer&#8221;.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-6"><span>[</span>7<span>]</span></a></sup> Silverlight, since version 3, supports the playback of H.264 video.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-7"><span>[</span>8<span>]</span></a></sup> Silverlight makes it possible to dynamically load <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a> content that can be manipulated through a <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> interface, a technique that is consistent with conventional <a title="Ajax (programming)" href="http://mukulverma.wordpress.com/wiki/Ajax_(programming)">Ajax</a> techniques. Silverlight exposes a <em>Downloader</em> object which can be used to download content, like scripts, media assets or other data, as may be required by the application.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-8"><span>[</span>9<span>]</span></a></sup> With version 2, the programming logic can be written in any .NET language, including some derivatives of common <a title="Dynamic programming language" href="http://mukulverma.wordpress.com/wiki/Dynamic_programming_language">dynamic programming languages</a> like <a title="IronRuby" href="http://mukulverma.wordpress.com/wiki/IronRuby">IronRuby</a> and <a title="IronPython" href="http://mukulverma.wordpress.com/wiki/IronPython">IronPython</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Silverlight_benefits-9"><span>[</span>10<span>]</span></a></sup></p>
<p><a id="Versions" name="Versions"></a></p>
<h2><span>[<a title="Edit section: Versions" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=2">edit</a>]</span> Versions</h2>
<p><a id="Silverlight_1.0" name="Silverlight_1.0"></a></p>
<h3><span>[<a title="Edit section: Silverlight 1.0" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=3">edit</a>]</span> Silverlight 1.0</h3>
<div>
<div style="width:182px;"><a title="A Silverlight 1.0 application hosted in Internet Explorer. Interactivity is provided by Silverlight, but user input controls are HTML controls overlaid on top of Silverlight content" href="http://mukulverma.wordpress.com/wiki/File:SilverlightGame.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SilverlightGame.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Silverlight 1.0 application hosted in <a title="Internet Explorer" href="http://mukulverma.wordpress.com/wiki/Internet_Explorer">Internet Explorer</a>. Interactivity is provided by Silverlight, but user input controls are HTML controls overlaid on top of Silverlight content</div>
</div>
</div>
<p>Silverlight 1.0, which was developed under the codename <em>Windows Presentation Foundation/Everywhere (WPF/E)</em>, consists of the core presentation framework, which is responsible for UI, interactivity and user input, basic UI controls, graphics and animation, media playback, <a title="Digital rights management" href="http://mukulverma.wordpress.com/wiki/Digital_rights_management">Digital rights management</a>, and <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> integration.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> It is made up of the following components:</p>
<ul>
<li>Input – handling input from devices like keyboard, mouse, stylus etc.</li>
<li>UI core – managing rendering of bitmap images (including compressed raster images like <a title="JPEG" href="http://mukulverma.wordpress.com/wiki/JPEG">JPEG</a>), vector graphics, text and animations.</li>
<li>Media – playback of <a title="MP3" href="http://mukulverma.wordpress.com/wiki/MP3">MP3</a>, <a title="Windows Media Audio" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Audio">WMA</a> Standard, WMV7, WMV8 and WMV9/VC-1 streams.</li>
<li>XAML – to allow the UI layout to be created using XAML markup language.</li>
</ul>
<p>A Silverlight application starts by invoking the Silverlight control from the HTML page, which then loads up a XAML file. The XAML file contains a <em>Canvas</em> object, which acts as placeholder for other elements. Silverlight provides various geometrical primitives like lines, ellipses and other shapes, to elements like text, images, and media etc. The elements are properly positioned to achieve the desired layout. Any arbitrary shape can be created as well. These elements can be animated using <em>Event triggers</em>; some animation effects are predefined, others can be created as composite of the pre-defined effects. Events like keyboard or mouse movements can also raise <em>Events</em> which can be handled by custom scripts.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-11"><span>[</span>12<span>]</span></a></sup></p>
<p>Programmatic manipulation of the UI is achieved by using scripting languages to modify the <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">Document Object Model</a> of the Silverlight Canvas object.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> To facilitate this, Silverlight exposes a <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> API, accessible from any scripting language supported by Silverlight, which in version 1.0 release is limited to JavaScript running in the browser. However, there are no UI widgets built in. The native widgets of the browser must be overlaid on top of the Silverlight <em>Canvas</em> for user input. Support for data formats is limited to <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a> and <a title="JSON" href="http://mukulverma.wordpress.com/wiki/JSON">JSON</a> only.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup></p>
<p><a id="Silverlight_2" name="Silverlight_2"></a></p>
<h3><span>[<a title="Edit section: Silverlight 2" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=4">edit</a>]</span> Silverlight 2</h3>
<div>
<div style="width:182px;"><a title="A Silverlight 2 application hosted in Internet Explorer. Version 2 brings improved interactivity and support for .NET languages and development tools" href="http://mukulverma.wordpress.com/wiki/File:SilverLight.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SilverLight.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Silverlight 2 application hosted in <a title="Internet Explorer" href="http://mukulverma.wordpress.com/wiki/Internet_Explorer">Internet Explorer</a>. Version 2 brings improved interactivity and support for .NET languages and development tools</div>
</div>
</div>
<p>Silverlight 2 (previously referred to as version 1.1)<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-slroadmap-12"><span>[</span>13<span>]</span></a></sup> includes a version of the <a title=".NET Framework" href="http://mukulverma.wordpress.com/wiki/.NET_Framework">.NET Framework</a>, implementing the same full <a title="Common Language Runtime" href="http://mukulverma.wordpress.com/wiki/Common_Language_Runtime">Common Language Runtime</a> version as <a title=".NET Framework" href="http://mukulverma.wordpress.com/wiki/.NET_Framework">.NET Framework</a> 3.0; so it can execute programs written in any .NET language. (By default, however, you cannot reference assemblies compiled with the regular .NET Framework.<sup>[<em><a title="Wikipedia:Citation needed" href="http://mukulverma.wordpress.com/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup>) Unlike the CLR included with .NET Framework, multiple instances of the CoreCLR included in Silverlight can be hosted in one process.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-13"><span>[</span>14<span>]</span></a></sup> With this, the XAML layout markup file (<tt>.xaml</tt> file) can be augmented by code-behind code, written in any .NET language, which contains the programming logic. It can be used to programmatically manipulate both the Silverlight application and the HTML page which hosts the Silverlight control. The XAML markup as well as the code, is compiled into <a title=".NET assembly" href="http://mukulverma.wordpress.com/wiki/.NET_assembly">.NET assemblies</a> which are then compressed using <a title="ZIP (file format)" href="http://mukulverma.wordpress.com/wiki/ZIP_(file_format)">ZIP</a> and stored in a <code>.xap</code> file.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-14"><span>[</span>15<span>]</span></a></sup></p>
<p>Silverlight ships with a lightweight class library which includes features such as extensible controls, <a title="Web service" href="http://mukulverma.wordpress.com/wiki/Web_service">XML Web Services</a>, <a title="Computer networking" href="http://mukulverma.wordpress.com/wiki/Computer_networking">networking</a> components and <a title="Language Integrated Query" href="http://mukulverma.wordpress.com/wiki/Language_Integrated_Query">LINQ</a> APIs. This class library is a subset of, and is considerably smaller than, <a title=".NET Framework" href="http://mukulverma.wordpress.com/wiki/.NET_Framework">.NET Framework&#8217;s</a> <a title="Base Class Library" href="http://mukulverma.wordpress.com/wiki/Base_Class_Library">Base Class Library</a>. Silverlight code runs in a <a title="Sandbox (computer security)" href="http://mukulverma.wordpress.com/wiki/Sandbox_(computer_security)">sandbox</a>, thus preventing the invocation of platform APIs.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-15"><span>[</span>16<span>]</span></a></sup></p>
<div>
<div style="width:252px;"><a title="Silverlight 2 Architecture" href="http://mukulverma.wordpress.com/wiki/File:Microsoft_Silverlight_stack.svg"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:Microsoft_Silverlight_stack.svg"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>Silverlight 2 Architecture</p></div>
</div>
</div>
<p>The version of .NET Framework in Silverlight adds<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> a subset of <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation">WPF</a> UI-programming model, including support for shapes, documents, media and animation objects of WPF. Beta 2 onwards,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> it ships with more than 30 UI controls<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2b2scottgu-17"><span>[</span>18<span>]</span></a></sup> (including <code>TextBox</code>, <code>CheckBox</code>, <code>Slider</code>, <code>ScrollViewer</code>, and <code>Calendar</code> controls),<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> for two-way databinding support, automated layout management (by means of <code>StackPanel</code>, <code>Grid</code> etc)<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> as well as data-manipulation controls, such as <a title="Grid view" href="http://mukulverma.wordpress.com/wiki/Grid_view">DataGrid</a><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-slroadmap-12"><span>[</span>13<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SGSilverlight-19"><span>[</span>20<span>]</span></a></sup> and ListBox.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> UI controls are skinnable using a template-based approach.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> Third-party libraries of expanded UI-control sets are also available.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-20"><span>[</span>21<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="A set of Silverlight controls rendered with different skins" href="http://mukulverma.wordpress.com/wiki/File:SLSkin.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SLSkin.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A set of Silverlight controls rendered with different skins</p></div>
</div>
</div>
<p>The included Base-Class Library (BCL) provides classes for collections, <a title="Reflection (computer science)" href="http://mukulverma.wordpress.com/wiki/Reflection_(computer_science)">reflection</a>, <a title="Regular expression" href="http://mukulverma.wordpress.com/wiki/Regular_expression">regular expressions</a>, string handling and <a title="Data access" href="http://mukulverma.wordpress.com/wiki/Data_access">data access</a>. It also supports <a title="Language Integrated Query" href="http://mukulverma.wordpress.com/wiki/Language_Integrated_Query">LINQ</a>, with full support for LINQ to Objects and <a title="Language Integrated Query" href="http://mukulverma.wordpress.com/wiki/Language_Integrated_Query#Language_features">expression trees</a>. Almost all of the <tt>System.Linq</tt> and <tt>System.Linq.Expression</tt> namespaces are exposed. It also supports <a title="Serialization" href="http://mukulverma.wordpress.com/wiki/Serialization">serialization</a> of objects, for <a title="Persistent data structure" href="http://mukulverma.wordpress.com/wiki/Persistent_data_structure">data persistence</a>. Silverlight can handle data in <a title="RSS" href="http://mukulverma.wordpress.com/wiki/RSS">RSS</a> or <a title="JSON" href="http://mukulverma.wordpress.com/wiki/JSON">JSON</a> format, in addition to <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a>. The BCL provides enhanced support for working with <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a> data, including the <tt>XMLReader</tt> and <tt>XMLWriter</tt> classes. Silverlight 2 also supports asynchronous programming via the use of the threading libraries.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SGSilverlight-19"><span>[</span>20<span>]</span></a></sup></p>
<p>Silverlight also includes classes for <a title="Data access" href="http://mukulverma.wordpress.com/wiki/Data_access">data access</a> over XML-based Web services, REST, <a title="Windows Communication Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Communication_Foundation">WCF Services</a> and <a title="ADO.NET Data Services" href="http://mukulverma.wordpress.com/wiki/ADO.NET_Data_Services">ADO.NET Data Services</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> The networking support in Silverlight can be used by Silverlight applications to communicate using HTTP, or at the lower <a title="Internet socket" href="http://mukulverma.wordpress.com/wiki/Internet_socket">socket</a> level. Cross-domain communication is supported. <sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2b2scottgu-17"><span>[</span>18<span>]</span></a></sup> Silverlight uses an <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a>-based configuration file to control the cross-domain resource-access policy, for both HTTP and socket connections. It can be used by site administrators to control which resources a Silverlight application can access, when that application did not originate in the domain of the site. In addition, Silverlight also supports the <a title="Adobe Flash" href="http://mukulverma.wordpress.com/wiki/Adobe_Flash">Adobe Flash</a> Cross-domain policy file format.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-21"><span>[</span>22<span>]</span></a></sup> Silverlight sockets can only initiate a connection; they cannot listen for connections.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sockcomments-22"><span>[</span>23<span>]</span></a></sup></p>
<p>Silverlight 2 includes<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> the <a title="Dynamic Language Runtime" href="http://mukulverma.wordpress.com/wiki/Dynamic_Language_Runtime">Dynamic Language Runtime</a> (DLR) which allows dynamic compilation and execution of dynamic (scripting) languages. Compilers for the languages based on the DLR (including <a title="IronPython" href="http://mukulverma.wordpress.com/wiki/IronPython">IronPython</a> and <a title="IronRuby" href="http://mukulverma.wordpress.com/wiki/IronRuby">IronRuby</a>) are [to be?] packaged with the Dynamic Languages application in the <code>.xap</code> package.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dsl-23"><span>[</span>24<span>]</span></a></sup> The Dynamic Languages SDK includes a <a title="Web server" href="http://mukulverma.wordpress.com/wiki/Web_server">web server</a> named <a title="http://www.codeplex.com/sdlsdk/Wiki/View.aspx?title=Chiron" rel="nofollow" href="http://www.codeplex.com/sdlsdk/Wiki/View.aspx?title=Chiron">Chiron</a>, that can dynamically package all the dependencies for the Dynamic Languages application and serve it to the browser.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dsl-23"><span>[</span>24<span>]</span></a></sup> The first upcoming languages written for the DLR are <a title="JScript" href="http://mukulverma.wordpress.com/wiki/JScript">Managed JScript</a>, <a title="IronPython" href="http://mukulverma.wordpress.com/wiki/IronPython">IronPython</a> 2.0, and <a title="IronRuby" href="http://mukulverma.wordpress.com/wiki/IronRuby">IronRuby</a>. Microsoft also plans to build <a title="Visual Basic .NET" href="http://mukulverma.wordpress.com/wiki/Visual_Basic_.NET#Visual_Basic_.27VBx.27_.28VB_10.0.29">Visual Basic .NET 10.0 (VBx)</a> on the DLR. All four languages share the same infrastructure, to allow Silverlight to compile and execute the language source. Conversely, other .NET languages must be compiled ahead-of-time and delivered to Silverlight as .NET assemblies. The implementation of Managed JScript conforms to the <a title="ECMAScript" href="http://mukulverma.wordpress.com/wiki/ECMAScript">ECMAScript</a> 3.0 specification, and Microsoft asserts that it is 250 times faster than interpreted JScript.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SGSilverlight-19"><span>[</span>20<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="A Python interpreter in Silverlight 2 hosted in Mozilla Firefox" href="http://mukulverma.wordpress.com/wiki/File:SilverLightMS.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SilverLightMS.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Python <a title="Interpreter (computing)" href="http://mukulverma.wordpress.com/wiki/Interpreter_(computing)">interpreter</a> in Silverlight 2 hosted in <a title="Mozilla Firefox" href="http://mukulverma.wordpress.com/wiki/Mozilla_Firefox">Mozilla Firefox</a></div>
</div>
</div>
<p>With the integration of .NET Framework, Silverlight also allows HTML-<a title="Managed code" href="http://mukulverma.wordpress.com/wiki/Managed_code">managed code</a> interaction, which enables the manipulation of <a title="HTML" href="http://mukulverma.wordpress.com/wiki/HTML">HTML</a> <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> elements from <a title="Managed code" href="http://mukulverma.wordpress.com/wiki/Managed_code">managed code</a>,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> and permits JavaScript code to call managed code and use objects instantiated by managed code. Silverlight encloses <a title="JavaScript" href="http://mukulverma.wordpress.com/wiki/JavaScript">JavaScript</a> objects and <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> elements in managed wrappers to make them available from managed code.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> While there is no provision for calling JavaScript code directly in the 1.1 alpha release, managed-code events can fire JavaScript handlers. A Silverlight instance does not need to have a UI component in order to manipulate the HTML DOM from managed code.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-25"><span>[</span>26<span>]</span></a></sup> It is done by creating an XAML <em>Canvas</em> with both width and height set to zero, and using its code-behind code to modify the <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">Document Object Model</a> of the HTML page via the APIs in the <tt>System.Browser</tt> namespace.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-26"><span>[</span>27<span>]</span></a></sup></p>
<p>Silverlight 2 includes Deep Zoom, a technology derived from Microsoft Live Labs Seadragon. It allows users to zoom into, or out of, an image (or a collage of images), with smooth transitions, using the mouse wheel.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-27"><span>[</span>28<span>]</span></a></sup> The images can scale from 2 or 3 megapixels in resolution into the gigapixel range, but the user need not wait for it to be downloaded entirely; rather, Silverlight downloads only the parts in view, optimized for the zoom level being viewed.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-28"><span>[</span>29<span>]</span></a></sup> Beta 2 onwards, Deep Zoom uses an <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a>-based file format.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="A Silverlight 2 application using DeepZoom, running in Safari 3.1, on Windows XP" href="http://mukulverma.wordpress.com/wiki/File:DeepZoom.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:DeepZoom.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Silverlight 2 application using <a title="DeepZoom" href="http://mukulverma.wordpress.com/wiki/DeepZoom">DeepZoom</a>, running in <a title="Safari (web browser)" href="http://mukulverma.wordpress.com/wiki/Safari_(web_browser)">Safari 3.1</a>, on <a title="Windows XP" href="http://mukulverma.wordpress.com/wiki/Windows_XP">Windows XP</a></div>
</div>
</div>
<p>Media features in Silverlight 2 include:<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-29"><span>[</span>30<span>]</span></a></sup></p>
<ul>
<li>WMA Professional support, including WMA 10 Pro low-bitrate modes. However, multi-channel audio content is still down-converted to stereo output.</li>
<li>Content protection powered by Microsoft <a title="PlayReady" href="http://mukulverma.wordpress.com/wiki/PlayReady">PlayReady</a> DRM client.</li>
<li>Server-side playlists in Windows Media Services.</li>
<li>Media Stream Source API.</li>
</ul>
<p>The Media Stream Source is the API responsible for enabling adaptive streaming of media. Adaptive streaming allows the player application to choose the bit rate of the media based on available client bandwidth and CPU resources.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> Media Stream Source allows the developer to specify a custom method of retrieving media data, the only requirement being that the final video and audio streams be presented to Silverlight runtime in a format that Silverlight can decode (VC-1, H.264, WMA, MP3, etc). This allows extensible support for otherwise natively unsupported file formats (i.e. MP4, Matroska, Ogg), protocols (i.e. Shoutcast) and delivery methods (i.e. adaptive streaming, P2P). Microsoft first publicly showcased Media Stream Source by powering the <a title="http://www.nbcolympics.com/video" rel="nofollow" href="http://www.nbcolympics.com/video">NBC Olympics</a> website with their own implementation of adaptive streaming.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-30"><span>[</span>31<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="Third-party open source Chart Control(Visifire) in action." href="http://mukulverma.wordpress.com/wiki/File:Visifire.jpg"><img src="http://upload.wikimedia.org/wikipedia/en/thumb/5/51/Visifire.jpg/180px-Visifire.jpg" alt="" width="180" height="106" /></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:Visifire.jpg"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"> </span></a></div>
<p>Third-party open source Chart Control(<a title="Visifire" href="http://mukulverma.wordpress.com/wiki/Visifire">Visifire</a>) in action.</div>
</div>
</div>
<p>Silverlight 2 also allows limited filesystem access to Silverlight applications.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> It can use the operating system&#8217;s native file dialog box to browse to any file (to which the user has access). The file is sanitized of path information, to prevent the application from getting access to information such as user name, and can be opened only in read-only mode. For local storage of data, Silverlight provides <em>isolated local storage</em> (isostorage),<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> namely, outside the browser cache, in a folder hidden inside the private user-profile folder. It is set to 1 MB per URL by default,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> but this can be changed by the user.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> Data stored by a Silverlight application in the isostorage is identified by the URL from which it loads, and can be accessed by that application only. All instances of Silverlight share the same isostorage, so all instances of the same Silverlight application can share the saved data, even if they are running on different browsers.</p>
<p>Silverlight CoreCLR uses an attribute-based security model, as opposed to the <a title="Code Access Security" href="http://mukulverma.wordpress.com/wiki/Code_Access_Security">Code Access Security</a> (CAS) model of the desktop version of .NET Framework.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel1-31"><span>[</span>32<span>]</span></a></sup> Assemblies are marked with a security attribute, which can be <em>transparent</em> (<tt>SecurityTransparentAttribute</tt>), <em>safecritical</em> (<tt>SecuritySafeCriticalAttribute</tt>) or <em>critical</em> (<tt>SecurityCriticalAttribute</tt>). Methods in <em>transparent</em> assemblies run with partial trust, and codes within such assemblies cannot call <em>critical</em> methods (methods which can cause system-wide changes); neither can <em>transparent</em> assemblies contain unverifiable code (use the <em>unsafe</em> <a title="C Sharp (programming language)" href="http://mukulverma.wordpress.com/wiki/C_Sharp_(programming_language)">C#</a> keyword or use pointers) or invoke system functions by means of P/Invoke. Code in both <em>critical</em> and <em>safecritical</em> assemblies run with full trust, and are therefore not subject to such limitations. However, a <em>transparent</em> method can call a <em>safecritical</em> method, and a <em>safecritical</em> method can call a <em>critical</em> method. In such a case, the <em>safecritical</em> method will verify that the call is both safe and within the limited rights of the caller; if so, then the <em>safecritical</em> method will <a title="Proxy pattern" href="http://mukulverma.wordpress.com/wiki/Proxy_pattern">proxy</a> the call to the requested <em>critical</em> method. In fact, the IsoStorage APIs are exposed as <em>safecritical</em> methods.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel1-31"><span>[</span>32<span>]</span></a></sup> An assembly whose security attribute is unset is run as a <em>transparent</em> method. Analogous limitations also apply to type-inheritance; namely, in the cases of virtual-method calls and interface-method calls.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel3-32"><span>[</span>33<span>]</span></a></sup> Silverlight assemblies can contain members that are not usable by CoreCLR, as long as they can be processed by the .NET Framework CLR; such methods will not be loaded when the assembly is being executed by CoreCLR.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-33"><span>[</span>34<span>]</span></a></sup></p>
<p>However, only platform code is allowed to be marked as <em>critical</em> or <em>safecritical</em>. The Silverlight runtime ensures that platform assemblies are loaded only from the Silverlight installation directory, and are <a title="Digital signature" href="http://mukulverma.wordpress.com/wiki/Digital_signature">digitally signed</a> by Microsoft. This effectively means that user-application assemblies can only be <em>transparent</em> code (run under partial trust and limited rights).<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel2-34"><span>[</span>35<span>]</span></a></sup> Platform code can be marked with either attribute. The BCL methods of the .NET Framework, which have the <tt>Internet</tt> attribute set, allowing them to be called from untrusted code originating from Internet, are exposed in Silverlight BCL as <em>transparent</em> methods.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel2-34"><span>[</span>35<span>]</span></a></sup></p>
<p><a id="Silverlight_3" name="Silverlight_3"></a></p>
<h3><span>[<a title="Edit section: Silverlight 3" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=5">edit</a>]</span> Silverlight 3</h3>
<div>
<div style="width:182px;"><a title="A Silverlight 3 application, with one instance running in a web browser as well as installed locally. The start menu icon is also shown." href="http://mukulverma.wordpress.com/wiki/File:OfflineSL3.png"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"> </span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:OfflineSL3.png"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"> </span></a></div>
<p>A Silverlight 3 application, with one instance running in a web browser as well as installed locally. The start menu icon is also shown.</p></div>
</div>
</div>
<p>Silverlight 3 was first announced at the IBC 2008 show in Amsterdam on <a title="September 12" href="http://mukulverma.wordpress.com/wiki/September_12">September 12</a>, <a title="2008" href="http://mukulverma.wordpress.com/wiki/2008">2008</a>. It was unveiled at <a title="MIX (Microsoft)" href="http://mukulverma.wordpress.com/wiki/MIX_(Microsoft)">MIX09</a> in <a title="Las Vegas, Nevada" href="http://mukulverma.wordpress.com/wiki/Las_Vegas,_Nevada">Las Vegas</a> on <a title="March 18" href="http://mukulverma.wordpress.com/wiki/March_18">March 18</a>, <a title="2009" href="http://mukulverma.wordpress.com/wiki/2009">2009</a>. A beta version was made available for download the same day. The final version was released <a title="July 9" href="http://mukulverma.wordpress.com/wiki/July_9">July 9</a>, <a title="2009" href="http://mukulverma.wordpress.com/wiki/2009">2009</a>.</p>
<p>Silverlight 3 includes an increased number of controls<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> &#8211; including but not limited to <em>DataGrid</em>, <em>TreeView</em>, various layout panels, <em>DataForm</em> for forms-driven applications and <em>DataPager</em> for viewing paginated data. Some of these controls are from the <a href="http://mukulverma.wordpress.com/wp-admin/#Licensing">Silverlight Toolkit</a>. In addition, Silverlight 3 includes a navigation framework to let Silverlight applications use the <a title="Hyperlink" href="http://mukulverma.wordpress.com/wiki/Hyperlink">hyperlinked</a> navigation model as well as enabling deep-linking (linking directly to specific pages) within Silverlight applications.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup></p>
<p>On the media front, Silverlight 3 supports <a title="AAC" href="http://mukulverma.wordpress.com/wiki/AAC">AAC</a> audio decoding as well as hardware-accelerated H.264 video decoding.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Silverlight 3 also offers <a title="1080p" href="http://mukulverma.wordpress.com/wiki/1080p">1080p</a> smooth streaming.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-36"><span>[</span>37<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-37"><span>[</span>38<span>]</span></a></sup> The native multimedia pipeline is also programmatically exposed, so that other formats can also be supported by third-parties using <a title="Managed code" href="http://mukulverma.wordpress.com/wiki/Managed_code">managed code</a> decoders.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Silverlight 3 supports <em>perspective 3D</em><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> which enables 3D transformations of 2D elements.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> These transformations, as well as many 2D operations like stretches, alpha blending etc are hardware accelerated.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> Custom animations, including transforms and blends, can be created on Silverlight elements using HLSL to make use of <a title="Pixel shader" href="http://mukulverma.wordpress.com/wiki/Pixel_shader">pixel shaders</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> A <a title="Bitmap" href="http://mukulverma.wordpress.com/wiki/Bitmap">Bitmap</a> API is provided to let Silverlight 3 applications manipulate bitmaps.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> Silverlight now uses the GPU to accelerate the composition of <em>Visual Trees</em> (like <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation">WPF</a>, Silverlight elements correspond to <em>Visual</em> elements, which, when coupled with the layout information, forms a <em>Composition Tree</em> or <em>Visual Tree</em> which is then rendered to form the final display; see <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation#Architecture">WPF architecture</a>).<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Visual trees can now be cached;<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> this increases performance in cases like transforms, which creates lots of throw-away intermediate states, by not making the state transitions on the main Visual tree. Silverlight 3 now also supports <a title="ClearType" href="http://mukulverma.wordpress.com/wiki/ClearType">ClearType</a> text rendering.</p>
<div>
<div style="width:182px;"><a title="A Silverlight 3 application demonstrating local file access." href="http://mukulverma.wordpress.com/wiki/File:DesktopSL3.png"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border:#ccc 1px solid;"> </span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:DesktopSL3.png"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"> </span></a></div>
<p>A Silverlight 3 application demonstrating local file access.</p></div>
</div>
</div>
<p>UI elements in Silverlight 3 supports <em>element-to-element</em> binding &#8211; which allows one element to be bound to the state of another element,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> as well as a validation mechanism for data binding.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Unlike Silverlight 2, which allowed the applications to save files only to the local isostorage, Silverlight 3 applications can save to any location on the file system via the system <em>Save File</em> dialog. However, the path where the file is saved will still be hidden from the Silverlight application.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Any external assemblies used by Silverlight applications are cached too so that they need not be redownloaded for subsequent instantiations of the application.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup></p>
<p>Silverlight 3 also includes a <em>LocalConnection</em> API to communicate (using a <a title="Named pipe" href="http://mukulverma.wordpress.com/wiki/Named_pipe">named pipe</a> style model) among multiple running applications on the same machine, irrespective of the browser <sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> and can monitor for network connectivity events.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Silverlight 3 can optionally use <a title="Binary XML" href="http://mukulverma.wordpress.com/wiki/Binary_XML">Binary XML</a> to communicate with <a title="Windows Communication Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Communication_Foundation">WCF</a> services.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup></p>
<p>Silverlight 3 supports <em>Out-of-Browser experiences</em>, i.e., Silverlight applications can be installed to the system for offline access (provided the application <a title="Manifest (.NET Framework)" href="http://mukulverma.wordpress.com/wiki/Manifest_(.NET_Framework)">manifest</a> is designed to allow local installation) where they run outside the browser. They are launched using the Start Menu or desktop shortcuts, and run without the browser window.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Applications can check whether they are running inside a browser or not.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-creatingoob-39"><span>[</span>40<span>]</span></a></sup> When running out of browser, HTML interop is disabled. In addition, access to the Function Keys is enabled.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3notes-40"><span>[</span>41<span>]</span></a></sup> Locally installed Silverlight applications still run in a sandbox.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3notes-40"><span>[</span>41<span>]</span></a></sup></p>
<p>Installed Silverlight 3 applications automatically check for updates asynchronously on every launch and updates are automatically installed.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-41"><span>[</span>42<span>]</span></a></sup> Running instances of the applications are informed when updates are available.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-creatingoob-39"><span>[</span>40<span>]</span></a></sup></p>
<p><strong>Microsoft Silverlight</strong> is a web application framework developed by <a title="Microsoft" href="http://mukulverma.wordpress.com/wiki/Microsoft">Microsoft</a>. Initially released as a video streaming plugin, later versions brought additional <a title="Interactivity" href="http://mukulverma.wordpress.com/wiki/Interactivity">interactivity features</a> and support for .NET languages and development tools. The current version, 3.0, was released on July 9, 2009.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-0"><span>[</span>1<span>]</span></a></sup></p>
<p>It is compatible with multiple web browser products used on <a title="Microsoft Windows" href="http://mukulverma.wordpress.com/wiki/Microsoft_Windows">Microsoft Windows</a> and <a title="Mac OS X" href="http://mukulverma.wordpress.com/wiki/Mac_OS_X">Mac OS X</a> <a title="Operating system" href="http://mukulverma.wordpress.com/wiki/Operating_system">operating systems</a>. Mobile devices, starting with Windows Mobile 6 and <a title="Symbian" href="http://mukulverma.wordpress.com/wiki/Symbian">Symbian</a> (Series 60) phones, will probably be supported in 2010.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl4mobile-1"><span>[</span>2<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl4mobile2010-2"><span>[</span>3<span>]</span></a></sup> A <a title="Free software" href="http://mukulverma.wordpress.com/wiki/Free_software">free software</a> implementation named <a title="Moonlight (runtime)" href="http://mukulverma.wordpress.com/wiki/Moonlight_(runtime)">Moonlight</a>, developed by Novell in cooperation with Microsoft, is available to bring compatible functionality to <a title="Linux" href="http://mukulverma.wordpress.com/wiki/Linux">Linux</a>.</p>
<table id="toc" border="0" summary="Contents">
<tbody>
<tr>
<td>
<div id="toctitle">
<h2>Contents</h2>
<p><span>[<a id="togglelink" href="toggleToc()">hide</a>]</span></div>
<ul>
<li> 
<ul><a href="http://mukulverma.wordpress.com/wp-admin/#Silverlight_1.0"><span>2.1</span> <span>Silverlight 1.0</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Silverlight_2"><span>2.2</span> <span>Silverlight 2</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Silverlight_3"><span>2.3</span> <span>Silverlight 3</span></a></ul>
<ul><a href="http://mukulverma.wordpress.com/wp-admin/#Operating_systems_and_web_browsers"><span>4.1</span> <span>Operating systems and web browsers</span></a></ul>
</li>
<p><a href="http://mukulverma.wordpress.com/wp-admin/#Overview"><span>1</span> <span>Overview</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Versions"><span>2</span> <span>Versions</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Release_history"><span>3</span> <span>Release history</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Compatibility"><span>4</span> <span>Compatibility</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Development_tools"><span>5</span> <span>Development tools</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Licensing"><span>6</span> <span>Licensing</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Mono_Moonlight_implementation"><span>7</span> <span>Mono Moonlight implementation</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#Relationship_to_existing_Web_standards"><span>8</span> <span>Relationship to existing Web standards</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#See_also"><span>9</span> <span>See also</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#References"><span>10</span> <span>References</span></a> <a href="http://mukulverma.wordpress.com/wp-admin/#External_links"><span>11</span> <span>External links</span></a></ul>
</td>
</tr>
</tbody>
</table>
<p><a id="Overview" name="Overview"></a></p>
<h2><span>[<a title="Edit section: Overview" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=1">edit</a>]</span> Overview</h2>
<p>Silverlight provides a <a title="Retained mode" href="http://mukulverma.wordpress.com/wiki/Retained_mode">retained mode</a> graphics system similar to <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation">Windows Presentation Foundation</a>, and integrates <a title="Multimedia" href="http://mukulverma.wordpress.com/wiki/Multimedia">multimedia</a>, <a title="Computer graphics" href="http://mukulverma.wordpress.com/wiki/Computer_graphics">graphics</a>, <a title="Animation" href="http://mukulverma.wordpress.com/wiki/Animation">animations</a> and <a title="Interactivity" href="http://mukulverma.wordpress.com/wiki/Interactivity">interactivity</a> into a single runtime environment. In Silverlight applications, user interfaces are declared in <a title="Extensible Application Markup Language" href="http://mukulverma.wordpress.com/wiki/Extensible_Application_Markup_Language">XAML</a> and programmed using a subset of the .NET Framework. XAML can be used for marking up the <a title="Vector graphics" href="http://mukulverma.wordpress.com/wiki/Vector_graphics">vector graphics</a> and animations. Textual content created with Silverlight is searchable and <a title="Index (search engine)" href="http://mukulverma.wordpress.com/wiki/Index_(search_engine)">indexable</a> by search engines as it is not <a title="Compiled language" href="http://mukulverma.wordpress.com/wiki/Compiled_language">compiled</a>, but represented as text (XAML).<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-3"><span>[</span>4<span>]</span></a></sup> Silverlight can also be used to create <a title="Windows Sidebar" href="http://mukulverma.wordpress.com/wiki/Windows_Sidebar">Windows Sidebar</a> <a title="Microsoft Gadgets" href="http://mukulverma.wordpress.com/wiki/Microsoft_Gadgets">gadgets</a> for <a title="Windows Vista" href="http://mukulverma.wordpress.com/wiki/Windows_Vista">Windows Vista</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-4"><span>[</span>5<span>]</span></a></sup></p>
<p>Silverlight supports playback of <a title="Windows Media Video" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Video">WMV</a>, <a title="Windows Media Audio" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Audio">WMA</a> and MP3 media content<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-5"><span>[</span>6<span>]</span></a></sup> across all supported browsers without requiring <a title="Windows Media Player" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Player">Windows Media Player</a>, the <a title="Windows Media Player" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Player">Windows Media Player</a> <a title="ActiveX" href="http://mukulverma.wordpress.com/wiki/ActiveX">ActiveX</a> control or <a title="Windows Media" href="http://mukulverma.wordpress.com/wiki/Windows_Media">Windows Media</a> browser plugins. Because <a title="Windows Media Video" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Video">Windows Media Video 9</a> is an implementation of the <a title="Society of Motion Picture and Television Engineers" href="http://mukulverma.wordpress.com/wiki/Society_of_Motion_Picture_and_Television_Engineers">SMPTE</a> <a title="VC-1" href="http://mukulverma.wordpress.com/wiki/VC-1">VC-1</a> standard, Silverlight also supports VC-1 video, though still only in an ASF container format. Furthermore, the <a title="Software license agreement" href="http://mukulverma.wordpress.com/wiki/Software_license_agreement">Software license agreement</a> says VC-1 is only licensed for the &#8220;personal and non-commercial use of a consumer&#8221;.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-6"><span>[</span>7<span>]</span></a></sup> Silverlight, since version 3, supports the playback of H.264 video.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-7"><span>[</span>8<span>]</span></a></sup> Silverlight makes it possible to dynamically load <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a> content that can be manipulated through a <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> interface, a technique that is consistent with conventional <a title="Ajax (programming)" href="http://mukulverma.wordpress.com/wiki/Ajax_(programming)">Ajax</a> techniques. Silverlight exposes a <em>Downloader</em> object which can be used to download content, like scripts, media assets or other data, as may be required by the application.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-8"><span>[</span>9<span>]</span></a></sup> With version 2, the programming logic can be written in any .NET language, including some derivatives of common <a title="Dynamic programming language" href="http://mukulverma.wordpress.com/wiki/Dynamic_programming_language">dynamic programming languages</a> like <a title="IronRuby" href="http://mukulverma.wordpress.com/wiki/IronRuby">IronRuby</a> and <a title="IronPython" href="http://mukulverma.wordpress.com/wiki/IronPython">IronPython</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Silverlight_benefits-9"><span>[</span>10<span>]</span></a></sup></p>
<p><a id="Versions" name="Versions"></a></p>
<h2><span>[<a title="Edit section: Versions" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=2">edit</a>]</span> Versions</h2>
<p><a id="Silverlight_1.0" name="Silverlight_1.0"></a></p>
<h3><span>[<a title="Edit section: Silverlight 1.0" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=3">edit</a>]</span> Silverlight 1.0</h3>
<div>
<div style="width:182px;"><a title="A Silverlight 1.0 application hosted in Internet Explorer. Interactivity is provided by Silverlight, but user input controls are HTML controls overlaid on top of Silverlight content" href="http://mukulverma.wordpress.com/wiki/File:SilverlightGame.PNG"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SilverlightGame.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Silverlight 1.0 application hosted in <a title="Internet Explorer" href="http://mukulverma.wordpress.com/wiki/Internet_Explorer">Internet Explorer</a>. Interactivity is provided by Silverlight, but user input controls are HTML controls overlaid on top of Silverlight content</div>
</div>
</div>
<p>Silverlight 1.0, which was developed under the codename <em>Windows Presentation Foundation/Everywhere (WPF/E)</em>, consists of the core presentation framework, which is responsible for UI, interactivity and user input, basic UI controls, graphics and animation, media playback, <a title="Digital rights management" href="http://mukulverma.wordpress.com/wiki/Digital_rights_management">Digital rights management</a>, and <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> integration.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> It is made up of the following components:</p>
<ul>
<li>Input – handling input from devices like keyboard, mouse, stylus etc.</li>
<li>UI core – managing rendering of bitmap images (including compressed raster images like <a title="JPEG" href="http://mukulverma.wordpress.com/wiki/JPEG">JPEG</a>), vector graphics, text and animations.</li>
<li>Media – playback of <a title="MP3" href="http://mukulverma.wordpress.com/wiki/MP3">MP3</a>, <a title="Windows Media Audio" href="http://mukulverma.wordpress.com/wiki/Windows_Media_Audio">WMA</a> Standard, WMV7, WMV8 and WMV9/VC-1 streams.</li>
<li>XAML – to allow the UI layout to be created using XAML markup language.</li>
</ul>
<p>A Silverlight application starts by invoking the Silverlight control from the HTML page, which then loads up a XAML file. The XAML file contains a <em>Canvas</em> object, which acts as placeholder for other elements. Silverlight provides various geometrical primitives like lines, ellipses and other shapes, to elements like text, images, and media etc. The elements are properly positioned to achieve the desired layout. Any arbitrary shape can be created as well. These elements can be animated using <em>Event triggers</em>; some animation effects are predefined, others can be created as composite of the pre-defined effects. Events like keyboard or mouse movements can also raise <em>Events</em> which can be handled by custom scripts.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-11"><span>[</span>12<span>]</span></a></sup></p>
<p>Programmatic manipulation of the UI is achieved by using scripting languages to modify the <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">Document Object Model</a> of the Silverlight Canvas object.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> To facilitate this, Silverlight exposes a <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> API, accessible from any scripting language supported by Silverlight, which in version 1.0 release is limited to JavaScript running in the browser. However, there are no UI widgets built in. The native widgets of the browser must be overlaid on top of the Silverlight <em>Canvas</em> for user input. Support for data formats is limited to <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a> and <a title="JSON" href="http://mukulverma.wordpress.com/wiki/JSON">JSON</a> only.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup></p>
<p><a id="Silverlight_2" name="Silverlight_2"></a></p>
<h3><span>[<a title="Edit section: Silverlight 2" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=4">edit</a>]</span> Silverlight 2</h3>
<div>
<div style="width:182px;"><a title="A Silverlight 2 application hosted in Internet Explorer. Version 2 brings improved interactivity and support for .NET languages and development tools" href="http://mukulverma.wordpress.com/wiki/File:SilverLight.PNG"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SilverLight.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Silverlight 2 application hosted in <a title="Internet Explorer" href="http://mukulverma.wordpress.com/wiki/Internet_Explorer">Internet Explorer</a>. Version 2 brings improved interactivity and support for .NET languages and development tools</div>
</div>
</div>
<p>Silverlight 2 (previously referred to as version 1.1)<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-slroadmap-12"><span>[</span>13<span>]</span></a></sup> includes a version of the <a title=".NET Framework" href="http://mukulverma.wordpress.com/wiki/.NET_Framework">.NET Framework</a>, implementing the same full <a title="Common Language Runtime" href="http://mukulverma.wordpress.com/wiki/Common_Language_Runtime">Common Language Runtime</a> version as <a title=".NET Framework" href="http://mukulverma.wordpress.com/wiki/.NET_Framework">.NET Framework</a> 3.0; so it can execute programs written in any .NET language. (By default, however, you cannot reference assemblies compiled with the regular .NET Framework.<sup>[<em><a title="Wikipedia:Citation needed" href="http://mukulverma.wordpress.com/wiki/Wikipedia:Citation_needed">citation needed</a></em>]</sup>) Unlike the CLR included with .NET Framework, multiple instances of the CoreCLR included in Silverlight can be hosted in one process.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-13"><span>[</span>14<span>]</span></a></sup> With this, the XAML layout markup file (<tt>.xaml</tt> file) can be augmented by code-behind code, written in any .NET language, which contains the programming logic. It can be used to programmatically manipulate both the Silverlight application and the HTML page which hosts the Silverlight control. The XAML markup as well as the code, is compiled into <a title=".NET assembly" href="http://mukulverma.wordpress.com/wiki/.NET_assembly">.NET assemblies</a> which are then compressed using <a title="ZIP (file format)" href="http://mukulverma.wordpress.com/wiki/ZIP_(file_format)">ZIP</a> and stored in a <code>.xap</code> file.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-14"><span>[</span>15<span>]</span></a></sup></p>
<p>Silverlight ships with a lightweight class library which includes features such as extensible controls, <a title="Web service" href="http://mukulverma.wordpress.com/wiki/Web_service">XML Web Services</a>, <a title="Computer networking" href="http://mukulverma.wordpress.com/wiki/Computer_networking">networking</a> components and <a title="Language Integrated Query" href="http://mukulverma.wordpress.com/wiki/Language_Integrated_Query">LINQ</a> APIs. This class library is a subset of, and is considerably smaller than, <a title=".NET Framework" href="http://mukulverma.wordpress.com/wiki/.NET_Framework">.NET Framework&#8217;s</a> <a title="Base Class Library" href="http://mukulverma.wordpress.com/wiki/Base_Class_Library">Base Class Library</a>. Silverlight code runs in a <a title="Sandbox (computer security)" href="http://mukulverma.wordpress.com/wiki/Sandbox_(computer_security)">sandbox</a>, thus preventing the invocation of platform APIs.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-15"><span>[</span>16<span>]</span></a></sup></p>
<div>
<div style="width:252px;"><a title="Silverlight 2 Architecture" href="http://mukulverma.wordpress.com/wiki/File:Microsoft_Silverlight_stack.svg"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:Microsoft_Silverlight_stack.svg"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>Silverlight 2 Architecture</p></div>
</div>
</div>
<p>The version of .NET Framework in Silverlight adds<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> a subset of <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation">WPF</a> UI-programming model, including support for shapes, documents, media and animation objects of WPF. Beta 2 onwards,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> it ships with more than 30 UI controls<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2b2scottgu-17"><span>[</span>18<span>]</span></a></sup> (including <code>TextBox</code>, <code>CheckBox</code>, <code>Slider</code>, <code>ScrollViewer</code>, and <code>Calendar</code> controls),<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> for two-way databinding support, automated layout management (by means of <code>StackPanel</code>, <code>Grid</code> etc)<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> as well as data-manipulation controls, such as <a title="Grid view" href="http://mukulverma.wordpress.com/wiki/Grid_view">DataGrid</a><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-slroadmap-12"><span>[</span>13<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SGSilverlight-19"><span>[</span>20<span>]</span></a></sup> and ListBox.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> UI controls are skinnable using a template-based approach.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2preview-18"><span>[</span>19<span>]</span></a></sup> Third-party libraries of expanded UI-control sets are also available.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-20"><span>[</span>21<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="A set of Silverlight controls rendered with different skins" href="http://mukulverma.wordpress.com/wiki/File:SLSkin.PNG"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SLSkin.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A set of Silverlight controls rendered with different skins</p></div>
</div>
</div>
<p>The included Base-Class Library (BCL) provides classes for collections, <a title="Reflection (computer science)" href="http://mukulverma.wordpress.com/wiki/Reflection_(computer_science)">reflection</a>, <a title="Regular expression" href="http://mukulverma.wordpress.com/wiki/Regular_expression">regular expressions</a>, string handling and <a title="Data access" href="http://mukulverma.wordpress.com/wiki/Data_access">data access</a>. It also supports <a title="Language Integrated Query" href="http://mukulverma.wordpress.com/wiki/Language_Integrated_Query">LINQ</a>, with full support for LINQ to Objects and <a title="Language Integrated Query" href="http://mukulverma.wordpress.com/wiki/Language_Integrated_Query#Language_features">expression trees</a>. Almost all of the <tt>System.Linq</tt> and <tt>System.Linq.Expression</tt> namespaces are exposed. It also supports <a title="Serialization" href="http://mukulverma.wordpress.com/wiki/Serialization">serialization</a> of objects, for <a title="Persistent data structure" href="http://mukulverma.wordpress.com/wiki/Persistent_data_structure">data persistence</a>. Silverlight can handle data in <a title="RSS" href="http://mukulverma.wordpress.com/wiki/RSS">RSS</a> or <a title="JSON" href="http://mukulverma.wordpress.com/wiki/JSON">JSON</a> format, in addition to <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a>. The BCL provides enhanced support for working with <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a> data, including the <tt>XMLReader</tt> and <tt>XMLWriter</tt> classes. Silverlight 2 also supports asynchronous programming via the use of the threading libraries.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SGSilverlight-19"><span>[</span>20<span>]</span></a></sup></p>
<p>Silverlight also includes classes for <a title="Data access" href="http://mukulverma.wordpress.com/wiki/Data_access">data access</a> over XML-based Web services, REST, <a title="Windows Communication Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Communication_Foundation">WCF Services</a> and <a title="ADO.NET Data Services" href="http://mukulverma.wordpress.com/wiki/ADO.NET_Data_Services">ADO.NET Data Services</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> The networking support in Silverlight can be used by Silverlight applications to communicate using HTTP, or at the lower <a title="Internet socket" href="http://mukulverma.wordpress.com/wiki/Internet_socket">socket</a> level. Cross-domain communication is supported. <sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2b2scottgu-17"><span>[</span>18<span>]</span></a></sup> Silverlight uses an <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a>-based configuration file to control the cross-domain resource-access policy, for both HTTP and socket connections. It can be used by site administrators to control which resources a Silverlight application can access, when that application did not originate in the domain of the site. In addition, Silverlight also supports the <a title="Adobe Flash" href="http://mukulverma.wordpress.com/wiki/Adobe_Flash">Adobe Flash</a> Cross-domain policy file format.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-21"><span>[</span>22<span>]</span></a></sup> Silverlight sockets can only initiate a connection; they cannot listen for connections.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sockcomments-22"><span>[</span>23<span>]</span></a></sup></p>
<p>Silverlight 2 includes<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> the <a title="Dynamic Language Runtime" href="http://mukulverma.wordpress.com/wiki/Dynamic_Language_Runtime">Dynamic Language Runtime</a> (DLR) which allows dynamic compilation and execution of dynamic (scripting) languages. Compilers for the languages based on the DLR (including <a title="IronPython" href="http://mukulverma.wordpress.com/wiki/IronPython">IronPython</a> and <a title="IronRuby" href="http://mukulverma.wordpress.com/wiki/IronRuby">IronRuby</a>) are [to be?] packaged with the Dynamic Languages application in the <code>.xap</code> package.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dsl-23"><span>[</span>24<span>]</span></a></sup> The Dynamic Languages SDK includes a <a title="Web server" href="http://mukulverma.wordpress.com/wiki/Web_server">web server</a> named <a title="http://www.codeplex.com/sdlsdk/Wiki/View.aspx?title=Chiron" rel="nofollow" href="http://www.codeplex.com/sdlsdk/Wiki/View.aspx?title=Chiron">Chiron</a>, that can dynamically package all the dependencies for the Dynamic Languages application and serve it to the browser.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dsl-23"><span>[</span>24<span>]</span></a></sup> The first upcoming languages written for the DLR are <a title="JScript" href="http://mukulverma.wordpress.com/wiki/JScript">Managed JScript</a>, <a title="IronPython" href="http://mukulverma.wordpress.com/wiki/IronPython">IronPython</a> 2.0, and <a title="IronRuby" href="http://mukulverma.wordpress.com/wiki/IronRuby">IronRuby</a>. Microsoft also plans to build <a title="Visual Basic .NET" href="http://mukulverma.wordpress.com/wiki/Visual_Basic_.NET#Visual_Basic_.27VBx.27_.28VB_10.0.29">Visual Basic .NET 10.0 (VBx)</a> on the DLR. All four languages share the same infrastructure, to allow Silverlight to compile and execute the language source. Conversely, other .NET languages must be compiled ahead-of-time and delivered to Silverlight as .NET assemblies. The implementation of Managed JScript conforms to the <a title="ECMAScript" href="http://mukulverma.wordpress.com/wiki/ECMAScript">ECMAScript</a> 3.0 specification, and Microsoft asserts that it is 250 times faster than interpreted JScript.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SGSilverlight-19"><span>[</span>20<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="A Python interpreter in Silverlight 2 hosted in Mozilla Firefox" href="http://mukulverma.wordpress.com/wiki/File:SilverLightMS.PNG"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:SilverLightMS.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Python <a title="Interpreter (computing)" href="http://mukulverma.wordpress.com/wiki/Interpreter_(computing)">interpreter</a> in Silverlight 2 hosted in <a title="Mozilla Firefox" href="http://mukulverma.wordpress.com/wiki/Mozilla_Firefox">Mozilla Firefox</a></div>
</div>
</div>
<p>With the integration of .NET Framework, Silverlight also allows HTML-<a title="Managed code" href="http://mukulverma.wordpress.com/wiki/Managed_code">managed code</a> interaction, which enables the manipulation of <a title="HTML" href="http://mukulverma.wordpress.com/wiki/HTML">HTML</a> <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> elements from <a title="Managed code" href="http://mukulverma.wordpress.com/wiki/Managed_code">managed code</a>,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-Architecture-10"><span>[</span>11<span>]</span></a></sup> and permits JavaScript code to call managed code and use objects instantiated by managed code. Silverlight encloses <a title="JavaScript" href="http://mukulverma.wordpress.com/wiki/JavaScript">JavaScript</a> objects and <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">DOM</a> elements in managed wrappers to make them available from managed code.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> While there is no provision for calling JavaScript code directly in the 1.1 alpha release, managed-code events can fire JavaScript handlers. A Silverlight instance does not need to have a UI component in order to manipulate the HTML DOM from managed code.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-25"><span>[</span>26<span>]</span></a></sup> It is done by creating an XAML <em>Canvas</em> with both width and height set to zero, and using its code-behind code to modify the <a title="Document Object Model" href="http://mukulverma.wordpress.com/wiki/Document_Object_Model">Document Object Model</a> of the HTML page via the APIs in the <tt>System.Browser</tt> namespace.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-26"><span>[</span>27<span>]</span></a></sup></p>
<p>Silverlight 2 includes Deep Zoom, a technology derived from Microsoft Live Labs Seadragon. It allows users to zoom into, or out of, an image (or a collage of images), with smooth transitions, using the mouse wheel.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-27"><span>[</span>28<span>]</span></a></sup> The images can scale from 2 or 3 megapixels in resolution into the gigapixel range, but the user need not wait for it to be downloaded entirely; rather, Silverlight downloads only the parts in view, optimized for the zoom level being viewed.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-28"><span>[</span>29<span>]</span></a></sup> Beta 2 onwards, Deep Zoom uses an <a title="XML" href="http://mukulverma.wordpress.com/wiki/XML">XML</a>-based file format.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="A Silverlight 2 application using DeepZoom, running in Safari 3.1, on Windows XP" href="http://mukulverma.wordpress.com/wiki/File:DeepZoom.PNG"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:DeepZoom.PNG"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"><span style="display:inline-block;filter:progid;width:1px;height:1px;"> </span></span></a></div>
<p>A Silverlight 2 application using <a title="DeepZoom" href="http://mukulverma.wordpress.com/wiki/DeepZoom">DeepZoom</a>, running in <a title="Safari (web browser)" href="http://mukulverma.wordpress.com/wiki/Safari_(web_browser)">Safari 3.1</a>, on <a title="Windows XP" href="http://mukulverma.wordpress.com/wiki/Windows_XP">Windows XP</a></div>
</div>
</div>
<p>Media features in Silverlight 2 include:<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-29"><span>[</span>30<span>]</span></a></sup></p>
<ul>
<li>WMA Professional support, including WMA 10 Pro low-bitrate modes. However, multi-channel audio content is still down-converted to stereo output.</li>
<li>Content protection powered by Microsoft <a title="PlayReady" href="http://mukulverma.wordpress.com/wiki/PlayReady">PlayReady</a> DRM client.</li>
<li>Server-side playlists in Windows Media Services.</li>
<li>Media Stream Source API.</li>
</ul>
<p>The Media Stream Source is the API responsible for enabling adaptive streaming of media. Adaptive streaming allows the player application to choose the bit rate of the media based on available client bandwidth and CPU resources.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> Media Stream Source allows the developer to specify a custom method of retrieving media data, the only requirement being that the final video and audio streams be presented to Silverlight runtime in a format that Silverlight can decode (VC-1, H.264, WMA, MP3, etc). This allows extensible support for otherwise natively unsupported file formats (i.e. MP4, Matroska, Ogg), protocols (i.e. Shoutcast) and delivery methods (i.e. adaptive streaming, P2P). Microsoft first publicly showcased Media Stream Source by powering the <a title="http://www.nbcolympics.com/video" rel="nofollow" href="http://www.nbcolympics.com/video">NBC Olympics</a> website with their own implementation of adaptive streaming.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-30"><span>[</span>31<span>]</span></a></sup></p>
<div>
<div style="width:182px;"><a title="Third-party open source Chart Control(Visifire) in action." href="http://mukulverma.wordpress.com/wiki/File:Visifire.jpg"><img src="http://upload.wikimedia.org/wikipedia/en/thumb/5/51/Visifire.jpg/180px-Visifire.jpg" alt="" width="180" height="106" /></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:Visifire.jpg"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"> </span></a></div>
<p>Third-party open source Chart Control(<a title="Visifire" href="http://mukulverma.wordpress.com/wiki/Visifire">Visifire</a>) in action.</div>
</div>
</div>
<p>Silverlight 2 also allows limited filesystem access to Silverlight applications.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> It can use the operating system&#8217;s native file dialog box to browse to any file (to which the user has access). The file is sanitized of path information, to prevent the application from getting access to information such as user name, and can be opened only in read-only mode. For local storage of data, Silverlight provides <em>isolated local storage</em> (isostorage),<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> namely, outside the browser cache, in a folder hidden inside the private user-profile folder. It is set to 1 MB per URL by default,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-dthorpe-24"><span>[</span>25<span>]</span></a></sup> but this can be changed by the user.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl2beta2-16"><span>[</span>17<span>]</span></a></sup> Data stored by a Silverlight application in the isostorage is identified by the URL from which it loads, and can be accessed by that application only. All instances of Silverlight share the same isostorage, so all instances of the same Silverlight application can share the saved data, even if they are running on different browsers.</p>
<p>Silverlight CoreCLR uses an attribute-based security model, as opposed to the <a title="Code Access Security" href="http://mukulverma.wordpress.com/wiki/Code_Access_Security">Code Access Security</a> (CAS) model of the desktop version of .NET Framework.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel1-31"><span>[</span>32<span>]</span></a></sup> Assemblies are marked with a security attribute, which can be <em>transparent</em> (<tt>SecurityTransparentAttribute</tt>), <em>safecritical</em> (<tt>SecuritySafeCriticalAttribute</tt>) or <em>critical</em> (<tt>SecurityCriticalAttribute</tt>). Methods in <em>transparent</em> assemblies run with partial trust, and codes within such assemblies cannot call <em>critical</em> methods (methods which can cause system-wide changes); neither can <em>transparent</em> assemblies contain unverifiable code (use the <em>unsafe</em> <a title="C Sharp (programming language)" href="http://mukulverma.wordpress.com/wiki/C_Sharp_(programming_language)">C#</a> keyword or use pointers) or invoke system functions by means of P/Invoke. Code in both <em>critical</em> and <em>safecritical</em> assemblies run with full trust, and are therefore not subject to such limitations. However, a <em>transparent</em> method can call a <em>safecritical</em> method, and a <em>safecritical</em> method can call a <em>critical</em> method. In such a case, the <em>safecritical</em> method will verify that the call is both safe and within the limited rights of the caller; if so, then the <em>safecritical</em> method will <a title="Proxy pattern" href="http://mukulverma.wordpress.com/wiki/Proxy_pattern">proxy</a> the call to the requested <em>critical</em> method. In fact, the IsoStorage APIs are exposed as <em>safecritical</em> methods.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel1-31"><span>[</span>32<span>]</span></a></sup> An assembly whose security attribute is unset is run as a <em>transparent</em> method. Analogous limitations also apply to type-inheritance; namely, in the cases of virtual-method calls and interface-method calls.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel3-32"><span>[</span>33<span>]</span></a></sup> Silverlight assemblies can contain members that are not usable by CoreCLR, as long as they can be processed by the .NET Framework CLR; such methods will not be loaded when the assembly is being executed by CoreCLR.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-33"><span>[</span>34<span>]</span></a></sup></p>
<p>However, only platform code is allowed to be marked as <em>critical</em> or <em>safecritical</em>. The Silverlight runtime ensures that platform assemblies are loaded only from the Silverlight installation directory, and are <a title="Digital signature" href="http://mukulverma.wordpress.com/wiki/Digital_signature">digitally signed</a> by Microsoft. This effectively means that user-application assemblies can only be <em>transparent</em> code (run under partial trust and limited rights).<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel2-34"><span>[</span>35<span>]</span></a></sup> Platform code can be marked with either attribute. The BCL methods of the .NET Framework, which have the <tt>Internet</tt> attribute set, allowing them to be called from untrusted code originating from Internet, are exposed in Silverlight BCL as <em>transparent</em> methods.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-SLSecModel2-34"><span>[</span>35<span>]</span></a></sup></p>
<p><a id="Silverlight_3" name="Silverlight_3"></a></p>
<h3><span>[<a title="Edit section: Silverlight 3" href="http://mukulverma.wordpress.com/w/index.php?title=Microsoft_Silverlight&amp;action=edit&amp;section=5">edit</a>]</span> Silverlight 3</h3>
<div>
<div style="width:182px;"><a title="A Silverlight 3 application, with one instance running in a web browser as well as installed locally. The start menu icon is also shown." href="http://mukulverma.wordpress.com/wiki/File:OfflineSL3.png"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"> </span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:OfflineSL3.png"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"> </span></a></div>
<p>A Silverlight 3 application, with one instance running in a web browser as well as installed locally. The start menu icon is also shown.</p></div>
</div>
</div>
<p>Silverlight 3 was first announced at the IBC 2008 show in Amsterdam on <a title="September 12" href="http://mukulverma.wordpress.com/wiki/September_12">September 12</a>, <a title="2008" href="http://mukulverma.wordpress.com/wiki/2008">2008</a>. It was unveiled at <a title="MIX (Microsoft)" href="http://mukulverma.wordpress.com/wiki/MIX_(Microsoft)">MIX09</a> in <a title="Las Vegas, Nevada" href="http://mukulverma.wordpress.com/wiki/Las_Vegas,_Nevada">Las Vegas</a> on <a title="March 18" href="http://mukulverma.wordpress.com/wiki/March_18">March 18</a>, <a title="2009" href="http://mukulverma.wordpress.com/wiki/2009">2009</a>. A beta version was made available for download the same day. The final version was released <a title="July 9" href="http://mukulverma.wordpress.com/wiki/July_9">July 9</a>, <a title="2009" href="http://mukulverma.wordpress.com/wiki/2009">2009</a>.</p>
<p>Silverlight 3 includes an increased number of controls<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> &#8211; including but not limited to <em>DataGrid</em>, <em>TreeView</em>, various layout panels, <em>DataForm</em> for forms-driven applications and <em>DataPager</em> for viewing paginated data. Some of these controls are from the <a href="http://mukulverma.wordpress.com/wp-admin/#Licensing">Silverlight Toolkit</a>. In addition, Silverlight 3 includes a navigation framework to let Silverlight applications use the <a title="Hyperlink" href="http://mukulverma.wordpress.com/wiki/Hyperlink">hyperlinked</a> navigation model as well as enabling deep-linking (linking directly to specific pages) within Silverlight applications.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup></p>
<p>On the media front, Silverlight 3 supports <a title="AAC" href="http://mukulverma.wordpress.com/wiki/AAC">AAC</a> audio decoding as well as hardware-accelerated H.264 video decoding.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Silverlight 3 also offers <a title="1080p" href="http://mukulverma.wordpress.com/wiki/1080p">1080p</a> smooth streaming.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-36"><span>[</span>37<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-37"><span>[</span>38<span>]</span></a></sup> The native multimedia pipeline is also programmatically exposed, so that other formats can also be supported by third-parties using <a title="Managed code" href="http://mukulverma.wordpress.com/wiki/Managed_code">managed code</a> decoders.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Silverlight 3 supports <em>perspective 3D</em><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> which enables 3D transformations of 2D elements.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> These transformations, as well as many 2D operations like stretches, alpha blending etc are hardware accelerated.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> Custom animations, including transforms and blends, can be created on Silverlight elements using HLSL to make use of <a title="Pixel shader" href="http://mukulverma.wordpress.com/wiki/Pixel_shader">pixel shaders</a>.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> A <a title="Bitmap" href="http://mukulverma.wordpress.com/wiki/Bitmap">Bitmap</a> API is provided to let Silverlight 3 applications manipulate bitmaps.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> Silverlight now uses the GPU to accelerate the composition of <em>Visual Trees</em> (like <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation">WPF</a>, Silverlight elements correspond to <em>Visual</em> elements, which, when coupled with the layout information, forms a <em>Composition Tree</em> or <em>Visual Tree</em> which is then rendered to form the final display; see <a title="Windows Presentation Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Presentation_Foundation#Architecture">WPF architecture</a>).<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Visual trees can now be cached;<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> this increases performance in cases like transforms, which creates lots of throw-away intermediate states, by not making the state transitions on the main Visual tree. Silverlight 3 now also supports <a title="ClearType" href="http://mukulverma.wordpress.com/wiki/ClearType">ClearType</a> text rendering.</p>
<div>
<div style="width:182px;"><a title="A Silverlight 3 application demonstrating local file access." href="http://mukulverma.wordpress.com/wiki/File:DesktopSL3.png"><span style="border-right:#ccc 1px solid;border-top:#ccc 1px solid;display:inline-block;font-size:0;background-image:none;vertical-align:middle;border-left:#ccc 1px solid;cursor:hand;border-bottom:#ccc 1px solid;"> </span></a></p>
<div>
<div><a title="Enlarge" href="http://mukulverma.wordpress.com/wiki/File:DesktopSL3.png"><span style="display:inline-block;font-size:0;background-image:none;vertical-align:middle;cursor:hand;border-color:#0000ff;border-width:2px;"> </span></a></div>
<p>A Silverlight 3 application demonstrating local file access.</p></div>
</div>
</div>
<p>UI elements in Silverlight 3 supports <em>element-to-element</em> binding &#8211; which allows one element to be bound to the state of another element,<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> as well as a validation mechanism for data binding.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Unlike Silverlight 2, which allowed the applications to save files only to the local isostorage, Silverlight 3 applications can save to any location on the file system via the system <em>Save File</em> dialog. However, the path where the file is saved will still be hidden from the Silverlight application.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Any external assemblies used by Silverlight applications are cached too so that they need not be redownloaded for subsequent instantiations of the application.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup></p>
<p>Silverlight 3 also includes a <em>LocalConnection</em> API to communicate (using a <a title="Named pipe" href="http://mukulverma.wordpress.com/wiki/Named_pipe">named pipe</a> style model) among multiple running applications on the same machine, irrespective of the browser <sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup><sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-whatsnewsl3-38"><span>[</span>39<span>]</span></a></sup> and can monitor for network connectivity events.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Silverlight 3 can optionally use <a title="Binary XML" href="http://mukulverma.wordpress.com/wiki/Binary_XML">Binary XML</a> to communicate with <a title="Windows Communication Foundation" href="http://mukulverma.wordpress.com/wiki/Windows_Communication_Foundation">WCF</a> services.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup></p>
<p>Silverlight 3 supports <em>Out-of-Browser experiences</em>, i.e., Silverlight applications can be installed to the system for offline access (provided the application <a title="Manifest (.NET Framework)" href="http://mukulverma.wordpress.com/wiki/Manifest_(.NET_Framework)">manifest</a> is designed to allow local installation) where they run outside the browser. They are launched using the Start Menu or desktop shortcuts, and run without the browser window.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3guide-35"><span>[</span>36<span>]</span></a></sup> Applications can check whether they are running inside a browser or not.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-creatingoob-39"><span>[</span>40<span>]</span></a></sup> When running out of browser, HTML interop is disabled. In addition, access to the Function Keys is enabled.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3notes-40"><span>[</span>41<span>]</span></a></sup> Locally installed Silverlight applications still run in a sandbox.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-sl3notes-40"><span>[</span>41<span>]</span></a></sup></p>
<p>Installed Silverlight 3 applications automatically check for updates asynchronously on every launch and updates are automatically installed.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-41"><span>[</span>42<span>]</span></a></sup> Running instances of the applications are informed when updates are available.<sup><a href="http://mukulverma.wordpress.com/wp-admin/#cite_note-creatingoob-39"><span>[</span>40<span>]</span></a></sup></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mukulverma.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mukulverma.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mukulverma.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mukulverma.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mukulverma.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mukulverma.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mukulverma.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mukulverma.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mukulverma.wordpress.com&amp;blog=7254403&amp;post=44&amp;subd=mukulverma&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mukulverma.wordpress.com/2009/08/28/microsoft-silverlight/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc478139fafcc73fd83b59b11915b2a5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mukulverma</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/en/thumb/5/51/Visifire.jpg/180px-Visifire.jpg" medium="image" />

		<media:content url="http://upload.wikimedia.org/wikipedia/en/thumb/5/51/Visifire.jpg/180px-Visifire.jpg" medium="image" />
	</item>
	</channel>
</rss>
