web-dev-qa-db-de.com

Liste der Rich-Web-Anwendungstechnologien

Ich versuche, mich mit der Welt der Rich Web Application vertraut zu machen. Es gibt einige Vergleichstabellen der verfügbaren Technologien in der Wikipedia, aber ich finde es immer noch unklar, welche Optionen für eine umfassende Anwendungsentwicklung zur Verfügung stehen.

Könnten Sie bitte die unten aufgeführten Informationen überprüfen und vervollständigen? Was sind die wichtigsten Vor- und Nachteile jeder Option? Welches ist die beste Wahl für große und sehr umfangreiche Webanwendungen?

Option 1: ASP.NET/ASP.NET MVC
Hersteller: Microsoft
Umgebung: Visual Studio
Sprache: C #
Ausgabe: HTML + JavaScript + AJAX
Beispiel: www.stackoverflow.com

Option 2: Silverlight
Hersteller: Microsoft
Umgebung: Visual Studio
Sprache: C #
Ausgabe: .NET ausführbar?
Beispiel:?

Option 3: Google Web Toolkit
Verkäufer: Google
Umwelt: Eclipse
Sprache: Java
Ausgabe: HTML + JavaScript + AJAX
Beispiel: http://www.projectkaiser.com:8080/pk/

Option 4: Flex
Hersteller: Adobe
Umgebung: ?
Sprache: ?
Ausgabe: Flash (.swf-Datei)
Beispiel: http://listen.grooveshark.com/

Option 5: Adobe AIR
Hersteller: Adobe
Umgebung: ?
Sprache: ?
Ausgabe: AIR
Beispiel: http://www.colabolo.com/de/download.html

Option 5: Ruby on Rails
Hersteller: Rails Core Team
Umwelt:?
Sprache: Ruby
Ausgabe: HTML + JavaScript + AJAX?
Beispiel:?

Option 6: Java-Applets
Verkäufer: So
Umwelt: Eclipse
Sprache: Java
Ausgabe: Java-Applet

Option 7: OpenLeszlo
Verkäufer: ?
Umgebung: ?
Sprache: ?
Ausgabe: ?
Beispiel:?

Option 8: Vexi
Hersteller: Vexi-Kernteam
Umwelt: Eclipse
Sprache: XML + JavaScript
Ausgabe: Java
Beispiel: Demo auf http://vexi.sourceforge.net/

Option 9: Django
Verkäufer: Django-Kernteam
Umgebung: ?
Sprache: Python
Ausgabe: HTML + JavaScript + AJAX
Beispiel:?

Option 10: XUL
???

26

Sie haben alles vermischt. Sie haben hier zwei Ebenen: Benutzeroberfläche, die die App "reichhaltig" macht, und serverseitigen Code.

UI:

Silverlight
Funktioniert am besten mit der .NET-Plattform. Ich würde nicht in Betracht ziehen, Java, Ruby on Rails, PHP oder so etwas beizutreten.
Werkzeuge sind kommerziell.

Flash/Flex (Flash-Plattform)
Mein Favorit und ich halte den ausgereiftesten von der Liste (ich bin meine subjektive Meinung, da ich als Flex/Java-Entwickler arbeite). WebService funktioniert mit allen serverseitigen Technologien und verwendet einfache HTTP-Services. Die beste Integration wird durch AMF-Services (effizientes binäres Protokoll) erreicht. Integration erfolgt auf verschiedenen Ebenen. Für alle Plattformen (.NET, Java EE, PHP, RoR) stehen grundlegende Remote-Aufrufe (für 90% Projekte) zur Verfügung. Es gibt jedoch eine Bibliothek für die High-Level-Interation (Datensynchronisation, Daten-Push, Client-Server-Ereignisse oder sogar Client-Server-Abhängigkeitsinjektion) für Java EE: Adobe Livecycle Data Services (kommerziell) oder GraniteDS und Tide Framework (kostenlos, funktioniert mit JBoss Naht). 

Flex SDK (Compiler und Lib) ist kostenlos, FlexBuilder ist jedoch kommerziell.

