Unterschiede zwischen WPF und Silverlight
Bei WPF handelt es sich um die Visualisierungsbestandteile von Anwendungen,
die in der Regel auf den Zielcomputern fest installiert
werden. Als Voraussetzung zur Ausführung einer WPF-Anwendung
muss .NET Framework ab der Version 3.0 installiert sein. Expression
Blend und Expression Design sind beispielsweise WPF-Anwendungen,
die Sie als Benutzer zuvor auf Ihrem System installiert
haben.
Silverlight ist der kleine Bruder von WPF. Anstelle des mächtigen
.NET Framework setzt Silverlight nur die Installation eines kleinen
Plug-Ins voraus, bei welchem es sich um ein abgespecktes .NET
Framework handelt. Dieses Plug-In steht für alle gängigen Browser
zur Verfügung, sodass Silverlight im Gegensatz zu WPF plattformübergreifend
eingesetzt werden kann.
Ein weiterer wichtiger Unterschied ergibt sich aus der Architektur
der beiden Anwendungstypen. Eine WPF-Anwendung wird lokal
installiert, greift auf das Dateisystem zu (wenn Sie zum Beispiel eine
Datei speichern), sie kann Werte in der Registrierung zwischenspeichern
oder ruft Daten aus Datenbanken ab. Die Architektur einer
WPF-Anwendung können Sie auch Abbildung 2.8 entnehmen.
Abbildung 2.8: Die Architektur einer WPF-Anwendung mit lokalem und Netzwerkzugriff
Eine Silverlight-Anwendung wird zunächst vollständig in Form der
weiter vorn in diesem Kapitel im Abschnitt »Ergebnis einer Silverlight
2.0-Anwendung« erläuterten XAP-Datei auf den Computer des
Benutzers geladen. Anschließend besteht keine Verbindung mehr
zum Server, von dem die Anwendung stammt. Auf dem Computer
wird nun die Anwendung isoliert ausgeführt. Aus Sicherheitsgründen
kann auch nicht auf das Dateisystem zugegriffen werden, und
eine Datenbank wird die Anwendung auf dem System auch nicht
vorfinden (ganz abgesehen davon, dass Silverlight über keine Funktionen
zum Arbeiten mit Datenbanken verfügt). Werden im Laufe
der Ausführung weitere Daten vorn Server benötigt, zum Beispiel
Daten aus einer Datenbank, dann müssen sie explizit über Schnittstellen
wie Webservices nachgeladen werden. Diese Architektur
finden Sie in Abbildung 2.9 verdeutlicht.
Bei Webservices handelt es sich um separate Anwendungen, die
auf dem Server ausgeführt werden. Sie warten auf Eingaben von
Daten in Form von XML, verarbeiten diese und senden ein Ergebnis
wiederum als XML zurück an den anfordernden Client.
Abbildung 2.9: Die Architektur einer isoliert ablaufenden Silverlight-Anwendung
Aus der Kapselung einer Silverlight-Anwendung auf dem Zielcomputer
ergibt sich die Notwendigkeit, dass alle Datenzugriffe über separate
Anwendungen auf dem Server implementiert werden müssen.
Diese Anwendungen können sich auf dem Server mit Datenbanken
verbinden, Daten abfragen und sie über externe Schnittstellen wie
Webservices an die Silverlight-Anwendung übergeben.