Jump to content

Microsoft Silverlight: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Deleted space dividing 1 word into 2. Links: removed needless piping in 1, corrected 1.
Kypr8 (talk | contribs)
(One intermediate revision by the same user not shown)
Line 431: Line 431:
==External links==
==External links==
*{{Official|http://www.silverlight.net}}
*{{Official|http://www.silverlight.net}}
*[http://msdn.microsoft.com/en-au/silverlight/default.aspx Silverlight Developer Centre]
<!-- DO NOT ADD ANY OTHER EXTERNAL LINKS -->
<!-- DO NOT ADD ANY OTHER EXTERNAL LINKS -->



Revision as of 03:35, 3 November 2010

Microsoft Silverlight
Developer(s)Microsoft Corporation
Initial releaseApril 2007
Stable release5.1.50918.0[1] (January 15, 2019; 5 years ago (2019-01-15)) [±]
Preview releaseNone [±]
Written inCombination of C++ and C#
Operating systemcross-platform
(Microsoft Windows, Linux,[2] Mac OS X, Symbian OS[3])
TypeWeb Application framework
LicenseMS-EULA, with MS-PL components
WebsiteMicrosoft Silverlight
silverlight.net

Microsoft Silverlight is a web application framework that integrates multimedia, graphics, animation and interactivity into a single runtime environment. Initially released as a video streaming plug-in, later versions brought additional interactivity features and support for CLI languages and development tools. The current version 4 was released in April 2010.[4] Features of Silverlight are similar to those in Adobe Flash.

It is compatible with multiple web browsers used on Microsoft Windows and Mac OS X operating systems. Mobile devices, starting with Windows Phone 7 and Symbian (Series 60) phones, are likely to become supported in 2010.[5][6] A free software implementation named Moonlight, developed by Novell in cooperation with Microsoft, is available to bring most Silverlight functionality to Linux, FreeBSD and other open source platforms.

Overview

Silverlight provides a retained mode graphics system similar to Windows Presentation Foundation, and integrates multimedia, graphics, animations and interactivity into a single runtime environment. In Silverlight applications, user interfaces are declared in Extensible Application Markup Language (XAML) and programmed using a subset of the .NET Framework. XAML can be used for marking up the vector graphics and animations. Silverlight can also be used to create Windows Sidebar gadgets for Windows Vista.[7]

Silverlight supports Windows Media Video (WMV), Windows Media Audio (WMA) and MPEG Layer III (MP3) media content[8] across all supported browsers without requiring Windows Media Player, the Windows Media Player ActiveX control or Windows Media browser plug-ins. Because Windows Media Video 9 is an implementation of the Society of Motion Picture and Television Engineers (SMPTE) VC-1 standard, Silverlight also supports VC-1 video, though still only in an Advanced Systems Format (ASF) container format. Furthermore, the Software license agreement says VC-1 is only licensed for the "personal and non-commercial use of a consumer".[9] Silverlight, since version 3, supports the playback of H.264 video.[10] Silverlight makes it possible to dynamically load Extensible Markup Language (XML) content that can be manipulated through a Document Object Model (DOM) interface, a technique that is consistent with conventional Ajax techniques. Silverlight exposes a Downloader object which can be used to download content, like scripts, media assets or other data, as may be required by the application.[11] With version 2, the programming logic can be written in any .NET language, including some derivatives of common dynamic programming languages like IronRuby and IronPython.[12]

Versions

Silverlight 1.0

File:SilverlightGame.PNG
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

Silverlight 1.0, which was developed under the codename Windows Presentation Foundation/Everywhere (WPF/E) and released in 2007, consists of the core presentation framework, which is responsible for the user interface (UI), interactivity and user input, basic UI controls, graphics and animation, media playback, Digital rights management (DRM), and DOM integration.[13] It is made up of the following components:

  • Input—handling input from devices like keyboard, mouse, stylus etc.
  • UI core—managing rendering of bitmap images (including compressed raster images like Joint Photographic Experts Group (JPEG)), vector graphics, text and animations.
  • Media—playback of MP3, WMA Standard, WMV7, WMV8 and WMV9/VC-1 streams.
  • XAML—to allow the UI layout to be created using XAML markup language.

A Silverlight application starts by invoking the Silverlight control from the HyperText Markup Language (HTML) page, which then loads up a XAML file. The XAML file contains a Canvas object, which acts as a container 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 Event triggers; 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 Events which can be handled by custom scripts.[14]

Programmatic manipulation of the UI is achieved by using scripting languages to modify the Document Object Model of the Silverlight Canvas object.[13] To facilitate this, Silverlight exposes a DOM application programming interface (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 Canvas for user input. Support for data formats is limited to XML and JavaScript Object Notation (JSON) only.[13]

Silverlight 2

File:SilverLight.PNG
A Silverlight 2 application hosted in Internet Explorer. Version 2 brings improved interactivity and support for some native .NET languages and development tools

Silverlight 2 (previously referred to as version 1.1)[15] includes a version of the .NET Framework, implementing the same full Common Language Runtime (CLR) version as .NET Framework 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.[citation needed]) Unlike the CLR included with .NET Framework version 3.5 and earlier, but like .NET Framework 4.0, multiple instances of the CoreCLR included in Silverlight can be hosted in one process.[16] With this, the XAML layout markup file (.xaml 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 .NET assemblies which are then compressed using ZIP and stored in a .xap file.[17]

Silverlight ships with a lightweight class library which includes features such as extensible controls, XML Web Services, networking components and Language Integrated Query (LINQ) APIs. This class library is a subset of, and is considerably smaller than, .NET Framework's Base Class Library (BCL). Silverlight code runs in a sandbox, thus preventing the invocation of platform APIs.[18]

Silverlight 2 Architecture

The version of .NET Framework in Silverlight adds[13] a subset of Windows Presentation Foundation (WPF) UI-programming model, including support for shapes, documents, media and animation objects of WPF. Beta 2 onwards,[19] it ships with more than 30 UI controls[20] (including TextBox, CheckBox, Slider, ScrollViewer, and Calendar controls),[21] for two-way databinding support, automated layout management (by means of StackPanel, Grid, etc.)[21] as well as data-manipulation controls, such as DataGrid[15][22] and ListBox.[21] UI controls are skinnable using a template-based approach.[21] Third-party libraries of expanded UI-control sets are also available.[23]

File:SLSkin.PNG
A set of Silverlight controls rendered with different skins

The included BCL provides classes for collections, reflection, regular expressions, string handling and data access. It also supports LINQ, with full support for LINQ to Objects and expression trees. Almost all of the System.Linq and System.Linq.Expression namespaces are exposed. It also supports serialization of objects, for data persistence. Silverlight can handle data in Really Simple Syndication (RSS) or JSON format, in addition to XML. The BCL provides enhanced support for working with XML data, including the XMLReader and XMLWriter classes. Silverlight 2 also supports asynchronous programming via the use of the threading libraries.[22]

Silverlight also includes classes for data access over XML-based Web services, Representational State Transfer (REST), Windows Communication Foundation (WCF) Services and ADO.NET Data Services.[19] The networking support in Silverlight can be used by Silverlight applications to communicate using Hypertext Transfer Protocol (HTTP), or at the lower socket level. Cross-domain communication is supported.[20] Silverlight uses an XML-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 Adobe Flash Cross-domain policy file format.[24] Silverlight sockets can only initiate a connection; they cannot listen for connections.[25]

Silverlight 2 includes[19] the Dynamic Language Runtime (DLR) which allows dynamic compilation and execution of dynamic (scripting) languages. Compilers for the languages based on the DLR (including IronPython and IronRuby) are [to be?] packaged with the Dynamic Languages application in the .xap package.[26] The Dynamic Languages software development kit (SDK) includes a web server named Chiron, that can dynamically package all the dependencies for the Dynamic Languages application and serve it to the browser.[26] The first upcoming languages written for the DLR are Managed JScript, IronPython 2.0, and IronRuby. Microsoft also plans to build Visual Basic .NET 10.0 (VBx) 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 ECMAScript 3.0 specification, and Microsoft asserts that it is 250 times faster than interpreted JScript.[22]

File:SilverLightMS.PNG
A Python interpreter in Silverlight 2 hosted in Mozilla Firefox

With the integration of .NET Framework, Silverlight also allows HTML-managed code interaction, which enables the manipulation of HTML DOM elements from managed code,[13] and permits JavaScript code to call managed code and use objects instantiated by managed code. Silverlight encloses JavaScript objects and DOM elements in managed wrappers to make them available from managed code.[27] 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.[28] It is done by creating a XAML Canvas with both width and height set to zero, and using its code-behind code to modify the Document Object Model of the HTML page via the APIs in the System.Browser namespace.[29]

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.[30] 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.[31] Beta 2 onwards, Deep Zoom uses an XML-based file format.[19]

File:DeepZoom.PNG
A Silverlight 2 application using DeepZoom, running in Safari 3.1, on Windows XP

Media features in Silverlight 2 include:[32]

  • WMA Professional support, including WMA 10 Pro low-bitrate modes. However, multi-channel audio content is still down-converted to stereo output.
  • Content protection powered by Microsoft PlayReady DRM client.
  • Server-side playlists in Windows Media Services.
  • Media Stream Source API.

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 central processing unit (CPU) resources.[19] 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, peer-to-peer (P2P)). Microsoft first publicly showcased Media Stream Source by powering the NBC Olympics website with their own implementation of adaptive streaming.[33]

Silverlight 2 also allows limited filesystem access to Silverlight applications.[27] It can use the operating system'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 isolated local storage (isostorage),[27] 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,[27] but this can be changed by the user.[19] 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.

Silverlight CoreCLR uses an attribute-based security model, as opposed to the Code Access Security (CAS) model of the desktop version of .NET Framework.[34] Assemblies are marked with a security attribute, which can be transparent (SecurityTransparentAttribute), safecritical (SecuritySafeCriticalAttribute) or critical (SecurityCriticalAttribute). Methods in transparent assemblies run with partial trust, and codes within such assemblies cannot call critical methods (methods which can cause system-wide changes); neither can transparent assemblies contain unverifiable code (use the unsafe C# keyword or use pointers) or invoke system functions by means of P/Invoke. Code in both critical and safecritical assemblies run with full trust, and are therefore not subject to such limitations. However, a transparent method can call a safecritical method, and a safecritical method can call a critical method. In such a case, the safecritical method will verify that the call is both safe and within the limited rights of the caller; if so, then the safecritical method will proxy the call to the requested critical method. In fact, the IsoStorage APIs are exposed as safecritical methods.[34] An assembly whose security attribute is unset is run as a transparent method. Analogous limitations also apply to type-inheritance; namely, in the cases of virtual-method calls and interface-method calls.[35] 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.[36]

However, only platform code is allowed to be marked as critical or safecritical. The Silverlight runtime ensures that platform assemblies are loaded only from the Silverlight installation directory, and are digitally signed by Microsoft. This effectively means that user-application assemblies can only be transparent code (run under partial trust and limited rights).[37] Platform code can be marked with either attribute. The BCL methods of the .NET Framework, which have the Internet attribute set, allowing them to be called from untrusted code originating from Internet, are exposed in Silverlight BCL as transparent methods.[37]

Silverlight 3

File:OfflineSL3.png
A Silverlight 3 application, with one instance running in Google Chrome as well as installed locally. The start menu icon is also shown.

Silverlight 3 was announced at the International Broadcasting Convention (IBC) 2008 show in Amsterdam on September 12, 2008. It was unveiled at MIX09 in Las Vegas on March 18, 2009.[38] A beta version was made available for download the same day. The final version was released July 9, 2009.

Silverlight 3 includes an increased number of controls[39]—including but not limited to DataGrid, TreeView, various layout panels, DataForm for forms-driven applications and DataPager for viewing paginated data. Some of these controls are from the Silverlight Toolkit. In addition, Silverlight 3 includes a navigation framework to let Silverlight applications use the hyperlinked navigation model as well as enabling deep-linking (linking directly to specific pages) within Silverlight applications.[39]

On the media front, Silverlight 3 supports Advanced Audio Coding (AAC) audio decoding as well as hardware-accelerated H.264 video decoding.[39] Silverlight 3 also offers 1080p smooth streaming.[40][41] The native multimedia pipeline is also programmatically exposed, so that other formats can also be supported by third-parties using managed code decoders.[39] Silverlight 3 supports perspective 3D[39] which enables 3D transformations of 2D elements.[42] These transformations, as well as many 2D operations like stretches, alpha blending etc. are hardware accelerated.[42] Custom animations, including transforms and blends, can be created on Silverlight elements using High Level Shader Language (HLSL) to make use of pixel shaders.[42] A bitmap API is provided to let Silverlight 3 applications manipulate bitmaps.[42] Silverlight now uses the graphics processing unit (GPU) to accelerate the composition of Visual Trees (like WPF, Silverlight elements correspond to Visual elements, which, when coupled with the layout information, forms a Composition Tree or Visual Tree which is then rendered to form the final display; see WPF architecture).[39] Visual trees can now be cached;[39] 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 ClearType text rendering.

File:DesktopSL3.png
A Silverlight 3 application demonstrating local file access.

UI elements in Silverlight 3 supports element-to-element binding—which allows one element to be bound to the state of another element,[42] as well as a validation mechanism for data binding.[39] 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 Save File dialog. However, the path where the file is saved will still be hidden from the Silverlight application.[39] Any external assemblies used by Silverlight applications are cached too so that they need not be redownloaded for subsequent instantiations of the application.[39]

Silverlight 3 also includes a LocalConnection API to communicate (using a named pipe style model) among multiple running applications on the same machine, irrespective of the browser [39][42] and can monitor for network connectivity events.[39] Silverlight 3 can optionally use Binary XML to communicate with WCF services.[39]

Silverlight 3 supports Out-of-Browser experiences, i.e., Silverlight applications can be installed to the system for offline access (provided the application manifest 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.[39] Applications can check whether they are running inside a browser or not.[43] When running outside of a browser, HTML interop is disabled. In addition, access to the Function Keys is enabled.[44] Locally installed Silverlight applications still run in a sandbox.[44]

Installed Silverlight 3 applications automatically check for updates asynchronously on every launch and updates are automatically installed.[45] Running instances of the applications are informed when updates are available.[43]

Silverlight 3 is now listed as a requirement for eFiling income tax returns for free in the US.[46]

Silverlight 4

On November 18, 2009, at the Professional Developers Conference in Los Angeles, Microsoft Corporation unveiled a Beta version of Silverlight 4.[47] The final version was released on April 15, 2010 (along with Silverlight 4 tools for developers). An update to Silverlight (4.0.50524.0) was released on 3 June 2010. New features in Silverlight 4 include:

  • Support for Google's Chrome browser.
  • Web cam and microphone support.
  • Printing support.
  • Improved mouse support including right button support and mouse wheel support.
  • New notification support to display messages to end users.
  • New and enhanced controls such as a RichTextBox and an enhanced DataGrid control.
  • New support for implicit theming of controls.
  • New hosted browser support for rendering HTML inside Silverlight.
  • WCF data layer enhancements.
  • Localization enhancements with bi-directional text.
  • Support for Managed Extensibility Framework.
  • Enhanced data binding support.
  • Enhanced animation effects.
  • Clipboard and drag and drop support.
  • Deep Zoom performance enhancements.
  • WCF Rich Internet application (RIA) Services.[48]
  • Content protection for H.264 and support for playing offline DRM protected media.

Additionally, the following features are provided to out-of-browser (locally installed) Silverlight applications that have been explicitly granted "trusted" status:

  • Full keyboard access while running in full screen mode.
  • Programmatic access to a user's local document folder.
  • Support for local Component Object Model (COM) objects.

Release history

Version name Version number Release date
1.0 Community Technology Preview (CTP) 1.0.? 2006–12
1.0 Release to Web (RTW) 1.0.20816 2007-09-05
2 Pre-Release
(As 1.1 Alpha Refresh)
1.1.20926.0 2007-09-05
1.0 Service release 1.0.21115.0 2007-11-20
1.0 Service release 1.0.30109.0 2008-01-15
2 Beta 1[49] 2.0.30226.2 2008-03-05
1.0 Service release[50] 1.0.30401.0 2008-04-08
2 Beta 2 2.0.30523.6 2008-06-06[51]
2.0.30523.8 2008-07-16
1.0 Service release 1.0.30715.0 2008-07-27
2 Release Candidate Zero (RC0) 2.0.30523.9 2008-09-25
2 RTW[52] 2.0.31005.0 2008-10-14[53]
2 General Distribution Release (GDR) 1 2.0.40115.0 2009-02-19
3 Beta 3.0.40307.0 2009-03-18
3 RTW 3.0.40624.0 2009-07-09
3 GDR 1 3.0.40723.0 2009-07-28
3 GDR 2 3.0.40818.0 2009-09-01
4 Beta 1 4.0.41108.0 2009-11-18
3 GDR 3 3.0.50106.0 2010-01-20
4 RC 4.0.50303.0 2010-03-15
4 RTW 4.0.50401.0 2010-04-15[54]
4 GDR 0 4.0.50524.0 2010-06-03
3 Security Update 3.0.50611.0 2010-08-10
4 GDR 1 4.0.50826.0 2010-09-01
4 GDR 2 4.0.50917.0 2010-09-28[55]

Compatibility

Operating systems and web browsers

The following table presents an availability and compatibility matrix of Silverlight versions for various operating systems and web browsers.

OS/browser IE 6 SP1 IE 6 SV1 (SP2) IE 7/IE 8 Firefox 3 SeaMonkey Safari Opera Google Chrome skyfire
Windows Vista/Windows 7 N/A N/A 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0 1.0, 2.0; via NPAPI Unofficially[56][57] 2.0, 3.0, 4.0
Windows Server 2008 R2 N/A N/A 1.0, 2.0, 3.0, 4.0
(IE8 Only)
N/A 1.0, 2.0 1.0, 2.0; via NPAPI Unofficially[56][57] 2.0, 3.0, 4.0
Windows Server 2008 N/A N/A 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0 1.0, 2.0; via NPAPI Unofficially[56][57] 2.0, 3.0, 4.0
Windows XP/2003/Home Server 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 1.0, 2.0, 3.0, 4.0 2.0 Unofficially 1.0, 2.0; via NPAPI Unofficially[56][57] 2.0, 3.0, 4.0
Windows 2000 (KB891861 required) 2.0, 3.0, 4.0 N/A N/A 2.0 Unofficially[58] N/A 2.0; via NPAPI Planned[56] N/A
Windows Phone 7 N/A N/A Planned [59] N/A N/A N/A N/A N/A
S60 Planned[citation needed] N/A N/A N/A N/A N/A N/A N/A 1.5.0.15495
FreeBSD N/A N/A N/A 2.0 N/A N/A N/A N/A
Linux N/A N/A N/A N/A N/A N/A N/A N/A
Mac OS 10.4/10.5 PowerPC N/A N/A N/A 1.0 N/A 1.0 Planned[56] N/A
Mac OS 10.4/10.5 Intel N/A N/A N/A 1.0, 2.0, 3.0, 4.0 N/A 1.0, 2.0, 3.0, 4.0 Planned[56] 3.0, 4.0 Unofficially
  • Opera will be officially supported with future builds.[56] Unofficially, Silverlight support is already available to Opera via a hack.[57] Starting from Silverlight 2, hacks are no longer required.[60]
  • On Linux^ and FreeBSD, the functionality will be made available via the compatible third-party Moonlight runtime.[61][62] Moonlight will be available for the major Linux distributions, with support for Firefox, Konqueror, and Opera browsers, provided it was obtained through Novell.[63] Miguel de Icaza has expressed an interest in working with developers from other operating systems (BSD, Solaris) and other browsers (Konqueror, WebKit and Opera) to ensure that Moonlight works fine on their systems.[64] Availability of Moonlight version 1.0 for FreeBSD was announced in March 2009,[65] but has been since been reported actually not to work.[66]
  • Silverlight for Mobile will be used to run Silverlight content on mobile devices. The first Community Technology Preview (CTP) for Windows Mobile 6 was expected in the 2nd Quarter of 2008, but it still not officially announced. Microsoft has stopped focusing on bringing Silverlight to Windows Mobile 6.x and is planning to include it in Windows Mobile 7.[59] Nokia has announced plans to make Silverlight for Mobile available for S60 on Symbian OS, as well as for Series 40 devices and Nokia Internet tablets.[67] Silverlight for Mobile will initially support Silverlight 2 content and .NET languages.[5]
  • Silverlight requires an x86 processor with Streaming SIMD Extensions (SSE) support. Supported processors include the Intel Pentium III and up, and the AMD Athlon XP and up. Newer AMD Duron models are also supported.
  • Additional platforms are being considered as well.[68]
  • On Apple Inc.'s Download website, contributed by Microsoft, the system requirement states 800 MHz PowerPC G4 or onwards; however as the page specifies, it applies to Silverlight 1.0 only.[69]

Development tools

File:VSSilverlight.PNG
A Silverlight application being edited in Microsoft Visual Studio.

Silverlight applications can be written in any .NET programming language. As such, any development tools which can be used with .NET languages can work with Silverlight, provided they can target the Silverlight CoreCLR for hosting the application, instead of the .NET Framework CLR. Microsoft has positioned Microsoft Expression Blend versions 2 and 2 SP1 for designing the UI of Silverlight 1.0 and 2 applications respectively. Visual Studio 2008 can be used to develop and debug Silverlight applications. To create Silverlight projects and let the compiler target CoreCLR, Visual Studio 2008 requires the Silverlight Tools for Visual Studio.[70]

A Silverlight control is a ZIP format file with extension .XAP containing a list of one or more .NET managed assemblies (.DLL files) along with the AppManifest.XAML file containing this list along with the entry point (class and assembly). It can be hosted in any HTML file using an object tag, for example: <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"><param name="source" value="MySilverLightControl.xap"/></object>

A Silverlight project contains the Silverlight.js and CreateSilverlight.js files which initializes the Silverlight plug-in for use in HTML pages, a XAML file for the UI, and code-behind files for the application code. Silverlight applications are debugged in a manner similar to ASP.NET applications. Visual Studio's CLR Remote Cross Platform Debugging feature can be used to debug Silverlight applications running on a different platform as well.[71]

In conjunction with the release of Silverlight 2, Eclipse was added as a development tool option.[72]

Licensing

An April, 2007 PC World report suggested that Microsoft intended to release certain parts of Silverlight source code as open source software,[73] but a week later Sam Ramji, director of platform technology strategy at Microsoft, contradicted the rumors by confirming that the company had no plans to open Silverlight.[74] Some controls that ship with Silverlight are available under the Microsoft Public License as a part of a separate project known as the Silverlight Toolkit.[75]

Silverlight's proprietary nature is a concern to competition since it may harm the open nature of the World Wide Web. Advocates of free software are also concerned Silverlight could be another example of Microsoft's embrace, extend and extinguish strategy.[76] Both Microsoft Silverlight and Adobe Flash are proprietary.[77] Flash's file formats are publicly documented standards,[78][79] as are Silverlight's.[80][81] However, the communication between a Flash player and a server is done by the proprietary protocol RTMP. Both Flash and Silverlight use patent-encumbered audio and video codecs.

Mono Moonlight implementation

The Mono team is currently developing Moonlight, a free and open-source implementation of both the Silverlight 1.0 and 2 runtimes.[82]

The project is officially supported by Microsoft who,[61] under an agreement with Novell, has made additional specifications, access to the Silverlight Base Class Library APIs, binary codecs and test cases available to the Mono team,[62] none of which are available to other members of the public.[83]

The "covenant" under which Novell has been granted this exclusive access also specifies conditions that are incompatible with the licensing that covers most other free and open source software. As examples, it specifically requires that the software must have been "obtained directly from Novell or through an Intermediate Recipient" and that it must be "not licensed under GPLv3 [the GNU General Public License version 3] or a Similar License".[63] Some free software proponents, Groklaw, have criticized the covenant,[84] but many open source developers, including Linus Torvalds, have been critical of the GPLv3 license and prefer alternatives.[85] Novell, Inc. is enthusiastic about adding Silverlight to Linux.[86]

Silverlight has received criticism for not living up to its cross-platform operating system compatibility promises, especially on Linux systems compared to its extensive support on Apple and Microsoft desktops for Internet Explorer, Firefox, and Chrome. Even though Microsoft is officially collaborating on the Moonlight project, Bruce Chizen, who was CEO of Adobe Systems at the time, which sells the competing proprietary Flash platform, questioned "the commitment of Microsoft to keep the Silverlight platform compatible with other OS besides Windows".[87] His concerns are based on "examples from history" where, he argues, Microsoft has launched products with promises of ongoing cross-platform compatibility that no longer apply, for example Internet Explorer for UNIX and Windows Media Player for Mac.

Relationship to existing Web standards

California and several other U.S. states also have asked a District Judge to extend most of Microsoft's antitrust case settlement for another five years,[88] citing "a number of concerns, including the fear that Microsoft could use the next version of Windows to 'tilt the playing field' toward Silverlight, its new Adobe Flash competitor," says a Seattle Post-Intelligencer article. The final judgment on the motion extended the settlement two years, to November 2009, but for reasons unrelated to Silverlight.[89] In Windows 7 the Silverlight Web browser plug-in is not installed automatically, but is a downloadable optional update through Windows update.[90]

Microsoft has been criticized for not using the Scalable Vector Graphics (SVG) standard for Silverlight, which, according to Ryan Paul of Ars Technica, is consistent with Microsoft's ignoring of open standards in other products, as well.[91] However, according to David Betz, a .NET specialist and Microsoft Most Valuable Professional (MVP), while it "seems to some to be a valid criticism and a good point to some of the web standards world, it is absolutely groundless and carries no weight." Microsoft would have had to alter the SVG specification in order to integrate it with .NET. Consequently, he thinks the "choice by Microsoft to use XAML over SVG, served to retain the SVG standard by not adding proprietary technology [to SVG]".[92]

Silverlight SEO (Search Engine Optimization)

Silverlight uses the ZIP file format as the container format for Silverlight apps (see above), and the files contained within a Silverlight applet can therefore be accessed by any standard ZIP reader. Silverlight content is designed and stored in the human-readable XAML format, which is based on XML, the text-based standard that derives from the same markup language as HTML. All text defined in an XAML file, such as paragraphs of text or button captions, is in standard Unicode format, and can be parsed as plain text by an XML reader or a generalized text parsing utility. Therefore, any ZIP-aware search engine capable of parsing XML or arbitrarily decorated plaintext is capable of processing Silverlight content. However, as with any site, including JavaScript-driven sites, content that is generated by code may not be accessible for SEO.

Silverlight's ZIP and XML standards-based accessibility starkly contrasts with that of Flash, which uses specialized non-standardized formats for which specifications are only available from the vendor (Adobe), and where search engines such as Google are dependent on proprietary technologies to interact with Flash content.[93]

References

  1. ^ "Microsoft Silverlight Release History". Microsoft Corporation. Retrieved 15 January 2019.
  2. ^ using Novell Moonlight
  3. ^ http://on10.net/blogs/sarahintampa/Silverlight-for-Symbian-Plugin-Now-Available/http://on10.net/blogs/sarahintampa/Silverlight-for-Symbian-Plugin-Now-Available/
  4. ^ "DevConnections - Visual Studio 2010 and Silverlight 4 Launch Event". Penton Media.
  5. ^ a b "Silverlight for Mobile". Silverlight.net. Retrieved 2008-03-09.
  6. ^ "Silverlight Mobile rumored for Windows Mobile 7". www.wmexperts.com. Retrieved 2009-05-05.
  7. ^ Sterling, Charles. "Writing a Windows Sidebar Gadget in Silverlight dead simple". MSDN Blogs. Retrieved 2008-03-09.
  8. ^ Silverlight FAQs
  9. ^ "Microsoft Silverlight 1.0 beta license". Retrieved 2007-06-14. [dead link]
  10. ^ "Discussed on Microsoft's web site in Q&A with Scott Guthrie".
  11. ^ "Using a Downloader Object". Retrieved 2007-05-25.
  12. ^ Mono developers to bring Silverlight to Linux
  13. ^ a b c d e "Silverlight architecture". Retrieved 2007-06-05.
  14. ^ "Silverlight 1.0 Beta QuickStart". Retrieved 2007-06-05.
  15. ^ a b ".NET Web-Product Roadmap (ASP.NET, Silverlight, IIS7)". Retrieved 2007-11-30.
  16. ^ "Side by Side In Process CLRs Start with Silverlight". Retrieved 2007-05-12.
  17. ^ Guthrie, Scott. "Silverlight Tutorial Part 1: Creating "Hello World" with Silverlight 2 and Visual Studio 2008". Retrieved 2008-02-24.
  18. ^ "Microsoft Polishes the Silverlight". Retrieved 2007-05-02.
  19. ^ a b c d e f Silverlight SDK Team. "What's new in Silverlight 2 Beta 2?". MSDN Blogs. Retrieved 2008-07-06.
  20. ^ a b Guthrie, Scott. "Silverlight 2 Beta2 Released". Retrieved 2008-07-06.
  21. ^ a b c d Guthrie, Scott. "First Look at Silverlight 2". Retrieved 2008-02-24.
  22. ^ a b c "Silverlight". Retrieved 2007-05-12.
  23. ^ Sneath, Tim. "Some Great Silverlight Controls". Retrieved 2007-06-30.
  24. ^ Guthrie, Scott. "Silverlight Tutorial Part 3: Using Networking to Retrieve Data and Populate a DataGrid". Retrieved 2008-02-24.
  25. ^ Schwarz, Michael. "Silverlight Socket Comments". Retrieved 2008-03-12.
  26. ^ a b Lam, John. "Dynamic Silverlight, Part 1: Hello World". MSDN Blogs. Retrieved 2008-03-12.
  27. ^ a b c d Thorpe, Danny (2007-05-02). "MIX07: Extending the Browser Programming Model with Silverlight". Retrieved 2007-05-03.
  28. ^ Sneath, Tim (2007-06-07). "Silverlight Isn't Just about Presentation". Retrieved 2007-06-13.
  29. ^ Sneath, Tim (2007-06-13). "Programming HTML with C#". Retrieved 2007-06-30.
  30. ^ "Silverlight 2 and Deep Zoom – Get ready to Build Your Own Photozooming collections". LiveSide. Retrieved 2008-03-06.
  31. ^ "Silverlight 2 'Deep Zoom'". Microsoft Live Labs. Retrieved 2008-03-09.
  32. ^ Waggoner, Ben. "Media Features in Silverlight 2 Beta 2". Retrieved 2008-08-29.
  33. ^ Zambelli, Alex. "An Inside Look at NBC Olympics Video Player". Retrieved 2008-08-29.
  34. ^ a b Farkas, Shawn. "The Silverlight Security Model". Retrieved 2007-06-08.
  35. ^ Farkas, Shawn. "Silverlight Security III: Inheritance". Retrieved 2007-06-08.
  36. ^ "How to: Explore Silverlight Assemblies with the Visual Studio Object Browser". Retrieved 2007-06-08.
  37. ^ a b Farkas, Shawn. "Silverlight Security II: What Makes a Method Critical?". Retrieved 2007-06-08.
  38. ^ "[[S. Somasegar]] launches Silverlight 3". {{cite web}}: URL–wikilink conflict (help)
  39. ^ a b c d e f g h i j k l m n Heuer, Tim. "A guide to Silverlight 3 new features". Retrieved 2009-03-23.
  40. ^ Experience IIS Smooth Streaming 1080p, Microsoft IIS
  41. ^ Edwards, Andru (2009-07-10). "Microsoft Silverlight 3 now available, takes aim at Flash, HD streaming".
  42. ^ a b c d e f Hoffman, Kevin. "What's New in Silverlight 3?". Retrieved 2009-03-23.
  43. ^ a b Hoffman, Kevin. "Creating an Out-of-Browser Application in Silverlight 3". Retrieved 2009-03-23.
  44. ^ a b Harsh, Mike. "Silverlight 3 Out of the Browser". Retrieved 2009-03-23.
  45. ^ Heuer, Tim. "Silverlight 3 Out-of-browser Update Model". Retrieved 2009-03-23.
  46. ^ https://www.freefilefillableforms.org/FFA/FAQs.htm
  47. ^ "Silverlight 4 Beta What's New". Retrieved 2010-01-21.
  48. ^ WCF RIA Services, Microsoft Silverlight.net
  49. ^ "Quick update on Silverlight". Retrieved 2007-11-30.
  50. ^ MSFN – Microsoft rolls out Silverlight maintenance release
  51. ^ Protalinski, Emil. "Silverlight 2 Beta 2 arrives on time, available now". Ars Technica. Retrieved 2008-06-06.
  52. ^ Knor, Max. "Silverlight 2 Released". blogs.msdn.com. Retrieved 2008-10-21.
  53. ^ "Microsoft Releases Silverlight 2 On Tuesday, Oct. 14". LiveSide. Retrieved 2008-10-13.
  54. ^ name="Business-Ready Silverlight 4 Ships April 15">"Business-Ready Silverlight 4 Ships April 15".
  55. ^ name="Description of the update for Microsoft Silverlight: September 28, 2010 ">"Description of the update for Microsoft Silverlight: September 28, 2010".
  56. ^ a b c d e f g h "Opera Watch: More details on Silverlight support in Opera". Retrieved 2007-05-02.
  57. ^ a b c d e "Silverlight in Opera". Retrieved 2008-03-10.
  58. ^ Install Silverlight : Unsupported platform, system requirements
  59. ^ a b Chapman, Stephen (2009-12-01). "Windows Mobile 7: Silverlight Applications, IE Mobile 7, and More!".
  60. ^ "Run Silverlight in Opera". Retrieved 2009-05-12.
  61. ^ a b "Silverlight 1.0 Released and Silverlight for Linux Announced". Retrieved 2007-09-05.
  62. ^ a b "Microsoft/Novell Collaboration on Silverlight". Retrieved 2007-09-05.
  63. ^ a b "Covenant to Downstream Recipients of Moonlight – Microsoft & Novell Interoperability Collaboration". Microsoft. 2007-09-28. Retrieved 2008-03-08. "Downstream Recipient" means an entity or individual that uses for its intended purpose a Moonlight Implementation obtained directly from Novell or through an Intermediate Recipient… Microsoft reserves the right to update (including discontinue) the foregoing covenant… "Moonlight Implementation" means only those specific portions of Moonlight 1.0 or Moonlight 1.1 that run only as a plug-in to a browser on a Personal Computer and are not licensed under GPLv3 or a Similar License.
  64. ^ "Microsoft/Novell Collaboration on Silverlight". Miguel de Icaza. 2007-09-05. Retrieved 2008-11-09. We will be supporting Firefox and Linux initially (that is our first goal) but we are looking forward to work with developers from other operating systems (BSD, Solaris) and other browsers (Konqueror, WebKit and Opera) to ensure that Moonlight works fine on their systems.
  65. ^ Moonlight 1.0 for FreeBSD availability announcement
  66. ^ Installation and Maintenance of FreeBSD Ports or Packages
  67. ^ "Nokia to enable Silverlight". blog.anta.net. 2008-03-04. ISSN 1797-1993. Retrieved 2008-03-04.
  68. ^ Stegman, Joe. "MSDN Forums Silverlight General Discussion: Linux support". Retrieved 2007-04-29.
  69. ^ "Silverlight Download on Apple".
  70. ^ "Microsoft Silverlight Tools for Visual Studio 2008 SP1". Retrieved 2009-01-22.
  71. ^ Parker, Nigel. "MIX07 Your Product is a feature of the Web!". Retrieved 2007-06-08.
  72. ^ "Eclipse for Silverlight". Retrieved 2008-10-14.
  73. ^ Montalbano, Elizabeth. "Microsoft Goes Open Source?". Retrieved 2007-04-29.
  74. ^ Clarke, Gavin. "Silverlight glow dimmed by cross-platform concerns". Retrieved 2007-05-05.
  75. ^ Sample Source Code for Silverlight 2 Runtime and SDK Controls
  76. ^ Markoff, John (2008-08-11). "Microsoft leveraging Silverlight and riling critics". International Herald Tribune. Retrieved 2009-01-11. Others take a darker view of Microsoft's intentions and argue that Silverlight is simply a rehash of the company's 1990s-era "embrace and extend" strategy for pre-empting Web competition. "They're still playing the same games," said Michael Nelson, professor of Internet studies at Georgetown University. "It's a way to lock up the content, and it's not enabling as much innovation as we would like to see."
  77. ^ Meyer, David (2008-04-30). "Mozilla warns of Flash and Silverlight 'agenda'". ZDNet. Retrieved 2009-01-11. Companies building websites should beware of proprietary rich-media technologies like Adobe's Flash and Microsoft's Silverlight, the founder of Mozilla Europe has warned.
  78. ^ Adobe SWF file format specification
  79. ^ Adobe FLV file format specificationas official ISO standard
  80. ^ Microsoft Open Specification Promise
  81. ^ Microsoft ASF specification
  82. ^ "Mono Moonlight". Mono Project. Retrieved 2008-06-22.
  83. ^ "Pre-Mix 08: Moonlight Updates". 2008-03-03. Retrieved 2008-03-08. {{cite web}}: Unknown parameter |name= ignored (help)
  84. ^ Jones, Pamela (28 May 2008). "Shining Some Light on Microsoft's Moonlight Covenant". Groklaw. Retrieved 2008-08-25. Moonlight is safe from threat only if you get it from Novell AND DO NOT PASS IT ON, as there are no protections for downstream recipients...Unless those downstream recipients get it from an 'Intermediate Recipient' defined to only include authorized resellers...It's like walking into a store and saying "I'm only going to pay half of the amount I owe and I hereby disclaim my duty to pay full price." You can try that, but the law supersedes whatever intent or desire you've expressed. At minimum, this shows how clearly they DO NOT want to coexist with GPL'd code.
  85. ^ "Open Source Developers Shun GPLv3, Survey Says". Information Week. Retrieved 2010-02-13.
  86. ^ "Moonlight: Frequently asked questions". Novell, Inc. Retrieved 2008-08-25.
  87. ^ Chhabra, Gautam (April 20, 2007). "Adobe CEO questions Microsoft Silverlight cross-platform commitment". Java Entrepreneur. Retrieved 2007-12-06.
  88. ^ Bishop, Todd (October 17, 2007). "Antitrust filing cites Microsoft Silverlight concern". Seattle Post-Intelligencer. Retrieved 2007-12-06.
  89. ^ "Anitrust motion Executive Summary" (PDF). Retrieved 2008-09-07. [dead link]
  90. ^ " "Silverlight on Windows Update (Windows 7)". 2008-11-30. {{cite web}}: |first= missing |last= (help); Text "lastBugnion" ignored (help)
  91. ^ Paul, Ryan. "Microsoft's Flash-killer Silverlight steals the show at MIX07". Retrieved 2007-05-06. [Microsoft's] perpetual unwillingness (or perhaps inability) to build on existing standards is deeply detrimental to users and developers. Internet Explorer 7 is still the only major web browser that has no native support for SVG. By neglecting to use the SVG standard in Silverlight and XAML in favor of a limited and incompatible facsimile, Microsoft has once again needlessly ignored what could have been an opportunity to empower developers and help Internet Explorer catch up with browsers that are more functional and standards-compliant.
  92. ^ Betz, David. "Silverlight's Adoption as Public De-Facto Standard". Retrieved 2007-06-20. Silverlight can be viewed as a web extension of the Windows Presentation Foundation (WPF), a .NET 3.0 technology and not simply as a new web technology. As such, it makes sense that Silverlight uses XAML, not SVG. If Silverlight were based on SVG, then there would be a chasm between Silverlight and the .NET Framework, but as it stands Silverlight's use of XAML makes it part of the .NET family. In fact, it's important to note that elements in XAML usually represent objects in the .NET Framework; this would simply not be possible in SVG.
  93. ^ On the Trail of Ichabod, The Adobe Headless Flash Player

External links