Autor: Thomas Reinwart 2008-10-14

office@reinwart.com

Inhalt

RIA -Rich Internet Applications...........................................................................................................2 Vorteile von RIAs...................................................................................................................................... 2 Nachteile von RIAs................................................................................................................................... 2 RIA Entwicklungswerkzeuge von Adobe und Microsoft......................................................................2 Flex Framework ................................................................................................................................... 3 Silverlight ............................................................................................................................................. 4 Silverlight Versionen............................................................................................................................4 Version 1.0.......................................................................................................................................4 Version 2.0.......................................................................................................................................5 XAML................................................................................................................................................ 8 Expression Blend (2.5) ..................................................................................................................... 8 Expression Design............................................................................................................................9 Silverlight für Windows Mobile .....................................................................................................10 Mono: Moonlight...........................................................................................................................10 Anwendungsbeispiele von Silverlight............................................................................................10 Tips.................................................................................................................................................11 Silverlight Links ..............................................................................................................................11

RIA -Rich Internet Applications

Der Begriff RIA – Rich Internet Applications – tauchte erstmalig mit Macromedia Flash MX und Flash Remoting auf. Inzwischen bieten mehrere Hersteller Lösungen für RIA an. RIAs werden für eine Vielzahl gängiger Browser, Desktop-Systeme und Endgeräte angeboten. Rich Internet Applications werden als nächste Generation von Software-Anwendungen gesehen.

Rich bedeutet einen Mehrwert gegenüber den herkömmlichen HTML basierenden Web Anwendungen. Die Anwendung läuft dabei innerhalb eines eigenen PlugIn im Browser.

Rich Internet Anwendungen können die Oberfläche einer gewohnten Desktop Anwendung bieten, das Anwendungsgebiet ist sowohl Intranet als auch im Internet. Die erstellten Anwendungen können dabei Betriebssystem / Browser Unabhängig sein und zeichnen sich dabei durch einen geringen Aufwand bei der Auslieferung und Installation aus.

Vorteile von RIAs

Nachteile von RIAs

RIA Entwicklungswerkzeuge von Adobe und Microsoft

Für RIA bietet Adobe Flash, Flex und AIR (Adobe integrates runtime) und Microsoft Silverlight, WPF und Expression Blend an. Es gibt aber noch weitere Hersteller.

Ein Vergleich zwischen den RIAs der Hersteller ist mit Adobe Flash und Microsoft Silverlight möglich.

Bei Adobe als auch Microsoft kommen Browser PlugIns zum Einsatz, durch die die Inhalte der Applikation dargestellt werden. Beide Systeme verfügen über eine deklarative Markup-Sprache.

Adobe Flash ist eher im Bereich der Medientools angesiedelt, hat mit der Version 3.0 mit Action Scripts den Status einer objektorientierten Programmiersprache erreicht. Flash ist seit vielen Jahren im Internet verbreitet. Nun trifft Flash auf Silverlight, das über ein Mikro Framework der .net runtime und über die .net Programmiersprache C# und VB.net verfügt. Silverlight Entwickler können mit der .net Einwicklungssprache ihrer Wahl Client als auch Serveranwendungen erstellen, die Flash Entwickler können mit XHTML und Actionscript Programmen nur für den Client entwickeln.

Silverlight verfügt zusätzlich über XAML. XAML wird von den Suchmaschinen erkannt. Bei Flash kann Google die statischen Texte erkennen, aber ohne Zusammenhang. Daher wird in Flash oft zusätzlich eine XAML Datei eingebaut, um dieses Manko zu umgehen.

Bei Silverlight ist es möglich, Design und Entwicklung zu trennen. Dazu gibt es Microsoft Blend fürs Design und Visual Studio für die Entwicklung, das gemeinsame Datenformat ist XAML.

XAML ist ein offener Standard, XAML kann auch von nicht Microsoft Tools gelesen und geschrieben werden. Das Format von Flash ist proprietär.

