<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.codecomplete.de/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>XAML Blog : OpenLaszlo</title><link>http://www.codecomplete.de/blogs/xamlblog/archive/tags/OpenLaszlo/default.aspx</link><description>Tags: OpenLaszlo</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Flex, Ajax, OpenLazlo, Silverlight - ein Überblick</title><link>http://www.codecomplete.de/blogs/xamlblog/archive/2007/07/04/silverlight-openlazlo-flex-rich-internet-application-technology.aspx</link><pubDate>Wed, 04 Jul 2007 10:34:00 GMT</pubDate><guid isPermaLink="false">81aaacb2-e9d6-4141-b1a3-d6a38e006815:1451</guid><dc:creator>jpkleinau</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.codecomplete.de/blogs/xamlblog/commentapi.aspx?PostID=1451</wfw:comment><comments>http://www.codecomplete.de/blogs/xamlblog/archive/2007/07/04/silverlight-openlazlo-flex-rich-internet-application-technology.aspx#comments</comments><description>&lt;p&gt;Welchen Mehrwert Rich Internet Applications für ein Unternehmen haben kann, habe ich in dem Artikel &amp;quot;&lt;a href="http://www.codecomplete.de/blogs/xamlblog/archive/2007/06/28/business-value-der-rich-internet-applications.aspx"&gt;&lt;font color="#7fac20"&gt;Business Value der Rich Internet Applications&lt;/font&gt;&lt;/a&gt;&amp;quot; kurz und knapp zusammen gefasst. Für Rich Internet Applications existieren verschiedene Ansätze, Produkte&amp;nbsp;und Technologien, die jeweils Vor- und Nachteile im Einsatz mit sich bringen. In diesem Artikel, will ich mir die angebotenen Produkte/Technologien etwas näher ansehen. Eine echte Evaluierung wird das jedoch nicht werden, da eine solche nicht abstrahiert werden kann, sondern am konkreten Anwendungsfall und vor dem Hintergrund des Unternehmens durchgeführt werden sollte. Ich werde versuchen, den Artikel regelmäßig zu aktualisieren und bitte auch um Mithilfe in den Kommentaren, sofern der Inhalt hier von der Sicht der Realität eines anderen Experten unterscheidet oder wenn es Updates gibt.&lt;/p&gt;
&lt;p&gt;Ich stelle den Artikel unter die &lt;a class="" href="http://upload.wikimedia.org/wikipedia/de/1/1d/GNU_Free_Documentation_License_Version_1.2_dreispaltig.pdf" target="_blank"&gt;&lt;em&gt;GNU Freie Dokumentationslizenz&lt;/em&gt;&lt;/a&gt; mit der Ergänzung, dass jede Online Verwendung einen Backlink hierher stellen sollte. Erweiterungen, Klarstellung von anderen sind ausdrücklich erwünscht. Der Abschnitt &amp;quot;AJAX - Was sind die Nachteile?&amp;quot; wurde von&lt;strong&gt; &lt;/strong&gt;&lt;a class="" href="https://www.xing.com/profile/Felix_Schendel" target="_blank"&gt;&lt;strong&gt;Felix Schendel&lt;/strong&gt;&lt;/a&gt; ergänzt und aktualisert, von &lt;a class="" href="https://www.xing.com/profile/Raju_Bitter/" target="_blank"&gt;Raju Bitter&lt;/a&gt; (Laszlo Systems) erhielte ich Hinweise zu OpenLaszlo als Ergänzung zu meinem Artikel (das Urheberrecht verbleibt bei den Autoren).&lt;/p&gt;
&lt;h2&gt;&lt;font color="#66ccff"&gt;Adobe Flex / Flash&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;URL: &lt;a class="" href="http://www.adobe.com/de/products/flex/" target="_blank"&gt;http://www.adobe.com/de/products/flex/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Adobe Flex besteht aus einem Server, einer Entwicklungsumgebung und einem Player. Aktuell (Stand Juli 2007 in Beta) sind das:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;u&gt;Adobe Flex Builder&amp;nbsp;3&lt;/u&gt; (mit Flex 3-SDK und Adobe Flash Player 9)&lt;br /&gt;Dahinter versteckt sich eine Ecclipse Entwicklungsumgebung, die entsprechend der Bedürfnisse von Flex angepasst und erweitert wurde. &lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;u&gt;Adobe LiveCycle Enterprise Suite&lt;/u&gt; (mit Flex 3-SDK und Flash Player 9)&lt;br /&gt;In den vorherigen Flex Version war dies der Flex Server, der für jede Anwendung notwendig war und in der Anschaffung recht kostspielig. In der Version des Flex&amp;nbsp;Data Service 2 wird für kleinere Applikationen kein dedizierter Flex Server mehr benötigt. Die Suite besteht nun aus Adobe LiveCycle Data Services, Flex 2 Tag Library for JSP und Ajax Data Services. Damit versucht sich Adobe in den Bereich der J2EE Anwendungen zu bewegen. Der Flex Server läuft auf verschiedenen Java Application Servern.&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;u&gt;Adobe Flash Player 9&lt;/u&gt;&lt;br /&gt;Der Adobe Flash Player wird beim Enduser benötigt. Diesen erhält er als Browser Plugin. Die Durchdringsungstiefe von Adobe Flash Playern im Markt ist recht hoch, auch wenn die meisten Endkunden eher noch eine ältere Version auf dem PC haben.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;Was kann ich damit machen?&lt;/h3&gt;
&lt;p&gt;Durch die gute Verteilung von Flash Playern bei den Endkunden und der relativ sicheren Einbindung in die verschiedenen Browsern ermöglicht Flex relativ leicht einen bereits vorbereiteten Markt zu erobern. Die Flex Entwicklungsumgebung ist für Java Entwickler relativ bekannt und keine Einstiegshürde. Der Datenserver bringt vorab eine Menge an Services und Dienstleistungen mit, die besonders für Medienübertragung gut geignet sind.&lt;/p&gt;
&lt;p&gt;Durch die Adobe Integrated Runtime (AIR) lassen sich Flex Anwendungen auf den Desktop bringen. Das unter dem Codename Appollo genannte Projekt firmiert nun unter Adobe® AIR™. Das Flex Component Kit for Flash CS3 konvertiert Flash Bestandteile so, dass sie sich in Flex harmonisch einfügen.&lt;/p&gt;
&lt;p&gt;Rich Internet Applications (RIA) lassen sich mit Flex gut entwickeln, es gibt kaum Anwendungsfälle für RIA, die sich damit nicht abbilden lassen.&lt;/p&gt;
&lt;h3&gt;Was sind die Nachteile?&lt;/h3&gt;
&lt;p&gt;Flash stellt bis heute keinen Offenen Standard dar, die Abhängigkeit vom Hersteller ist unabänderlich. Es gibt Bestrebungen seitens Adobe, Flex auf eine Open Source Ebene zu heben, aber diese unter der Mozilla Public License (MPL) veröffentlichten Teile beinhalten nicht den Flash Player selber, nur dessen Scripting Engine. Alternativ gibt es Gnash als Flash Player, ein GNU Project&amp;nbsp;der Free Software Foundation (FSF).&lt;/p&gt;
&lt;p&gt;Die Zusammenarbeit mit Designern enthält mehrere Brüche und ist nicht fließend. Der große Vorteil von Flash ist die weit verbreitete Expertise hinsichtlich der Erstellung von Animationen bis hin zu Kleinstanwendungen. Davon ist in Flex nur wenig zu merken. Zwar erhält man durch die Verwendung von Action Script, umgewandelten Flash Komponenten und importierten Flash Medien einen gewissen Vorteil, doch bleibt der weit hinter den eigentlichen Möglichkeiten zurück, wäre eine vollständige Integration umgesetzt worden.&lt;/p&gt;
&lt;p&gt;Flex vereint mehrere Programmiersprachen und Technologien, so werden für größere Anwendungen Experten für Java, Application Server mit einigen Zusätzen, MXML und ActionScript sowie Flash&amp;nbsp;&amp;nbsp;&lt;br /&gt;benötigt. Die Mitarbeiter eines Projekts sind nur bedingt flexibel einsetzbar.&lt;/p&gt;
&lt;h2&gt;&lt;font color="#66ccff"&gt;AJAX&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;URL: &lt;a class="" href="http://de.wikipedia.org/wiki/Ajax_(Programmierung" target="_blank"&gt;http://de.wikipedia.org/wiki/Ajax_(Programmierung&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Für AJAX existiert ein hervorragender WIKI Eintrag (oben verlinkt), so dass ich hier nur eine kurze Zusammenfassung bringen will. Bei &amp;quot;&lt;strong&gt;A&lt;/strong&gt;synchronous &lt;b&gt;J&lt;/b&gt;avaScript &lt;b&gt;a&lt;/b&gt;nd &lt;b&gt;X&lt;/b&gt;ML&amp;quot; (AJAX) handelt es sich nicht um eine Technologie oder ein Produkt, sondern um ein Architekturpattern im weitesten Sinne des Begriffs. Es werden bekannte Technologien eingesetzt, um den Eindruck einer echten Anwendung zu simulieren. Technisch verbirgt sich das von Microsoft ehemals für die Outlook Browser Anwendung konstruierte &amp;quot;XMLHttpRequest-Objekt&amp;quot; dahinter, aktuelle Planungen zur Standardisierung des Objekts seitens des W3C und der Open Ajax Initiative sollen den de-facto Standard zu einem echten werden lassen.&lt;/p&gt;
&lt;h3&gt;Was kann ich damit machen?&lt;/h3&gt;
&lt;p&gt;Mit AJAX lassen sich serverseitige Anwendungen erstellen.&amp;nbsp;AJAX Anwendungen lassen sich auf der Seite des Servers mit jeder beliebigen Technologie erstellen. Auf der Browserseite ist man auf umfangreiches Javascript angewiesen.&lt;/p&gt;
&lt;h3&gt;Was sind die Nachteile?&lt;/h3&gt;
&lt;p&gt;JavaScript kann innerhalb einer Anwendung aus Sicherheitsgründen keine Daten von verschiedenen Servern holen, somit müssen Fremddienste über den Auslieferungs-Server angesprochen werden. Dieses Problem tritt auf, wenn eine Internetseite versucht mehrere AJAX Dienste zu nutzen (sogenannte Mashups). Diese Cross-Domain Problematik kann aber auch rein clientseitig z.B. über dynamische Einbindung HTML-standardkonformer Script-Tags gelöst werden. &lt;br /&gt;&lt;br /&gt;Durch JavaScript als Basis ist der AJAX Ansatz bzgl. reiner Rechenleistung langsamer als andere RIA Ansätze. Dies macht sich je nach Performance des Hostrechners bei sehr komplexen Oberflächen bemerkbar. Moderne JavaScript Frameworks legen daher ein besonderes Augenmerk auf Performanceoptimierung und erlauben so gut wie immer die Erstellung der gewünschten Oberflächen. &lt;br /&gt;&lt;br /&gt;Der &amp;quot;Player&amp;quot; einer AJAX Anwendung ist der Browser, dieser hat eigene Einstellungen und Funktionen, die nicht out-of-the-box mit AJAX Anwendungen harmonieren müssen (beispielsweise der &amp;quot;Zurück&amp;quot; Button). Aktuelle JavaScript Frameworks kapseln jedoch diese Unzulänglichkeiten und stellen Möglichkeiten der Behandlung bereit. &lt;br /&gt;&lt;br /&gt;AJAX Anwendungen erlauben eine weitaus interaktivere und dynamischere Oberfläche als reine HTML Seiten, doch umfangreiche visuelle Darstellungsmöglichkeiten wie 3D-Animationen oder Videos aber auch die Einbindung von Audio sind im Verhältnis zu Flash oder &lt;a href="http://www.microsoft.com/silverlight/"&gt;Microsoft Silverlight&lt;/a&gt; sehr eingeschränkt.&lt;br /&gt;&lt;/p&gt;
&lt;h2&gt;&lt;font color="#66ccff"&gt;OpenLazlo&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;URL: &lt;a class="" href="http://www.openlaszlo.org/" target="_blank"&gt;http://www.openlaszlo.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Laszlo Systems veröffentlichte 2002 den proprietären Server&amp;nbsp;&amp;quot;Laszlo Presentation Server&amp;quot; (LPS). Dieser wurde von der Firma im September 2004 unter der Common Public License als Open Source frei gegeben. Die Architektur ähnelt derjenigen von Flex, weist allerdings geringere Komplexität auf.&lt;/p&gt;
&lt;p&gt;Der Compiler wandelt XML Dateien, die Definitionen und Programmcode enthalten&amp;nbsp;(LZX) in Flash Bytecode um, diese werden vom Client abgeholt und durch den Flash Player dargestellt.&lt;/p&gt;
&lt;p&gt;OpenLazlo SDK 4 besteht aus einem Serveranteil (Java Servlet), einem Compiler (in Java geschrieben)&amp;nbsp;und einer Javascript Bibliothek. Zum Erzeugen von Rich Internet Anwendungen wird ein Webserver benötigt und beim Client ein einigermaßen aktueller Flash Player. Soll die Anwendung dynamisch reagieren, so empfiehlt sich die Implementierung serverseitig mit Java und der Einsatz eines Anwendungssververs wie Tomcat.&lt;/p&gt;
&lt;h3&gt;Was kann ich damit machen?&lt;/h3&gt;
&lt;p&gt;Durch die Offenlegung des Codes bis hin zum Compiler ist OpenLazlo recht gut verwendbar und leicht verständlich. Die Komplexität ist gering und die Erweiterung denkbar einfach, da recht leicht auf eine große Menge von Java Anbindungen und Bibliotheken zurück gegriffen werden kann.&lt;/p&gt;
&lt;p&gt;Durch Flash sind die Anwendungen in der Oberfläche wirklich reichhaltig und dank der großen Verbreitung von Flash stellt dies auch keine Hürde dar.&lt;/p&gt;
&lt;p&gt;Seit dem Release der Version 4.0 im März 2007 unterstützt OpenLaszlo die Generierung von DHTML/Ajax Anwendungen aus der gleichen LZX Codebasis (d.h.: einmal entwickeln für Flash und Ajax/DHTML. LZPix war die erste Anwendung, die sowohl als Flash wie auch als Ajax Anwendung läuft (&lt;a class="" href="http://www.openlaszlo.org/demos#LZPIX" target="_blank" rel="nofollow"&gt;&lt;font color="#666666"&gt;www.openlaszlo.org/demos&lt;/font&gt;&lt;/a&gt;). Sun Microsystems hat mit dem &amp;quot;Projekt Orbit&amp;quot; einen OpenLaszlo Player für die Java-Microedition als Proof-of-Concept veröffentlicht, auch als Open Source: &lt;a class="" href="https://orbit.dev.java.net/" target="_blank" rel="nofollow"&gt;&lt;font color="#666666"&gt;https://orbit.dev.java.net/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Technisch ist es problemlos möglich, aus dem LZX Sourcecode einer OpenLaszlo Anwendung eine &lt;a href="http://www.microsoft.com/silverlight/"&gt;Microsoft Silverlight&lt;/a&gt;-Anwendung zu generieren, eine entsprechende Option wird zumindest angedacht.&lt;/p&gt;
&lt;h3&gt;Was sind die Nachteile?&lt;/h3&gt;
&lt;p&gt;OpenLaszlo setzt trotz OpenSource auf ein proprietäres Format (Flash) auf.&lt;/p&gt;
&lt;p&gt;Eine IDE für Laszlo existiert nur bedingt, das zugehörige Ecclipse Projekt wurde von IBM an die OpenSource Community verschenkt und versauerte dort, bis es im Dezember 2006 eingestellt wurde. Eine IDE gibt es noch von &lt;a href="http://www.spket/"&gt;Spket&lt;/a&gt;, die für den Heimeinsatz kostenlos ist.&lt;/p&gt;
&lt;p&gt;Die Verbreitung der Technologie ist gering, somit findet sich eine starke Hürde bei der Anwerbung von Experten oder beim Lernen von LZX (die Community ist mit etwa 20.000 angemeldeten Benutzern nicht sehr groß).&lt;/p&gt;
&lt;p&gt;Der Workflow zwischen Designern und Entwicklern ist recht gebrochen. Zwar lassen sich Flash Mediendateien importieren und zum Client bringen, doch ist das Hemmnis deutlich höher als bei Action Script.&lt;/p&gt;
&lt;h2&gt;&lt;font color="#66ccff"&gt;Silverlight&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;URL: &lt;a class="" href="http://www.microsoft.com/silverlight/" target="_blank"&gt;http://www.microsoft.com/silverlight/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das &lt;a class="" href="http://www.microsoft.de/silverlight/" target="_blank"&gt;&lt;font color="#666666"&gt;Produkt Silverlight&lt;/font&gt;&lt;/a&gt; erschien als Vorabversion zur Mix 07 und war zuvor unter dem Codenamen WPF/E bekannt, diese Abkürzung sagte deutlich die Zielrichtung an :&amp;quot;&lt;strong&gt;Windows Presentation Foundation/Everywhere&lt;/strong&gt;&amp;quot;. Mit Silverlight versucht Microsoft, eine Browser Erweiterung in den Markt zu bringen, die es ermöglichen soll, einen großen Teil der Fähigkeiten der Windows Presentation Foundation auf beliebige Plattformen zu transportieren. Bereits die ersten Silverlight Downloads waren sowohl für Microsoft wie auch Macintosh Intel Plattformen verfügbar. Von dem Open Source Mono Projekt wird zu Recht erwartet, noch 2007 eine Silverlight Version auf Linux portiert zu haben (Codename &lt;a class="" href="http://www.mono-project.com/Moonlight" target="_blank"&gt;&lt;font color="#666666"&gt;Moonlight&lt;/font&gt;&lt;/a&gt;), Stand Juli 2007 erreichte das Projekt bereits deutliche Ergebnisse.&lt;/p&gt;
&lt;p&gt;Silverlight besteht aus einem Browser Plugin, das in der kommenden 1.1 Version eine Laufzeitumgebung (.NET Framework for Silverlight) mit sich bringt, um .Net Code in eingeschränktem Rahmen auszuführen.&lt;/p&gt;
&lt;h3&gt;Was kann ich damit machen?&lt;/h3&gt;
&lt;p&gt;Mit Microsoft Silverlight können durch die Windows Presentation Foundation (WPF) reichhaltige Oberflächen in Rich Internet Anwendungen realisiert werden, die auf Basis von Scriptsprachen und vollwertigen Programmiersprachen bearbeitet werden können. Die Sprachwahl ist durch die DLR (dynamic language runtime) relativ frei (u.a. JavaScript, Phyton, Ruby). Die Kommunikation erfolgte in den ersten Versionen über Javascript (AJAX), kann ab der Version 1.1 über eine eingeschränkte .Net Funktionalität realisiert werden (HTTP- und Webservice-Unterstützung).&lt;/p&gt;
&lt;p&gt;Ein besonderer Webserver wird nicht benötigt, da der GUI Code vollständig beim Client ausgeführt wird, während über HTTP oder Webservices Daten und Funktionen abgerufen werden. Die Leistungen des Servers können in einer beliebigen Sprache realisiert werden.&lt;/p&gt;
&lt;p&gt;Durch die Verwendung der Deklarationsprache XAML als Offenen Standard&amp;nbsp;und der .Net Umgebung kann man auf eine Vielzahl von Werkzeugen von Microsoft und anderen Anbietern zurückgreifen. Diese Kenntnisse gut verbreitet. Die Wiederverwendung der Kenntnisse ist durch die annähernde Deckungsgleichheit der .Net 3.5 Client Entwicklung gegeben.&lt;/p&gt;
&lt;p&gt;Der Workflow zwischen Designern und Entwicklern ist fließend und gut gelöst.&lt;/p&gt;
&lt;h3&gt;Was sind die Nachteile?&lt;/h3&gt;
&lt;p&gt;Silverlight ist neu und die Verteilung beim Endkunden recht gering. Auch sind noch nicht alle Kinderkrankheiten behoben.&lt;/p&gt;
&lt;p&gt;Wie bei Flash muss ein PlugIn im Browser installiert werden, dies wird als Sicherheitsrisiko gesehen.&lt;/p&gt;&lt;img src="http://www.codecomplete.de/aggbug.aspx?PostID=1451" width="1" height="1"&gt;</description><category domain="http://www.codecomplete.de/blogs/xamlblog/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://www.codecomplete.de/blogs/xamlblog/archive/tags/OpenLaszlo/default.aspx">OpenLaszlo</category><category domain="http://www.codecomplete.de/blogs/xamlblog/archive/tags/Ajax/default.aspx">Ajax</category><category domain="http://www.codecomplete.de/blogs/xamlblog/archive/tags/Flash/default.aspx">Flash</category></item></channel></rss>