OpenLaszlo
Es gibt zwei Optionen - Live-Kompilierung für Flash oder HTML + Javascript auf OpenLaszlo-Server oder Entwicklungszeit-Kompilierung für Flash und Hochladen auf einen http-Server. Kann in die meisten serverseitigen Technologien integriert werden. Die Idee ähnelt dem Flex, war aber zuerst.

Das SDK ist kostenlos, IDE ist eher schlecht.

JavaFX/Java-Applet
Es sind eher experimentelle, grafische Werkzeuge und IDE sind schlecht. Die Idee ist, das Code-Swing-Interface deklarativ (aber nicht XML) als Applet auszuführen. Ich glaube, ich habe keinen Produktionsstatus.

Flash/Flex und Silverlight bietet Ihnen die fortschrittlichsten Tools zum Erstellen einer umfassenden Benutzeroberfläche mit Multimedia (Video-/Audio-Streaming, Verwendung von Webcam, Mikrofon usw.).

Adobe AIR
AIR steht für Adobe Integrated Runtime, mit der Sie auf Ihrem Desktop Flex- oder HTML- + Javascript-Anwendungen ausführen können (vergleichbar mit Java Virtual Machine + WebStart). Für Flex-Anwendungen sind die Integrationen mit Remote-Systemen (.____.) Die gleichen wie oben. AIR-Anwendung wird auf Client-Computern installiert und läuft wie jede andere Anwendung. Sie haben auch Zugriff auf das Dateisystem. AIR läuft auch unter Windows, Mac und Linux/BSD (denke ich).

Serverseite:

Java
Dies ist: Java EE 5 (jetzt Java EE 6) oder einfache Webanwendung ohne Anwendungscontainer. Es gibt einige Javascript-basierte Benutzeroberflächen wie Google Web Toolkit, JBoss RichFaces, IceFaces und einige kommerzielle Dinge. 

Integriert sich gut mit der Flex-Schnittstelle in Integrationsframeworks - Adobe LiveCycle ... (kommerziell), BlazeDS (einfach, kostenlos), GraniteDS + Tide + Gravity (fortgeschritten, kostenlos), WebOrb und andere : Frühling (2 oder 3), JBoss-Naht und viel ...

.NET
Ich bin kein Experte hier. Gibt Ihnen Möglichkeiten für eine JS-Rich-Schnittstelle. integriert sich in Silverlight und Flex (WebOrb, .NET und AMF ).

Es gibt viele andere Technologien dort. Einige von ihnen haben ihre eigenen reichhaltigen Benutzeroberflächen, andere nicht. Die meisten von ihnen lassen sich in Flex integrieren

PHP
Rich UI mit Prado-Anwendungsframework. Es gibt einige einfachere PHP-Frameworks (ask google). Flex-Integration mit AmfPHP, WebOrb, SabreAMF

Ruby on Rails
Sprache + Server + App-Framework. Kann mit Flex integrieren

Python
Es gibt einige App-Frameworks: Django, Pylons ... Kann mit Flex integriert werden

Scala + Lift
Lift ist ein in scala geschriebenes App-Framework. Läuft auf dem Java-Server.

Coldfusion
Eine Adobe-Technologie. Die Sprache ist CFML. Läuft auf dem Adobe Coldfusion-Server, aber es ist kostenlos Railo von JBoss. Integriert in Flex.

24
Piotr Gwiazda

Meine fünf Cent

ASP.NET - Vergiss es. Überholte Millenium-Technologie.

Silverlight-Profis - sehr leistungsfähige kommerzielle Bibliotheken verfügbar. Wenn "Wow" -Effekt ein Muss ist, dann ist es Ihre Wahl, obwohl Sie etwas Geld ausgeben sollten, um 3D-Partysoftware zu kaufen.

Z.B. ansehen

sirius2. intersoftpt. com

demos. Telerik. de/silverlight/salesdashboard /

