Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
Silverlight 2.0 - Microsoft's RIA Platform Enters the Second Level

Silverlight 2.0 - Microsoft's RIA Platform Enters the Second Level

Ratings: (0)|Views: 93|Likes:
Published by Bob Ferris
Microsoft Silverlight pushes fast into the diverse market of technologies, which mainly interact as browser plug-ins and deliver media experiences and Rich Internet Applications (RIAs). Where the first goal was almost reached with the first release of Silverlight; the second one might already have been provided by additional components of Silverlight 2. The new version comes along with useful adoptions of Microsoft’s .NET Framework and other interesting issues, for example the new Deep Zoom technology. These expansions build a common ground for a deep analysis of Silverlight 2. Therefore, questions like the following two ones will be answered with this paper. Will Silverlight fulfil all necessary requirements to build enriched RIAs? Can it keep up with the omnipresent competitor Adobe Flash by supporting extensive facilities?
Microsoft Silverlight pushes fast into the diverse market of technologies, which mainly interact as browser plug-ins and deliver media experiences and Rich Internet Applications (RIAs). Where the first goal was almost reached with the first release of Silverlight; the second one might already have been provided by additional components of Silverlight 2. The new version comes along with useful adoptions of Microsoft’s .NET Framework and other interesting issues, for example the new Deep Zoom technology. These expansions build a common ground for a deep analysis of Silverlight 2. Therefore, questions like the following two ones will be answered with this paper. Will Silverlight fulfil all necessary requirements to build enriched RIAs? Can it keep up with the omnipresent competitor Adobe Flash by supporting extensive facilities?

More info:

Published by: Bob Ferris on Mar 12, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/15/2010

pdf

text