Adobe Flex basiert auf Eclipse und hat ebenso eine XML Sprache für die Definition, hier ist aber keine Trennung zwischen Design und Entwicklung möglich. Der Flex Builder kann die Multimedia Inhalte aus Flash importieren.

Mit Adobe gibt es zwei Möglichkeiten, RIAs für den Flash Player zu erstellen: Die Flash Autorenumgebung mit den Metaphern (Movieclips, Timeline, Frames, …) und die anderen Möglichkeit basiert auf Flex und bietet neben dem ActionScript auch MXML.

MXML (Magic eXtensible Markup Language) ist eine XML basierende Markup Sprache und wurde 2004 von Macromedia eingeführt.

Flex Framework

Für die Entwicklung von Flex Applikationen werden SDK’s benötigt.

Version 2.01: kostenloses SDK (Klassenbibliothek, Debugger, Compiler)

Version 3.0: Open Source Lizenz (Klassenbibliothek, SDK)

Damit werden Dateien im swf Format erstellt, diese kann man in HTML Seiten einbinden. Es gibt Backend Techniken von Adobe für XML WebServices, http Aufrufe und Remote Objekt Klassen.

Flex 3

Mit Flex 3 gibt es die Möglichkeit, auf der Clientseite ein Caching zu nutzen. Dies ist mit der Version 3 neu, bisher wurden die Daten wiederholt vom Server geholt.

Verteilung von Flash Applikationen Die mit Adobe Flash erstellten FLA oder AS/MXML Quelldateien werden zu einer oder mehreren SWF Dateien kompiliert. Diese werden in HTML Seiten integriert und zusammen auf einen beliebigen WebServer kopiert.

Flash Player

http://www.adobe.com/de/shockwave/download/alternates/

Silverlight

Silverlight war bis April 2007 unter dem Codenamen WPF/E (Windows Presentation Foundation/Everywhere) bekannt, wurde dann unter Silverlight Q3/07 released.

Zur Installation von Silverlight benötigt man ein Browser PlugIn (derzeit ca. 4.5 MB). Inzwischen bieten immer Internetseiten eine Silverlight Anwendung an, dies erkennt man am Symbol: Die Installation kann auch über http://silverlight.net oder über Windows Update durchgeführt werden. Die .net runtime selber muss nicht installiert werden.

Cross Browser und cross Platform: Silverlight läuft in einem Browser Plug in, das es für Internet Explorer (6, 7, 8), Firefox (1.5, 2.0, 3.0)

und Safari (2.0, 3.0) gibt. Die Anwendungen selber laufen im Plug in und sind damit Browser und Plattform unabhängig. Microsoft: Windows 2000, Server 2003, XP, Vista Apple: OS X Tiger, OS X Leopard Anwendungen laufen in Silverlight im Sandbox Prinzip.

Silverlight Versionen

Version 1.0

Seit 2007/09 Release Version.

Nach der Installation der Silberlight SDK steht im Visual Studio IntelliSense bei XAML zur Verfügung.

Silverlight ist eine kompakte, clientseitige Laufzeitumgebung für Rich Internet Anwendungen (RIAs). Damit ist eine komfortable Integration von Medien Daten, Grafiken, Bildern und Text möglich. Die Darstellung in Silverlight ist Vektor und nicht mehr Pixel orientiert.

Der Präsentation Layer besteht aus der Darstellung und dem Handling der Usereingabe. Die Aufgaben sind: Vektoren zu rendern, Grafik und Animation (Audio und Video) darzustellen, XAML zu darstellen, Eingaben von Eingabegeräten. Über Java Script werden die Events behandelt. Zur Asynchronen Verarbeitung gibt es die AJAX Bibliothek.

Einbindung in die Anwendung:

Im HTML Header werden JavaScript Dateien referenziert.

[Default.html]

<html> <head> <title>FormFade</title>

<script type="text/javascript" src="Silverlight.js"></script> <script type="text/javascript" src="Default.html.js"></script> <script type="text/javascript" src="Demo.xaml.js"></script>

<style type="text/css">