Silverlight cons : Im Browser muss das Silverlight-Plugin installiert sein. Dieses Plugin sollte von Zeit zu Zeit aktualisiert werden, wenn eine neue Silverlight-Version veröffentlicht und in Ihrer Software verwendet wird. Manchmal besteht ein Problem bei der Aktualisierung dieses Plugins. Sie können auch nicht sicher sein, ob dieses Plugin für * nux-Betriebssysteme vollständig verfügbar ist. Daher können Sie sich möglicherweise an Windows halten.

GWT Pros : Kein Plugin nötig, Sie entwickeln mit Java und Java wird in reines Javascript kompiliert. Mein Lieblingswerkzeug zum Erstellen effektiver Anwendungen, z. http://www.projectkaiser.com

GWT Nachteile : schlechte GUI-Bibliotheken (auch wenn wir über kommerzielle Bibliotheken sprechen)

Java Applets . Sie können Pivot betrachten. Apache. org

Meine Antwort auf "Welches ist die beste Wahl für große und sehr umfangreiche Webanwendungen?" Lautet daher Silverlight. Achten Sie auf Nachteile!

2
user270101

ich schaue auch nach der zu verwendenden Technologie. Ich denke, Theres 1, die Sie vielleicht näher betrachten möchten 

Appcelerator Titanium - ermöglicht die Entwicklung für Desktop- und mobile Plattformen mit Webtechnologien wie HTML5/CSS/JS und für Desktop-Plattformen, sogar PHP/Python

wertet es auch noch aus

außerdem werden RIAs (AIR, Silverlight, Titanium) und native Webanwendungen (PHP, ASP.NET MVC) betrachtet. RIAs sind leistungsfähig in dem Sinne, dass sie mit dem Dateisystem interagieren können, und sind im Allgemeinen schneller, da sie lokal vorhanden sind. Webanwendungen können nicht mit dem Dateisystem interagieren und sind im Allgemeinen langsamer und erfordern mehr Latenz. Da sie jedoch im Web existieren, kann ich überall darauf zugreifen. 

ich wollte eigentlich mit offenen Web-Technologien wie HTML5/CSS3/JS/PHP/Python zufrieden sein, aber die .NET-Plattform ernsthaft in Betracht ziehen. C #/F #/WPF/Entity Framework/Silverlight und Funktionen von Windows 7 Overlay-Symbolen, Fortschrittsbalken, Sprunglisten zeigen viel Potenzial. Die Möglichkeit, ein Framework und einige Sprachen sowohl für Web- als auch für Desktop-Anwendungen zu verwenden, auch für RIAs, ist ein großer Anziehungspunkt. Ich habe auch eine Menge Videos über Muster und Praktiken gesehen, die MS empfiehlt, die Qualität usw. ist fantastisch. Es ist vielleicht zuerst schwer zu lernen, aber ich denke, es wird sich lohnen. Der Nachteil, den viele sagen werden, ist sogar die geschlossene Quelle. Werkzeuge im Allgemeinen teurer

2
Jiew Meng

Wenn Sie über das Erstellen einer Webanwendung mit umfangreichen interaktiven Funktionen auf dem Client sprechen, gibt es drei Hauptoptionen:

  1. Flash-basiert - Ihre App kann jedoch nicht auf einem iPad ausgeführt werden.
  2. Silverlight - das benötigte Plugin ist nicht so weit verbreitet wie Flash, auch Microsoft hat dies kürzlich für Web-Apps abgelehnt.
  3. Bei HTML - Web 2.0 ging es ausschließlich darum, natives HTML + JavaScript zu verwenden, um umfangreiche Anwendungen in einem Webbrowser zu erstellen.

Für mein Geld ist HTML die mit Abstand interessanteste Plattform. Es hat die meisten Aktivitäten und wird von Browsern zunehmend standardisiert. HTML5 fügt Unterstützung für Funktionen wie lokales Speichern und Hintergrundverarbeitung hinzu. Google Chrome verfügt jetzt sogar über eine 3D-Grafikbibliothek (WebGL) - Firefox wird bald folgen.

