Pappala XBAP

In letzter Zeit ist Silverlight das große Schlagwort wenn es um neue Webtechnologien im Hause Microsoft geht. Mit der kommenden Version 2.0 werden erstmals viele nützliche Features aus dem .NET Framework in die stark abgespekte Laufzeitumgebung von Silverlight übernommen. Unter den Neuerungen befinden sich Technologien wie LINQ oder die Unterstützung von WS*-Diensten. Das Microsoft auch intern auf Silverlight umstellt kann man z.B. an der Beta der nächsten Download Center Version sehen. Die andere Seite der Medaille gibt es aber auch, so zeigt Rob Eisenberg in seinem Post das in Silverlight noch nicht alles Gold ist was glänzt. Ein Beispiel ist die fehlende 3D-Unterstützung oder Hardwarebeschleunigung.

Eine Alternative stellt hier meiner Meinung nach XBAP (XAML Browser Application) dar. XBAP ist keine neue Technologie sondern schon seit beginn von WPF verfügbar. Es ermöglicht WPF Anwendungen im Browser ausführen zu können. Ein Beispiel findet sich hier.

Dafür muss lediglich im Visual Studio ein Browser Application Projekt angelegt werden und darin entweder seine bestehende Applikation eingebunden oder eine neue WPF Anwendung entwickelt werden. Nach dem Kompilieren erhält man unter anderem eine .xbap Datei die zusammen mit den .exe, .dll und anderen Dateien auf einem Webserver deployed werden. Dabei werden alle MIME-Fähigen Webserver unterstützt wie z.B. der IIS oder Apache. Es ist keine zusätzliche Registrierung o.ä. am Webserver nötigt. Der Anwender navigiert in seinem Browser zu der URL mit der Endung .xbap und läd dann automatisch die Anwendung in seinen Cach. Hierbei handelt es sich wie bei Silverlight um ClickOnce deployment. Nach dem Download startet die WPF Anwendung automatisch, der Host der Anwendung ist nun der Browser. Als mögliche Browser kommen der IE ab der Version 6 und Firefox in Frage.

Vorteil ist bei dieser Variante mit XBAP das auf den kompletten Funktionsumfang des .NET Frameworks zurückgegriffen werden kann und man nicht auf den begrenzten Funktionsumfang des Silverlight Frameworks beschränkt ist. Natürlich gibt es aber auch Beschränkungen mit denen ein Programmierer bei XBAP leben muss. Der wohl größte Nachteil ist das der Client mindestens das .NET Framework 3.0 installiert haben muss. Außerdem wird die XBAP Anwendung in einer Sandbox innerhalb des Browsers ausgeführt. Das bedeutet es gibt einige Einschränkungen, so ist der Speicher (Isolatet Storage) auf 512KB begrenzt und ein Zugriff auf das lokale Dateisystem ist nicht/eingeschränkt möglich. Da die Sandbox mit den Rechten der Internet Zone läuft, ist z.B. die Benutzung von WCF nicht möglich. Eine Aufstellung welche Funktionen nicht erlaubt sind findet man bei Microsoft. In diesem Post wird aber erklärt wie man durch den Einsatz von Zertifikaten den kompletten Funktionsumfang des .NET Frameworks freischalten kann.

Da die XBAP Anwendungen gecached werden ist das Laden bei einem erneuten Aufruf wesentlich schneller. Liegt aber auf dem Server eine neue Version so wird diese natürlich zuvor heruntergeladen. Ein weiteres Feature ist das Nachladen von Dateien, so können z.B. ganze DLLs oder Grafiken erst bei Verwendung vom Server heruntergeladen werden.

Wer Interesse an XBAP gefunden hat sollte sich dazu unbedingt das Interview mit zwei der Programmierer von Microsoft und deren Blogs scorbs.com und laurenlavoie.com ansehen.

Mein Fazit lautet:
Handelt es sich um eine Internet-Applikation die keine 3D-Unterstützung und nur geringfügige Netzwerkkommunikation benötigt so ist Silverlight wohl die erste Wahl. Befindet man sich jedoch im Intranet und hat die Möglichkeit den Benutzern über das Softwareverteilungssystem das passende .NET Framework und evt. auch die benötigten Browserzertifikate zukommen zu lassen so ist XBAP die bessere Alternative. Bei bereits bestehenden WPF Anwendungen ist so der Weg zur Browserapplikation ein Kinderspiel.

Leave a Reply