PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist gerade so "State-of-the-art" im RIA-Bereich


SoWhat
2010-02-10, 13:41:14
Hallo!

2 Leute und ich wollen ein Webprojekt umsetzen.

Das GUI soll dabei von langweiligem, statischem HTML (also statisch im Sinne von one click, one reload, und es "bewegt sich nichts") abweichen und etwas Pepp bekommen.

Wir zerbrechen uns schon dauernd die Köpfe darüber, welche RIA-Technologie wohl die geeignetste sei.

Vorweg gesagt: wir sprechen damit nur einen kleinen Benutzerkreis an, ob jetzt Plugins notwenig sind zur Betrachtung der Seite oder nicht spielt keine Rolle, ebenso die Plattformunabhängikeit (Win. reicht erstmal) - sehr wohl aber die Browserkompatibilität!

Einerseits wären da Flash/Flex oder Silverlight.
Ein Vorteil daran ist, dass sich wirklich alles wie aus einem Guß anfühlt, wie eine App eben. Mit Flex geht Adobe will Adobe ja eher Programmierer statt Designer ansprechen, das erfreut uns. Silverlight hingegen wird nach wie vor ziemlich gepusht und bekommt Updates, Tools sind kostenlos, Samples erscheinen mächtig.
Desweiteren gibts schon unzählige Klassen für die wichtigsten Dinge standardmäßig dazu, man muss das Rad nicht neu erfinden.
Ein schönes, funktionales Table mit Flex? Kein Problem, einfach die URL zu der Quell-XML angeben und der Rest passiert automatisch, 1 Zeile Code, diese Funktionalität ist onboard.
Weiterer Grund: Wenn die Anwendung läuft, dann sieht sie so aus, wie man sich das als Entwickler gedacht hat. Keine Browserhacks, keine CSS-Probleme und so weiter. Wie schon gesagt, ein Guß eben.

Andererseits wäre da AJAX. Erstmal unübersichtlich. Man steht mit leeren Händen da. Man muss sich erstmal durch die ganzen Toolkits schlagen und und das am besten geeignteste herauspicken, wenn man nicht alles selbst machen will, und das wollen wir nicht.
Dazu kommen HTML und CSS. Einerseits großer Vorteil, da simpel und doch gut. Andererseits wieder der Zwang, auf bestimme Browser zu achten.
Das erzeugt alles irgendwie nicht so das "alles aus einem Guß-Feeling".

Man schaue sich ICQ2Go an, basiert auf Flash und läuft wie geölt, ich kann mir einfach nicht vorstellen, das ganze auf AJAX basiert zu sehen, zumindest nicht mit demselben Aufwand.

Das höchste Gebot soll sein: die Anwendung soll sich zu jeder Zeit in einem eindeutigen, unabhängigen Zustand befinden und den Anwender informieren, egal ob der Server im Hintergrund gerade abgeschmiert ist oder ob die Clientbandbreite für neuen Content gerade zu überlastet ist.

Viele AJAX-Seiten, die ich bisher gesehen habe, funktionieren eben genau so nicht. Z.B. ein Ressourcenproblem beim Server - der Ladebalken hört nicht mehr auf zu laden, ich bekomme nichts mit - klar, das könnte man programmiertechnisch sicher besser machen. Aber dann will ich den Ladevorgang abbrechen, und plötzlich funktionieren im Firefox auf eben dieser Seite keine Links mehr, es tut sich einfach nichts beim anklicken, tot.

Klar, das hätte man sicherlich besser lösen können und ist nicht zwingend AJAX anzukreiden, sondern eher den Programmierern.
Es geht mir jetzt eher darum, speziell bei solchen Sachen den Aufwand minimal zu halten. Nach Tests mit Flex kann ich sagen, dass dort solche Probleme erst garnicht auftreten. Entweder eine Ressource ist verfügbar, wenn auch erst nach max. 5-7 Sekunden, oder eben nicht, und das lässt sich ganz einfach handeln, keine Nebeneffekte, keine toten Schaltflächen.


Um ehrlich zu sein tendieren wir eher zu Flex oder Silverlight, wollen aber doch zwanghaft Gründe suchen, die doch für AJAX sprechen. Und wenn AJAX, welches Framework ist zu empfehlen?

Es geht übrigens um folgende Aufgaben:

- Daten tabellarisch und in Textform zu präsentieren (kommen via PHP oder Java aus einer SQL-DB)
- Nutzereingaben entgegennehmen, on-the-fly validieren (gehen via PHP oder Java in eine SQL-DB)



