Difference between revisions of "Java-Webstart, Silverlight und Flash"

From no name for this wiki
Jump to: navigation, search
(Vergleich)
(JavaFX)
 
(30 intermediate revisions by 5 users not shown)
Line 20: Line 20:
  
 
== Silverlight 1 ==
 
== 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 (Java) Skript Sprache und XAML. Silverlight 1 ist Flash/Flex unterlegen, darum lohnt sich ein Einarbeiten gar nicht.
+
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.
  
== Silverlight 2 ==
+
=== Dateien ===
Mit Silverlight 2 kann man auf die CLR (.net Runtime) zugreifen, obwohl mit Einschränkungen. Die Dateien werden in ein ZIP Archiv verpackt und als .xap File aufs Netz gestellt. Interessant ist Dynamic Language Runtime. Code kann also in einer Skriptsprache abgelegt werden (z.B. IronPython). Siehe am besten [http://en.wikipedia.org/wiki/Silverlight Silverlight].
+
In einer Silverlight 1 Applikation sind typischerweise folgende Dateien:
 +
 
 +
* Default.html: HTML Datei, welche die Applikation einbettet. Hier ein Sample: [http://www.claude-glauser.ch/silverlight/sample1/Default.html Default.html]
 +
 
 +
* Page.xaml: XAML Datei mit dem Userinterface. Hier ein Sample: [http://www.claude-glauser.ch/silverlight/sample1/Page.xaml Page.xaml]
 +
 
 +
* Silverlight.js: Javascriptdatei, um die Applikation aufzustarten. [http://www.claude-glauser.ch/silverlight/sample1/Silverlight.js Silverlight.js]
 +
 
 +
* Page.xaml.js: Javaskriptdatei mit dem Programmcode wie Eventhandlers u.s.w. Hier ein Sample: [http://www.claude-glauser.ch/silverlight/sample1/Page.xaml.js 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 [http://www.claude-glauser.ch/silverlight/sl2sample1/SilverlightApplication1.xap .xap] Datei verpackt):
 +
 
 +
* [http://www.claude-glauser.ch/silverlight/sl2sample1/AppManifest.xaml AppManifest.xaml] In dieser Datei ist festgehalten, wo der Entrypoint der Silverlight2 Applikation zu finden ist.
 +
 
 +
* [http://www.claude-glauser.ch/silverlight/sl2sample1/SilverlightApplication1.dll 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 <tt>mscorlib</tt>, <tt>System.Windows</tt>, <tt>System</tt> und <tt>System.Windows.Browser</tt>.
 +
 
 +
* [http://www.claude-glauser.ch/csharp/silverlight/TestPage.html TestPage.html] Beispiel HTML Seite zum Einbetten der SL Applikation. Anbei noch ein Link im TXT Format: * [http://www.claude-glauser.ch/silverlight/sl2sample1/TestPage.txt TestPage.txt].
 +
 
 +
 
 +
Interessant ist Dynamic Language Runtime. Code kann also in einer Skriptsprache abgelegt werden (z.B. IronPython). Siehe am besten [http://en.wikipedia.org/wiki/Silverlight 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 http://www.claude-glauser.ch/j2ee/javafx/Color_Wheel.html]
  
 
== Flash von Adobe ==
 
== Flash von Adobe ==
Line 29: Line 76:
  
 
== Fazit ==
 
== 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.

Latest revision as of 13:24, 28 November 2010

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.