Wenn ich Sie wäre, würde ich mich darauf konzentrieren, den HTML (5) -Stack zu lernen - HTML, CSS, CSS3, HTML5, jQuery, und Open Source-Frameworks wie backbone.js, jQuery mobile, JQTouch, angle.js usw. betrachten Ich folge vielen dieser Projekte auf GitHub - die größere Liste kann man hier sehen:

https://github.com/mckoss/following

Ihre Rich-Web-App benötigt wahrscheinlich eine serverseitige Infrastruktur, um sie zu unterstützen. Ruby on Rails ist wahrscheinlich das beliebteste Framework und sehr einfach zu starten. Heroku kann Ihre App sehr einfach und skalierbar für Sie hosten.

Wenn Sie bereits viel Java-Code haben (ich bin kein Java-Fan, ich selbst) - Googles GWT ist ein sehr schönes Framework für die Erstellung von Apps in reinem Java und kompiliert die clientseitigen Bits mit JavaScript.

Ich persönlich mag Python auf der Serverseite - Google App Engine bietet eine sehr schöne Option, die skalierbar und einfach zu programmieren ist (die Verwendung des Django-Frameworks in Google App Engine ist hier die beste Option für nicht triviale Apps).

Und wenn ich etwas Neues vorschlagen könnte, an dem ich gearbeitet habe - Pageforest.com bietet eine reine JavaScript-Web-App-Plattform. Sie schreiben ALLEN Code in clientseitigem JavaScript und verwenden AJAX/REST, um Benutzer anzumelden und Daten auf dem Pageforest-Server zu speichern (dieser Dienst ist offen und für Entwickler kostenlos).

Viel Glück!

2
mckoss

Sencha Ext JS ist eine leistungsstarke Front-End-Bibliothek, die Desktop-ähnliche Funktionen im Browser bereitstellt. Vorteile: konsistente Optik, leistungsstarke Architektur (prototypbasierte OOP), viele Widgets. Nachteile: in den meisten Fällen nicht kostenlos.

Wenn Sie sich für einen modularen Ansatz entscheiden (der für komplexe datenreiche Web-Apps mit Hunderten von Modellen empfehlenswert ist) und Ruby im Backend verwenden möchten, besuchen Sie Netzke: https://github.com/ nomadcoder/netzke-core .

1
mxgrn

Ich denke, die Webentwicklung wird mit jedem Jahr komplexer (mehrere Plattformen und Geräte, leistungsfähigere Geräte). Dabei werden die Softwareschichten immer definierter und komplexer. Die Integration und Unabhängigkeit zwischen diesen Ebenen wird bei der langfristigen Betrachtung immer wichtiger. Sie können sich nicht mehr darauf verlassen, die Lösung mit nur einer Technologie zu erstellen. Ich würde also offene Systeme/Standards wie Web 2, 3 usw. betrachten.

1
Faustas

Ich stimme vollkommen mit Peter Gwiazda überein, so dass ich zu diesem Abschnitt nichts weiter sagen kann, da er sie alle behandelt hat. Was ich hinzufügen möchte, sind einige andere Angaben. Zuerst muss klar sein, was Sie damit erreichen möchten. Welche App möchten Sie entwickeln? Suchen Sie auch in dem Betriebssystem, in dem Sie die App ausführen möchten. Dann entscheiden Sie, für welche Art von Sprache/Rahmen Sie die App entwickeln möchten. Klären Sie Ihr Ziel, analysieren Sie, welcher Rahmen besser zu entwickeln ist (basierend auf der Nachfrage meiner Meinung nach) und gehen Sie dann los. Sie können sie nicht alle gleichzeitig lernen! Jede Sprache/Plattform hat Vor-und Nachteile, so dass Sie entscheiden können, was Ihnen mehr passt!

1

Option für Python-Leute:

Pyjamas (Google Web Toolkit) - Python in JS kompiliert

+ ein beliebiges Python-Backend (Django, Web.py ..). 

Die gesamte Kommunikation erfolgt über JSON-RPC

0
zzart