Java-Webstart, Silverlight und Flash

From no name for this wiki
Revision as of 12:24, 28 November 2010 by Claude (talk | contribs) (JavaFX)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Mit Java Webstart und Java Applets steht seit Jahren der Weg für intelligente Webanwendungen offen. Kann man das auch mit .net?

WPF Browser Application, XAML Browser Application

Das Gegenstück zu Java Webstart ist ganz klar WPF Browser Application, oder auch XAML Browser Application genannt (XBAP). WPF steht für Windows Presentation Foundation, XAML für Extensible Application Markup Language. Es stehen alle Möglichkeiten von .net (3.5) offen. WPF Browser Application können mit den Express Edition von Visual Studio erstellt werden. Wizards werden bereit gestellt. Aber es ist eigentlich nur das SDK Voraussetzung. Eine typische WPF besteht aus folgenden Dateien:

  • MyApp.xbap: Diese Datei ist analog zu Javas .jnlp Datei. Gibt man im Browser eine URL ein, welche auf eine .xbap Datei zeigt, dann wird die XBAP Applikation gestartet. Die Datei enthält XML. Hier ein Beispiel: WPFRegularExpressionsTester.xbap
  • MyApp.exe.manifest: Diese Datei enthält Informationen über ein .net Assembly. z.b. benötigte Berechtigungen und dependent Assemblies. Die Assemblies müssen signiert sein. Hier ein Beispiel: WPFRegularExpressionsTester.exe.manifest
  • MyApp.exe: Das ist das Assembly, welches die Applikation enthält. Die XAML Datei wird kompiliert: man sucht vergebens nach einer .xaml Datei in den Resourcen des Assemblies. Hier ein Beispiel: WPFRegularExpressionsTester.exe

MIME Types

  • .xbap: application/x-ms-xbap
  • .manifest: application/manifest
  • .application: application/x-ms-application
  • .xps: application/vnd.ms-xpsdocument

Programm

Das Programm zum Starten von .xbap Applikationen heisst Windows Presentation Foundation Host. Das exe heisst PresentationHost.exe. Gegenstück zu javaws.exe

Silverlight 1

Silveright 1 ist eine abgespeckte Version von WPF Browser Application. Der Codename war Windows Presentation Foundation/Everywhere. Mit Everywhere ist die Plattformunabhängikgeit gemeint. Silverlight 1 basiert auf einer Javascript Sprache und XAML. Im Unterschied zu Javawebstart und WPF kann man ohne Compiler eine Applikation schreiben. Es ist also nich einmal ein SDK nötig, sondern nur ein Texteditor.

Dateien

In einer Silverlight 1 Applikation sind typischerweise folgende Dateien:

  • Default.html: HTML Datei, welche die Applikation einbettet. Hier ein Sample: Default.html
  • Page.xaml: XAML Datei mit dem Userinterface. Hier ein Sample: Page.xaml
  • Silverlight.js: Javascriptdatei, um die Applikation aufzustarten. Silverlight.js
  • Page.xaml.js: Javaskriptdatei mit dem Programmcode wie Eventhandlers u.s.w. Hier ein Sample: Page.xaml.js

Silverlight 2, 3 und 4

Mit Silverlight 2 (3 und auch 4) kann man auf die CLR (.net Runtime) zugreifen, obwohl mit Einschränkungen. Die Einschränkungen wurden definiert, damit auch Implementationen für OSX und Linux gemacht werden können. Silverlight 2 ist ein Superset von Silverlight 1.

Die Dateien werden in ein ZIP Archiv verpackt und als .xap File aufs Netz gestellt.

MimeType for .xap ist application/x-silverlight-app

Anbei Dateien von einem Hello World (sind in einer .xap Datei verpackt):

  • AppManifest.xaml In dieser Datei ist festgehalten, wo der Entrypoint der Silverlight2 Applikation zu finden ist.
  • SilverlightApplication1.dll Das Assembly mit der Silverlight Applikation. Der Entrypoint ist eine Klasse, welche von der WPF Klasse (im PresentationFramework.dll) System.Windows.Application erbt. Im Beispiel hat das Assemlby Referenzen zu mscorlib, System.Windows, System und System.Windows.Browser.


Interessant ist Dynamic Language Runtime. Code kann also in einer Skriptsprache abgelegt werden (z.B. IronPython). Siehe am besten Silverlight.

JavaFX

Java FX ist ein grosser Schritt für die Java Welt. Das Einbinden von JavaFx ist nun einfacher geworden: - Im Html eine Java-Script Datei einbinden: http://dl.javafx.com/1.2/dtfx.js - Jar Datei mit Programm heraufladen. - JavaScript einbinden:

<script>
   javafx(
       {
             archive: "Color_Wheel.jar",
             draggable: true,
             width: 200,
             height: 200,
             code: "color.ColorWheel",
             name: "Color_Wheel"
       }
   );
</script>

- JNLP muss leider immer noch mitgeliefert werden.

Sample: http://www.claude-glauser.ch/j2ee/javafx/Color_Wheel.html

Flash von Adobe

Für Infos zu Flash und Flex, siehe Adobe Flash.

Fazit

Anbei die Pluspunkte:

  • Für die Entwicklung von Silverlight ist kein SDK nötig, alles kann mit XML Dateien und mit Javaskripten erstellt werden.
  • Silverlight ab 2.0 kann CLR Assemblies enthalten, dann wird aber ein SDK benötigt.
  • JavaFx ist sehr vielversprechend.
  • Flash/Flex unterstützt High Quality Video.
  • JavaWebStart, Flash/Flex und Silverlight sind plattformunabhänig. Bei Silverlight wird die Linux-Impelmentation durch Novell umgesetzt (Moonlight).
  • In JavaWebStart und in WPF Browser Application kann auf eine riesige Library zurückgegriffen werden. Die Silverlight2 Library ist eine Untermenge von WPFBA.