Silverlight 5 in der Praxis

Werkzeuge  –  35 Kommentare

Wie lassen sich mit Silverlight 5 Geschäftsanwendungen schreiben, wie gut lässt sich das MVVM-Pattern implementieren und wie groß sind die Unterschiede zu einer vergleichbaren WPF-Anwendung? Ein überschaubares, aber praxisnahes Beispiel soll diese Fragen klären.

Silverlight 5 steht vor seiner Vollendung, auch wenn Microsoft sich für das Release ungewöhnlich viel Zeit gelassen hat. Der Grund für die lange Entwicklungszeit dürfte sein, dass Microsoft die Prioritäten anders verteilt hat. Von den Neuerungen in Windows 8, insbesondere vom neuen Application Store für die Metro-Anwendungen, wird sich Microsoft neue Einnahmequellen versprechen. Ebenfalls musste der aktuelle Hype um HTML5 bedient werden, um zu zeigen, dass man auch hier mithalten kann. Das alles hat die Silverlight-Aktivitäten ein wenig in den Hintergrund rücken lassen, sodass erneut Diskussionen entbrannten, wie es um die Zukunft der Runtime bestellt ist.

Sowohl für HTML5 als auch für Silverlight und Flash wird es in Zukunft Einsatzbereiche geben, die mit der jeweils anderen Technologie nicht oder nicht sinnvoll zu bedienen sind. .NET-Programmierer werden es zu schätzen wissen, mit einer objektorientierten Programmiersprache arbeiten zu dürfen, mit der sich, im Gegensatz zu JavaScript, auch größere, robuste Anwendungen erstellen lassen.

Programmbeispiel zum Download

Die Dateien für das "World-Wide-Wings"-Beispielprogramm aus dem Artikel finden Sie auf unserem FTP-Server zum Download (.zip, 2,7 MByte).

Dieser Artikel soll den Streit um Silverlight und HTML aber nicht erneut entfachen, sondern anhand eines praxisorientierten Beispiels zeigen, wie sich die aktuelle Silverlight-Technik für eine Geschäftsanwendung anwenden lässt. Besonderes Augenmerk liegt hierbei auf dem Einsatz des Model-View-ViewModel-Patterns (MVVM), für das in der neuen Silverlight-Version einige Neuerungen hinzugekommen sind und Lücken zu WPF geschlossen wurden. Mit einer entsprechenden Architektur lassen sich WPF- und Silverlight-Anwendungen nun mit fast identischer Codebasis aufbauen.

Fliegen mit Silverlight

Als Anwendungsbeispiel dient die fiktive Fluggesellschaft "World-Wide-Wings", für die eine Buchungsoberfläche geschaffen werden soll. Im ersten Schritt soll der Flug durch Auswahl von Start und Ziel festgelegt, im zweiten ein Passagier aus der Datenbank zugeordnet und im letzten Schritt die Flugbuchung verifiziert und persistiert werden. Da es vornehmlich darum geht, die Vorgehensweise und die Techniken zu erklären, wird die Demoanwendung bewusst einfach aufgebaut.

Die Geschäftslogik, die hinter der Anwendung steht, besteht aus einem Webservice, der die benötigten Funktionen bereitstellt. Zu den abrufbaren Informationen gehören unter anderem die Liste der Flughäfen, die verfügbaren Flüge sowie die Liste der Passagiere. Auf den Webservice selbst wird nur am Rande eingegangen. Der Schwerpunkt liegt auf der Oberflächenprogrammierung mit Silverlight.

Die Flugbuchung erfolgt somit in drei Schritten, dabei ist zunächst die Flugverbindung festzulegen. Anwender müssen dafür den Start- und Zielflughafen auswählen, Tooltips, die ein exemplarisches Foto der betreffenden Stadt zeigen, sollen sie dabei unterstützen (Abbildung 1).

Über den Webservice werden asynchron Fotos für Tooltips abgerufen. (Abb. 1)

Anschließend gibt der Webservice die für die gewählten Flughäfen verfügbaren Verbindungen zurück (Abbildung 2).

Die Geschäftslogik auf der Serverseite ermittelt die verfügbaren Flüge. (Abb. 2)

Im nächsten Schritt ist der Passagier auszuwählen. Für die Eingabe ist entweder der Nachname oder, falls bekannt, die Passagier-ID zulässig (Abbildung 3).

Auch die Passagierliste wird vom Webservice bereitgestellt. (Abb. 3)

Im letzten Schritt sind alle Eingaben nochmals zur Überprüfung anzuzeigen, anschließend soll die Geschäftslogik die Buchung vornehmen (Abbildung 4).

Im dritten Dialogfenster werden die Daten aus den beiden ersten angezeigt. (Abb. 4)

Wie den Screenshots zu entnehmen ist, soll als Rahmen ein Hauptfenster eingesetzt und in einem Teilbereich die jeweils aktive Dialogansicht dargestellt werden. Neben dem Hauptfenster benötigt die Anwendung daher drei Ansichten (Views).