.silverlightHost { height: 200px; width: 300px;

} </style> </head>

<body>

<div id="SilverlightControlHost" class="silverlightHost" style="position:absolute; left:25px; top:30px;"> <script type="text/javascript"> createSilverlight(); </script> </div>

</body> </html>

Von der SDK die silverlight.js verwendet.

CreateSilverlight.js referenziert auf das XAML File.

[Default.html.js]

function createSilverlight() {

Sys.Silverlight.createObjectEx({ source: "Demo.xaml", parentElement: document.getElementById("SilverlightControlHost"), id: "SilverlightControl", properties: {

width: "100%", height: "100%", version: "1.0", events:{onError:null, onLoad:handleLoad, onResize:null)}, context:null });

}

Events werden im Java File (.js) verarbeitet.

Im Vergleich zur Version 2. steht eine eingeschränkte GUI Funktionalität zur Verfügung.

Version 2.0

Es ist ein.net Mikroframework integriert, anstatt Java Script sind nun die .net Sprachen C# und VB.net möglich. Damit wird die Silverlight Entwicklergemeinde nun schneller wachsen.

Es gibt keinen Konverter, um Version 1.0 auf 2.0 upzugraden, welches das Java Event Handling und den Code gegen das des .net Mikroframeworks austauscht. Die Version 2.0 wurde mit 14.10.2008 released.

Der Umfang der Controls wurde wesentlich gesteigert, somit wird es einfacher Rich Interactive Applications/Rich Internet Applications zu entwickeln.

Anstatt von Javascripts steht nun ein .net Microframework zur Verfügung.

Security: Silverlight läuft wie die Version 1.0 im Sandbox Prinzip am Client

Storage Möglichkeiten

Den isolated storage kann man sich vom Prinzip her wie Cookies vorstellen, der Bereich ist default 10MB groß, kann aber über TryIncreaseQuotaTo(<size>) erhöht werden. Der User muss am GUI zustimmen, dass die Applikation X mehr Speicher anfordert. Die Daten werden über Silverlight am Client im Verzeichnis ..user\appdata\Silverlight\..._LocalSettings abgespeichert.

Der Syntax so:

ApplicationSettings.Default[„demo“]=meinWert; ApplicationSettings.Default.Save(); ApplicationSettings.TryGetValue(<string>(“demo”);

IIS Rechte: Ob Silverlight den isolated storage verwenden darf hängt nicht davon ab, ob im Browser die Cookies enabled/disabled sind.

OpenFileDialog Hier ist eine Multiselektion von Files möglich, bei Asp.net gibt es ja nur single selection. Mit der OpenFileDiolog Methode kann Silverlight lokal auf das Dateisystem zugreifen, der User navigiert und klickt OK. Das kann jeder Bereich sein, also auch außerhalb des isolated storage Bereiches.

Das WPF UI Framework stellt ein kompatibles Subset des WPF UI Frameworks aus .net 3.5 dar.

Der Networking Bereich unterstützt REST, POX, RSS und WS*. Ein Domainübergreifender Netzwerkzugriff ist möglich, damit kann während der Laufzeit auf Ressourcen zugegriffen werden. Controls :

Button Popup FileOpenDialog
Calendar RadioButton ItemsControl
CheckBox RepeatButton MediaElement
DatePicker ScrollViewer ProgressBar
GridSplitter Slider ToggleButton
HyperlinkButton TextBlock TabControl
Image TextBox ToolTip
MultiScaleImage WatermarkedTextBox

Data :

DataGrid ListBox

Layout :

Canvas Grid StackPanel

.NET Base Class Library

Deepzoom Demo Technologie: Der Deep Zoom composer zerlegt ein sehr großes Bild in viele Einzelbilder, die am Server liegen. Wenn im Client in Silverlight das MultiScaleImage Objekt verwendet wird, kann die Deepzoom Technologie genutzt werden. Damit wird zuerst ein recht unscharfes Bild (wenig Datenübertragung) übermittelt, beim Hineinzoomen wird der relevante Teil des Ausschnitts nachgeladen.

Visual Studio Tools for Silverlight:

Ist für Visual Studio 2008 erhältlich und beinhaltet die VB.net und C# Templates für die Silverlight Entwicklung, die Web Service Referenz hinzuzufügen sowie die Kompatibilität mit Expression Blend.

XAML

XAML seht mir der WPF (Windows presentation foundation) auch für Windows Desktop, Silverlight 2 unterstützt XAML.

http://silverlight.net/quickstarts/silverlight10/xaml.aspx

Expression Blend (2.5)

Expression Blend ist ein Designerwerkzeug zum Gestalten der Oberfläche die Vektoren basierend ist. Hiermit wird der XAML Code erzeugt, der die erstellte Oberfläche (Userinterface UI) beschreibt. Damit lässt sich das UI der Silverlight Anwendung, oder auch einzelne visuelle Controls, generieren. In Visual Studio 2008 wird der Code Teil dazu erstellt. Damit ist auch eine Trennung zwischen Designer und Entwickler möglich, das produktübergreifende Arbeiten wird durch ein von beiden Systemen bekanntes Dateiformat gewährleistet.

http://www.microsoft.com/expression/try-it/default.aspx

Expression Design

Expression Design ist ein Bildbearbeitungsprogramm, mit dem sich Vektoren und Rastergrafik bearbeiten lässt. Grafiken können ebenfalls im XAML Format gespeichert werden.

http://www.microsoft.com/expression/try-it/default.aspx

Silverlight für Windows Mobile

An der Silverlight Version für Windows Mobile wird derzeit noch gearbeitet. Nähere Details siehe hier: http://silverlight.net/learn/mobile.aspx

Version 1.0 CTP Q2/08, RTW Q7/08

Silverlight for Nokia S40, S60

Mono: Moonlight

Mono Moonlight ist ein Open Source Projekt (Novell), das Microsoft Silverlight für Unix Systeme implementiert. Wie beim Mono Projekt für .net gibt es hier eine Portierung des .net Frameworks, bei Mono für .net ist dies für Linux, Solaris, Max OS X, Windows und Unix möglich. Eine Multiplattform des .net frameworks. Ziel ist es, 100% kompatibel zu Silverlight zu werden.

Bei Windows kommen die Video Codecs von Microsoft (mit Silverlight), bei Mono von Novell.

http://www.go-mono.com/moonlight/

Anwendungsbeispiele von Silverlight

Für .net Entwickler stellt sich angesichts von Silverlight die Frage bei neuen Web Anwendungen: wann entwickle ich etwas in asp.net (aktuell 3.5), wann soll ich Silverlight nehmen?

Silverlight eignet sich für RIAs. Damit sind in der Web Anwendung neue Möglichkeiten der Visualisierung und der Bedienung möglich.

Beispiele:

Tips

Dateigröße einer Silverlight Applikation

Ein Silverlight Assembly ohne Ressourcen ist relativ klein und kann leicht auf einen Client im Netzwerk ausgerollt werden. Verwendet man nun aufwendige Grafiken in den Ressourcen, so wächst das File an.

Lösungsmöglichkeiten wären, Images per Links zur Laufzeit vom Server zu holen, oder Ressourcen über WebServices zur Laufzeit nachzuladen. Also nicht die Videos in die Ressourcen hineingeben, sondern vom Server streamen und über den Mediaplayer abspielen.

Hosting Dienst Silverlight Streaming Services (SSS)

Microsoft bietet einen Hosting Dienst an, der maximal 10 GByte kostenlosen Hosting Speicher für Silverlight Applikationen bereitstellt.

Silverlight Links

http://silverlight.net/Showcase/ http://www.netikatech.com/ http://memorabilia.hardrock.com/ (Deep Zoom Effect) Microsoft Silverlight Tools for Visual Studio 2008:

http://silverlight.net/GetStarted/

Übersicht der Silverlight Architektur:

http://blogs.msdn.com/brada/archive/2008/03/16/silverlight-2-developer-poster.aspx