original

 
Silverlight 2.0 - Microsoft’s RIA Platform Enters the SecondLevel
Thomas Gängler
Department of Computer ScienceUniversity of Technology DresdenDresden, Germany
s9736463@mail.inf.tu-dresden.de
ABSTRACT
Microsoft Silverlight pushes fast into the diverse marketof technologies, which mainly interact as browser plug-insand deliver
media experiences
and
Rich Internet Applica-tions
(RIAs). Where the first goal was almost reached withthe first release of Silverlight; the second one might alreadyhave been provided by additional components of Silverlight2. The new version comes along with useful adoptions of Mi-crosoft’s .NET Framework and other interesting issues, forexample the new
Deep Zoom 
technology. These expansionsbuild a common ground for a deep analysis of Silverlight 2.Therefore, questions like the following two ones will be an-swered with this paper. Will Silverlight fulfil all necessaryrequirements to build enriched RIAs? Can it keep up withthe omnipresent competitor Adobe Flash by supporting ex-tensive facilities?
Categories and Subject Descriptors
D.2.6 [
Programming Environments
]; D.2.12 [
Interope-rability
]: [Interface definition languages]; H.5.2 [
User In-terfaces
]: [Graphical user interfaces, User-centered design,Interaction styles]; H.5.4 [
Hypertext/ Hypermedia
]: [Ar-chitecture, Navigation, User issues, Screen design, Prototyp-ing]
General Terms
Design
Keywords
Rich Internet Application, Microsoft, Silverlight, Moonlight,XAML, .NET, DLR
1. INTRODUCTION
Time is right to push a new concept on top of Web ap-plication development. Since the type of traditional Webapplications got more and more outdated because of a newcomplexity and adaptability, which were demanded of Inter-net users; a new balance between client and server comput-ing resources seemed to solve the problem to handle all newfeatures. Rich
user interface
(UI) behaviours, more respon-sive, asynchronous communication and network efficient areexplaining terms to describe the concept of 
Rich InterneApplications
[23]. Therefore, RIAs have an enhanced clientside technology which can execute instructions on client’scomputer (client engine). Furthermore, additional charac-teristics are needed to express the full power of this Webapplication type. A RIA should be accessible from everykind of client, is not limited to a Web browser surrounding,but should run in a
sandbox 
and can run offline, too
1
.All these requirements offer
(rich) user experience
(UX), apart of end-to-end experience, as it is common with classicalDesktop applications. RIAs try to combine the benefits of both Web and Desktop applications. Hence, it was a logicalstep that Microsoft continues to apply its renewed commit-ment to UX on this area as well. The company prefer toadapt its ongoing effort on including this end-to-end experi-ence, which was reflected in some radical changes of the lastversions of Windows and Office (Windows Vista, MicrosoftOffice 2007) [18]. After all, the result was a Web browserplug-in similar to Adobe Flash. At the beginning (December2006), they called it
Windows Presentation Foundation/ Ev-erywhere
(WPF/E) in relation to its origin from the .NETFramework component Windows Presentation Foundation(WPF). Later, in September 2007 Microsoft officially intro-duced its platform as Silverlight 1, which is a
cross-platform 
,
cross-browser 
and
cross-device
2
technology for designing,developing and delivering
media experiences
and
rich inter-active applications
3
for the Web.Naturally, the development process of a new plug-in do notstop. A expansion of the first version of Silverlight withnew features, especially an implementation of core elementsof its .NET Framework, followed quickly. At the beginning,they called this version
1.1 Alpha 
, but later and with ad-ditional features version
2.0 Beta 1
, which was released inMarch 2008. With this change Microsoft enlarged the pos-sibilities of the developers in application development withSilverlight (especially for RIA development). Thus, up rightnow Silverlight application programmers are able to developwith any .NET Framework programming language (e.g. C#or Visual Basic). Hence, they are not instructed to only useJavaScript for developing large RIAs.Of course, the term
Rich Internet Application 
was not just
1
for a detailed description of RIA, please have a look at thediploma thesis of Florian Moritz [13]
2
this facility is still in development
3
Microsoft’s synonym for RIAs
User-Interface-Technologien für das Web© TU DresdenHauptseminar MMT 200873
 
introduced with Microsoft Silverlight. That’s why, numer-ous competitors have already existed in this market, e.g. theCurl platform, Sun JavaFX, Adobe Flash (with Adobe Flexand Adobe AIR), Google Web Toolkit or Open Lazlo. Everyplatform desires to win the challenge of market leadership.Obviously, Adobe Flash provides the most popular platform,but will it also fulfil all required features of a RIA? Clearly, italready consists of more components Silverlight 1. Accord-ingly, it will be difficult for Microsoft’s competitor in ver-sion one to be successful compared to Flash in version nine.However, let us see whether the expansion from WPF/E to
Silverlight 2.0 Beta 1
provides a powerful platform that sat-isfies all requirements to build good RIAs while being ableto change the predominance of Adobe Flash. Moreover, acomparison between all important rivals in the RIA marketwill be out of the focus of this paper. It will only give aninsight into the Silverlight 2 platform with a conclusion thatwill only rate its chances on this market.Therefore, the paper’s body is divided into three main chap-ters. The first one will explain the Silverlight platform intodetail (see Sec. 2). The second part will describe the fa-cilities of support (see Sec. 3). Finally, the third chapterwill present an overview of design and development tools forSilverlight applications (see Sec. 4). Naturally, a conclusionwill follow after the body and will sum up and rank the de-scribed topics of the body.Before entering the body of this paper, here is a clear re-striction of the topic. This article will only focus on version
Silverlight 2.0 Beta 1
(
Beta 2 
is expected to be released inMay 2008) that means it will include in general all features,which are supported by Silverlight 1
4
. Moreover, no spe-cific separation of the features of these two versions will begiven - only general differences will be mentioned. Further-more, no detailed description of underlying components andlibraries of the considered subset of the .NET Frameworkwill be made. The development of a
ready to Web
(RTW)version of Silverlight 2 is, at the time of writing this paper,still in progress. That means, no books and scientific arti-cles are currently available that describe Silverlight 2 andcover its features and components at once. Thus, this arti-cle is mainly based on the Silverlight documentation in theMSDN library [18],
white paper 
articles on the SilverlightWeb site [19] and the Silverlight development Web site [16]as well as many
netblog 
entries of the Silverlight developers.Nevertheless, let us now start with a detailed description of Microsoft’s RIA platform.
2. THE SILVERLIGHT PLATFORM
To many modifications and extensions of components andfeatures of Silverlight 1, initialized Microsoft to rename theirfollowing Silverlight version from
1.1 Alpha 
to
2.0 Beta 1
.Where Silverlight 1 basically consists of components of thepresentation core to deliver media experiences (see Sec. 2.2),Silverlight 2 enriches this ability by including importantparts of the .NET Framework to enable RIA development(see Sec. 2.1). Figure 1 shows the differences of the archi-tecture between the two version in a nutshell. On the onehand, light-blue parts are components, which are introducedwith Silverlight 1. On the other hand, dark yellow rectan-gles include new features of the second version. All these
4
except for breaking changes of development from version
1.0 
to
1.1 Alpha 
to
2.0 Beta 1
Figure 1: Silverlight architecture [18]
facilities will be described in the following subsections.Apart from the two major parts of the Silverlight platform,the plug-in consists of an installer and update componentas well. This feature can easily be embedded into the hostWeb site of a Silverlight application. The JavaScript file forSilverlight plug-in checking is delivered with the Silverlight 2SDK. Generally, this component simplifies the process of in-stalling the application for first-time users, and subsequentlyprovides low-impact, automatic updates [18]. However, asit is currently common in Web application development, theautomatic update option without notifying the user is opt-in by default [19]. Hence, a user maybe has to change thisfeature manually. Anyway, let us now take a look at the in-teresting features and components of the Silverlight 2 plat-form.
2.1 The .NET Framework for Silverlight
To be one step ahead of its competitors, Microsoft enrichesthe Silverlight platform with common parts of their .NETFramework to facilitate RIA development. Firstly, with im-portant parts of the
Base Class Library 
(BCL), which al-low comfortable application programming, and a shortened
Common Language Runtime
(CLR). Secondly, with a sub-set of the WPF framework to enrich UI development (seeSec. 2.2.1). Thirdly, with a subset of the
Windows Commu-nication Foundation 
(WCF) framework to enable high-levelcommunication with Web Services. Finally, with a very newcomponent of the .NET Framework, the
Dynamic LanguageRuntime
(DLR), closes the enumeration of .NET compo-nents in Silverlight 2.
2.1.1 CoreCLR and BCL
Possibly, The developers of Silverlight made a good deci-sion by conveying important parts of Microsoft’s implemen-tation of the
Common Language Infrastructure
(CLI), theCLR, to Silverlight. To separate the CLR, as it is includedin the .NET Framework, from the derived subset of the Sil-verlight framework, the Silverlight CLR is also known as
User-Interface-Technologien für das Web© TU DresdenHauptseminar MMT 200874
 
CoreCLR. This relates to the issue that the CLR in the .NETFramework provides even more facilities as are defined in theECMA and ISO specification of the CLI, which cannot befully integrated in the CoreCLR. Anyway, all features thatare included in the CoreCLR are defined by the CLI speci-fication. These features are: memory management, garbagecollection, type safety checking (through generics) and ex-ception handling [18]. To enable programmers with the pos-sibility to write applications in a development language of their choice [18], the
Common Type System 
(CTS) compo-nent of the CLI specification ensures the goal of languageindependence. As described in ECMA-335 standard [8], a
Virtual Execution System 
(VES) implementation must beable to execute
managed code
. This code contains enoughinformation to allow the CLI to provide a set of core ser-vices
5
. Hence, every programming language (e.g. C# orVisualBasic) that fulfils the requirements as defined in theCLI specification produces
managed code
, which can be com-piled to platform independent
Common Intermediate Lan-guage
(CIL) code. Finally, the CIL code will be compiled tonative machine code by a
just-in-time
compiler of the VES,when the code is executed. This powerful concept presentsthe Silverlight platform new facilities to provide
rich inter-active applications
.The second main component of the .NET Framework, theBCL, was adapted for the Silverlight framework, too. Theincluded libraries provide essential programming functions[18], e.g. string handling, regular expressions, input and out-put handling, event handling, reflection, collections, cryp-tography, threading and globalisation [18]. Additionally,the so called
HTML/JS bridge
is embedded into Silverlight2. This is a component, which enables to use JavaScriptto call directly into
managed code
and access scriptable ob- jects, properties, events, and methods. Wilco Bauwer [4]describes interesting details of the two-way interoperabilitylayer (the
HTML/JS bridge
) in Silverlight and the problemsof supporting
RESTful 
services by all supported browsersof the Silverlight plug-in (see at section 2.1.2).To sum up,the mentioned subset of the .NET Framework BCL and thehelpful Web development add-ons build a common groundfor good Web application development. Naturally, the Sil-verlight BCL can be used with every .NET language. Thisfeature facilitates .NET developers to easily get along withSilverlight development.
2.1.2 WCF, LINQ and Sockets
Web Services are main collaborators of RIAs. Therefore,Silverlight includes APIs to communicate via different pro-tocol types with different Web Service types. This was re-alized within the adoption of the WCF framework, a partof the .NET Framework. These APIs contain
out of thebox 
support for the common syndication feed formats
RSS 2.0 
and
Atom 1.0 
. Moreover, the common
SOAP Service
in version 1.1 is supported, with the restriction of not us-ing SOAP extensions (
SOAP custom headers
) [18]. The Mi-crosoft derivatives
WCF Service
and
ASP.NET Web Service
fulfil the range of Web Services in Silverlight 2. In practice,SOAP extensions are often used for the authentication pro-cess of users. To compensate this possibly disadvantage, thisfunction can be replaced by several
extensibility points
of theWCF framework [3]. Another approach to identifying a user
5
see [1] for a good explanation of 
managed code
is to make use of the
Windows CardSpace
service
6
. This isan
identity metasystem 
of the .NET Framework.There are also some APIs for simple HTTP communication.Firstly, a high-level API for easy downloading support. Sec-ondly, basic APIs for low level access to the HTTP pro-tocol features. Currently, only the GET and the POSTmethod are supported by the protocol types HTTP andHTTPS [18]. Accordingly, not all methods of the
Represen-tational State Transfer 
(REST) definition are available viathese APIs (PUT and DELETE is non-existent). Further-more, features of the ADO.NET framework like
DataSets
are not integrated in
Silverlight 2.0 Beta 1
. Fortunately, the
Astoria 
team is working on a version of their services forthe next Silverlight Beta release to close this gap [10]. Alibrary to consume
ADO.NET Data Service
(
Astoria 
) fromSilverlight is already available via Microsoft Download Cen-ter. Thus, CRUD (Create, Retrieve, Update, Delete) opera-tions are possible in Silverlight. Unfortunately, this add-onis not compatible with the
Beta 1
version and developershave to be patient and have to wait for a next Silverlight 2update.Moreover, to interact with Web Services, often APIs are nec-essary to extract and pre-process an incoming data streamor to formulate queries for Web Services. Currently, Sil-verlight includes two implementations of the
Language In-tegration Query 
(LINQ) framework: LINQ to Objects andLINQ to XML. These components enable easy transformingand querying of data [16]. APIs for serializing
JavaScript Object Notation 
(JSON) and XML messages helping to pre-process data of Web Services. At last, APIs to work withXML documents complete the opportunity to consume
Plain Old XML
(POX).Another interesting feature was introduced with Silverlight2 - sockets. This component enables developers to integratefor example chats within their Silverlight application. Thesocket package provides a mechanism for real-time duplexcommunication with the application’s host of origin and en-ables higher-level APIs to communicate over a
bi-directional 
transport. Socket connections are only allowed back to thesite or host of origin [18]. That means, an application canonly connect to the host from which it was downloaded.Two sockets interface are supported -
Windows Sockets
and
Berkeley Sockets
. Summing up, Silverlight 2 provides goodsupport for common Web scenarios with the component de-scribed above.After all, an important aspect is missed right now. Whatabout,
cross-Web domain 
,
cross-scheme
and
cross-zone
ac-cess? This features are fundamentally important today towork with Web Services. That’s why, a control mechanismto allow
cross-domain 
calls was included into Silverlight 2.By default, a Silverlight application can only access WebServices that are hosted on the same domain. To enablecommunication for services, which are hosted on other do-mains, a
cross-domain policy 
file must be placed in the rootof the Web Service domain. Currently, two different mecha-nisms are supported. Firstly, Microsoft defines an own XMLschema for
cross-domain policies
. This configuration enablesto set access restriction to paths of the domain as well. Sec-ondly, the
cross-domain policy 
specification of Adobe Flashis supported. However, an access policy defined in this stylecan only allow access from all domains. Otherwise, it will
6
Virbo Bertocci shows it in a tutorial [6]
User-Interface-Technologien für das Web© TU DresdenHauptseminar MMT 200875

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->