Danke

Gast
2010-02-10, 14:35:51
Bei Ajax solltet ihr euch mal das Google Web Toolkit anschauen.
Das GWT beinhaltet unter anderem einen Java-to-Javascript-Compiler, das heisst im Grunde das ihr als Entwickler einmal die Server-Seite programmiert (normales Java-Servlet, hier könnt ihr auch beliebige andere Frameworks oder Plugins benutzen) und zum anderen die Client-Seite. auf der Client-Seite habt ihr dann kleinere Einschränkung was die Benutzung von Java-Bibliotheken angeht, ansonsten aber kompletten Java-Umfang.

Die Nahtstelle zwischen Server und Client wird mit den RemoteProcedureCalls gefüllt, das sind einfach Methoden die einen Ajax-Request darstellen. Wenn ich ein String vom Server abfragen möchte ist es also im Grunde so einfach wie "getStringFromServer()" aufzurufen :)

Da alles in Javascript läuft braucht man natärlich keine Plugin und es lassen sich auch Anwednungen entwickeln die keinerlei Server brauchen (oder andere Servertechnologien benutzen)

Das GWT schreibt euch nicht vor wie ihr programmieren sollt, es gibt also verschiedene Möglichkeiten damit umzegehen. Man kann sehr nah an HTML und CSS schreiben, man kann jedoch auch HTML/CSS abstrahieren und seine eigenen Widgets schreiben, heisst im Grunde wir schreiben eine Klasse die bereits das HTML/CSS beinhaltet und ich muss später nurnoch mit Java das Element irgendwie hinzufügen und der Rest wird automatisch erledigt.
Es gibt natürlich schon einige Basis-Widgets und außerdem auch viele Widgets-Sammlungen, eine davon das GXT um mal eine große zu nennen.

Das GWT bietet auch eine Möglichkeit browserspezifische Eigenheiten auszugleichen, das wird bei den meisten Widgets benutzt und es sollten keine Unterschiede in der Darstellung auftreten.

Das GWT ist aufjedenfall eine interessante Webtechnologie, und durch das Javascript lassen sich auch viele grafische Spielereien relativ einfach realisieren, wofür ansonsten immer eine extra Javascript Bibliothek benutzt wird bei der dann JS+HTML+CSS benutzt werden muss.

Tiamat
2010-02-11, 11:38:52
Ich denke, Flex ist zur Zeit ziemlich State-of-the-art.

Die ganze Entwicklung fühlt sich mit dem Flex-Builder nicht mehr nach Programmierung an, sondern nach layouten und designen.

mbee
2010-02-14, 11:10:05
Flex ist IMO nicht mehr "State-Of-The-Art", sondern wird langsam überflüssig, zumindest für recht viele Anwendungsfälle ist es eher (wie Flash selbst) auf dem absteigenden Ast. Die stark verbesserte JavaScript-Leistung der aktuellen Browser hat da nicht unerheblich dazu beigetragen.

Ich würde mir mal ICEfaces (http://www.icefaces.org/main/home/) anschauen, wenn ihr mit Java entwickelt. Das bietet gegenüber GWT doch einige Vorteile und lässt sich erfahrungsgemäß sehr gut z.B. in bestehende Java EE Projekte integrieren.

Tiamat
2010-02-15, 08:55:58
Ich denke dies ist auch mehr oder weniger persönlicher Geschmack.

Das Problem bei der Geschichte ist die rudimentäre Austattung von 0815 Webhosting-Accounts, wo man die ganzen tollen Frameworks sowieso nicht nutzen kann.Da ist PHP und Mysql immer noch State-of-the-art ^^

Gast
2010-02-21, 19:05:20
Danke mal soweit.

ICEFaces sehen gut aus, aber es musste natürlich genau eines jener Dinge passieren, die uns eher Richtung Flex schielen lassen.

Ich habe etwa 10 Minuten nur auf der Demoseite von ICEFaces rumgespielt und was passierte? Der Tab im Firefox ging danach nicht mehr zu. Das ist wieder so ein Paradebeispiel. Das gabs auf meinem System übrigens noch nie, habe auch vor kurzer Zeit erst wieder neu aufgesetzt.
Irgendwas muss bei den JS Sachen halt immer stecken bleiben.

Werde es trotzdem aufjedenfall im Auge behalten.