Frage

Ich habe gerade versucht, mit Vaadin Framework zu spielen und es scheint mir sehr einfach zu bedienen. Plus, was ich wie über seinen Rahmen ist, dass es auf der Google Web Toolkit (GWT) gebaut .

Was denken Sie, sollte ich weiterhin mit diesem Rahmen oder ist es besser, mit GWT zu halten?

War es hilfreich?

Lösung

Hey. Als wichtiger Hinweis, arbeite ich für das Unternehmen zu entwickeln Vaadin.

Vaadin verwendet GWT in einer Weise, dass es eine Reihe von Komponenten vorkompilierte in GWT hat. Sie können natürlich zusätzlich eigene Komponenten, wenn Sie so wollen. Allerdings ist die Menge von Komponenten ganz vollständig, und oft kann für Ihren eigenen Bedarf angepasst werden. Dies bedeutet, dass Sie müssen nicht neu kompilieren Code von Java nach JavaScript jedes Mal, wenn Sie Ihre Anwendung ändern. Sie kombinieren nur die bereits verfügbaren Komponenten zusammen.

Der Rahmen ist Server angetrieben, so dass alle Logik auf der Server-Seite behandelt wird. Die Komponenten bestehen aus zwei Teilen, Client- und Server-Datei. Die Client-Seite ist nur eine Dummy „Ansicht“ für die Komponente. Sobald Sie mit ihm interagieren, sendet er eine Nachricht an den Server, dass dieser oder jener gedrückt wurde / geschrieben / etc. Der Server entscheidet dann, was getan werden soll. Dies ist für eine erhöhte Sicherheit, da Sie nicht die Logik „Hack“, da nur eine kleine API für das Senden von Anfragen bedeutete in der JavaScript zur Verfügung steht. Dies kann mit Geschwindigkeit der Anwendung in einigen Fällen ein wenig Kompromiss sein, aber ich glaube nicht, dass ein so schlecht ist. Am schlimmsten Geschwindigkeitsbegrenzungen sind in der Regel db Abfrage Umläufe und solche, die nichts mit der Wahl der UI-Framework zu tun haben. Langsamkeit der Demos wie vorgeschlagen kann, weil man weit vom Server ist oder gibt es einen hohen Benutzer Hit im Moment. Versuchen Sie es in einer eigenen Umgebung, schließen Sie die die endgültige Anwendung Ihrer Anwendung, um zu sehen, wie gut er ausführt. Es gibt einige einfache Anwendung, dass Sie kann es einfach zu testen, implementieren aus.

Ich denke, die Wahl läuft darauf hinaus, was Sie zu tun versuchen. Vaadin ist gut für Web-Anwendungen, wie Sie eine normale Java-Anwendung erstellen und einfach für sie das dynamische Web-UI tun. Wenn Ihr etwas mehr von einem traditionellen Web-Site zu tun, wo die Nutzer nur die Seitenaufrufe - mehr als aktiv interagiert mit ihm, dann ist Vaadin nicht der beste Weg zu gehen. Gehen Sie mit einigen anderen freien Frameworks wie Schienen oder ein PHP-Framework usw. Ich denke, dass Sie mehr eine Anwendung zu tun, wie Sie vorschlagen, dass Sie GWT verwenden jetzt, so Vaadin sollte gut sein.

mehr Fragen stellen, hier, auf den Vaadin Foren oder im IRC-Kanal #vaadin @freenode und vielleicht jemand können Ihnen mehr Grund geben, warum oder warum nicht Vaadin verwenden.

Andere Tipps

Nach fast 1,5 Jahren eine nicht so große GWT-Anwendung entwickeln, verwenden alle die besten Praktiken ich aus dem letzten Google I / O gelernt wie MVP, EventBus, CommandPattern usw. Ich sage das aus der Tiefe meines Herzens: nach verbrachten Tage versuchen, die Dinge, die Art und Weise zu bekommen erarbeiten mein Team und Client sowohl technisch als auch optisch, auch nach der Veröffentlichung von UiBinder wollten, kam Vaadin mich wie ein Licht am Ende des Tunnels.

Nach fast tausend Text Aktionen für Befehlsmuster zu schreiben, weitere tausend Moderatoren und Ansichten und weitere tausend Event-Handler, etc .. Nicht mit fast 75% dieser Klassen beschäftigen zu müssen und immer noch ein gutes Muster Ansatz beibehalten (appfoundation Add- on), Overhead ein kleines Netzwerk, ist akzeptabel. Mit Vaadin, out-of-the-box, erhalten Sie gute Widgets, Paging, Datenbindung, fehlerlos Layouten. All dies für das, was? Einige mehr Speicherverbrauch in der Server-Seite.

ich glaube, ich kann sagen, dass dies akzeptabel ist, weil ich nicht das nächste Facebook oder etwas zu bauen bin. Ich kann immer noch Tausende von gleichzeitigen Benutzern pro Medium Server verarbeitet und noch geringe Latenz Umläufe beibehalten wird.

Mit Vaadin kann ich eine nette App mit fast der Hälfte der Zeilen Code bauen und immer noch die Anwendung scheint vollständiger. : -)

!! UPDATE 23. Februar 2011: Ich kann gar nicht genug betonen, wie eine von jedem Rahmen der Einschränkungen bewusst sein sollte. Vaadin ist das nicht anders. Man sollte sich bewusst sein, dass Vaadin jede Form von HTML oder JavaScript abstrahiert. Auch die resultierende HTML ist sehr schwer und Sie sollten darauf achten, Geschichte Zustand sich ändert. Also, seien Sie sich bewusst dieser Gemeinkosten, wenn Sie Ihr Projekt.

Hinweis . Ich bin mit dem Unternehmen assoziiert keiner der Bibliotheken im Folgenden erwähnt, aber passieren mein Weg wissen, um sie ganz gut

Wie Sie, stieß ich auf diesen Beitrag, wenn grübeln die Stapel / Rahmen für ein neues Projekt zu verwenden. Ich hatte einige solide Erfahrung mit Play! (Ok, in Scala, aber das ist hier nicht relevant), aber die zwingenden Widgets und deren nahtlose Integration mit der Serverseite + die Schaukel wie Entwicklung haben Piqué meines Interesses. Das war Ende 2010, und wie die Antworten mich überzeugt Vaadin einen Versuch zu geben, entschied ich mich zurück und schreiben Sie die Antwort kommen, dass ich hier gelesen habe mich gewünscht hätte, esp. wie die Frage ist auch heute noch aktuell. Inzwischen ging Vaadin ab Version 6 bis 7 mit einigen bemerkenswerten Verbesserungen, die erforderlich waren, spielen! ging von Version 1 bis 2 und I (+ ein kleines Team) eine kleine Anzahl von erfolgreichen Projekten mit beiden Frameworks abgeschlossen.

Ich denke, dass der Vergleich ist interessant, weil beide Frameworks

  1. auf der JVM laufen und kann seine reichlich vorhandenen Ökosystem nutzen
  2. könnte mehr nicht im Widerspruch in ihrem Ansatz auf Web-Anwendungen und was Sie, als Entwickler kümmert sich um soll, und
  3. in geringerem Maße, wie sie sich auf Java EE beziehen.

Lob

In einem Satz, wenn Sie die Idee der Portierung eine Desktop-Anwendung an einen Browser finden, während aus dem zugrunde liegenden HTTP-Request / Response-Mechanismus vollständig abstrahiert wird überzeugend, dann ist Vaadin wahrscheinlich Ihre Kandidaten Web-Anwendung zu machen. Seine Schwingen wie Ansatz zur Programmierung können ein Kinderspiel für diejenigen, die sind am glücklichsten, weg von der Low-Egalität von HTML und JavaScript. Eine neue Anforderung an Ihre Anwendung beginnt in der Tat eine neue Instanz und der Rest der Strömung liegt an Ihnen und Ihrer Logik. Links wieder auf die gute alte Tasten für die Navigation und Sie sind frei, Ihre Layouts der vielen integrierten Vorlagen zu komponieren, ohne jemals erforderlich ist, um die HTML oder CSS zu zwicken. Die API ist in der Regel ziemlich konstant und zwar gut dokumentiert (die Book of Vaadin eine obligatorische gelesen. Es gründlich tun, so viele Dinge leicht verfügbar sind, z. B. die Bindung Ihrer Bohnen Komponenten und Validatoren, ...). Die Widgets haben eine gute Gesamt-Cross-Browser-Kompatibilität, wodurch ein konsistentes Verhalten Ihrer Anwendung über eine breite Palette von Kunden zu gewährleisten.

Reality Check

Wir hatten eine schöne Zeit in der Entwicklung und das Testen unserer Vaadin Apps. Dinge wurden deutlicher und differenzierter, als wir die erste Version veröffentlicht und begann Feedback zu sammeln. Wir erkannten, dass wir hatten schon einige grundlegende Möglichkeiten, tatsächlich voreingenommen , nämlich:

  1. In 201x, die meisten Benutzer haben eine lange Geschichte der Verwendung der Bahn hatte, und nur wenige von ihnen tatsächlich kaum Desktop-Apps nutzen, nicht mehr. Der entscheidende Punkt hier ist, dass Browser die UX Interaktion mit Hypertext-Links standardisierte, eine Rückseite, eine Vorwärts- und einen Reload-Button, allgegenwärtig Tabs und manchmal Fenster, und die Grundidee, dass die meisten Aktionen eine HTTP-Anforderung auslösen und werden auf eine Antwort warten . Dies ist der implizite Vertrag, dass Websites halten an und um die sie gebaut sind. Deshalb sollten wir nicht überrascht gewesen, wenn Benutzer sich beschwert, dass sie nicht die Vor / Zurück-Tasten verwenden konnten, wie sie verwendet wurden, oder dass Tabs nicht die erwartete Art und Weise arbeiten. Und wir waren uns einig. Wir brachen den unsichtbaren Vertrag verbindlich Benutzer und Browser. Eigentlich haben wir uns waren implizit nicht unseren Browser mit dem Vaadin App mit der Art, wie wir es mit einer anderen Webseite verwendet. Natürlich können Sie zu dem oben erwähnten Buch gehen Sie zurück und lesen Sie sorgfältig auf eine Web-Navigation Erfahrung mit URL-Fragmente zu replizieren, und Sie werden sehen, dass es tatsächlich mehr als erwartet beteiligt ist, weil Vaadin apps Stateful sind. Darüber hinaus sind die MVC oder MVP Paradigmen nur lose auf dem Entwickler auferlegt, im Gegensatz zu spielen! whier gibt es praktisch keine andere Wahl. Diese Mitteilung nicht die leichte Schulter nehmen, aber Ihr Gehirn wird verwendet, um den hellen weißen Schirm für einen Bruchteil einer Sekunde nach einem Seitenwechsel gezeigt. Wenn Benutzer klicken und erwarten, dass eine neue Seite genommen werden, erkennt der Browser durch die Sanduhr zeigt (oder Varianten davon). Mit AJAX werden Anforderungen hinter den Kulissen gelegt. Es gibt heute Orte, an denen kleine, fast chirurgische AJAX schlägt die Norm geworden sind, aber nicht für große UI-Updates noch.

  2. Stateful-Apps bringen ihren Anteil an Herausforderungen ... und Ärger. Load Balancing (wenn Sie besorgt) für einen weiter kompliziert ist. Das Konzept der Transaktion ist ganz anders als Vaadin Sitzungen viele Anfragen überspannen und sind daher lange im Gegensatz zu REST basierte genähert, aber relativ kurz in Bezug auf die UX gelebt. Tatsächlich ist es nicht ungewöhnlich, wenn Benutzer auf ein Formular zurück zu gehen begannen sie Stunden ihre Aufgabe zu beenden. Dies könnte in der Theorie, die Arbeit mit Vaadin auch, aber man müßte Sitzungen für eine am Leben halten lange, lange Zeit gut mit Speicher der ganzen Zeit blockiert und sorgfältig darüber nachdenken, diese w.r.t. skalieren würde gleichzeitige Benutzer.

    Stateful-Seiten sind auch schwieriger für Benutzer zu teilen, allein Lesezeichen lassen (das ist vorausgesetzt, dass Sie mit URL-Fragmenten behandelt).

  3. Schließlich teilen wir den Eindruck, dass die UI ist in der Regel träge mit der Logik auf dem Server sein. Natürlich können Sie immer ein Widget mit clientseitige JavaScript geladen erstellen die Anzahl der Roundtrips zu trimmen, aber Sie werden zwangsläufig einige UI-Updates auf dem Server vornehmen müssen. Die JS ist schon ziemlich schwer in meiner Erfahrung zu interpretieren und sorgt für eine geringere Erfahrung auf mobilen Geräten (Ich bin bewusst TouchKit, aber immer noch: HTML5-Apps auf mobilen Geräten schneiden Sie es einfach nicht für mich). Auch zu beachten, dass der UI-Thread aktiv ist, nachdem eine Anfrage gebucht wird (dh. Benutzeraktion auf der Client-Seite, ähnlich UI-Updates zu ziehen) und wird Sie durch die verschiedenen Hörer zugänglich sein. Allerdings ist die Benutzeroberfläche von Hintergrund Aktualisierung Threads mehr erschwert (zB. Drücken Updates). Vaadin 7 verbessert, obwohl die Situation in dieser Hinsicht vor allem mit relativ leichtem HTML erzeugt. Signifikante Verbesserungen UI Reaktionsfähigkeit bemerkbar waren durch einfaches Drehen auf HTTP-Komprimierung.

Fazit

So wir hielt inne und fragte sich, was wir so attraktiv im Vaadin Ansatz gefunden zu beginnen. Die anfängliche Entwicklung eine relativ glatte Fahrt wodurch man schnell Ergebnisse hatte aber einige Konzepte Nacharbeiten auf dem Web-UX Erwartungen gab uns einen starken Eindruck von Schwimmen gegen den Strom aufzunehmen. Wir schlossen daraus, dass die Verführen Idee abstrahiert des Seins (verschleiert?) Aus dem HTTP-Request / Response-Mechanismus ein zweischneidiges Schwert erwiesen, dass die reale Impedance Mismatch zwischen Web-Anwendungen und Desktop-Anwendungen vorgestellt.

Statt so zu tun, dass die Bahn ist noch eine weitere Schicht, wir stark zu spüren, dass man die Art und Weise umarmen sollte es funktioniert und das beginnt mit einer URL-zentrierte Anwendung mit (wie verhängten Rails / Django / Abspielen). Sie wahrscheinlich jemand sagen, dass die Daten überlebt Anwendung gehört. Heutzutage werden die Daten von URL-Ressourcen bezeichnet so einen sicher, dass die URLs Daten outlive sagen konnte. Schließlich sind sie, was die Leute Lesezeichen, nicht wahr? So grundlegende Trennung von Bedenken sollte auch auf dieser Ebene gelten. Dies ist wahrscheinlich, warum die Bahn in erster Linie so populär wurde. Also haben wir unsere App es zu Aktionen reagiert mehr um einen zentralen Controller zu strukturieren revisited à la Wiedergabe gemacht auf unterschiedliche Ressourcenpfade.

Für jetzt sind halten wir an unserer Vaadin apps aber aufgrund einiger dieser Zwänge und die grundlegenden Paradigmenwechsel werden wir neue Projekte nicht mit ihm beginnen. Allerdings hat das Team, die einen technisch kohärenten, zusammenhängenden und gut gebaut dokumentiert 360 ° Java Web-Framework aus sehr wenig Wissen über das Innenleben Web erfordern. Aufder Kopf sich sogar wieder ihr Rahmen mit einem Unternehmen Beratungsdienstleistungen zu verkaufen. Ich bin dankbar für die Erfahrung und wie es machte ich meine Ansichten über Web-Anwendungen neu zu bewerten. Ich werde eng ihre Entwicklung überwachen, aber wir müssen auf jeden Fall mehr Kontrolle und Granularität.

hoffentlich eines Tages Vaadin wird sich befreien von der ganzen Servlet-Architektur, auf denen beruht sie ihre eigenen HTTP-Server zu haben. Besser wäre noch ein MVC-Design seiner tiefer im Rahmen verankert. Aber das ist etwas unwahrscheinlich, dass in absehbarer Zeit, wie es scheint eine lukrative Nische unter gewürzt Corporate Java Gorillas gefunden zu haben, der nur durch EE schwören. Shine on.

TL; DR : Ich denke, dass Vaadin trifft nicht den Punkt, was Webapps sind und was noch wichtiger ist, wie sie sich verhalten sollten. Es wird Zeit, Programmierer im Internet angenommen und wie Benutzer mit ihm (dh. Zurück-Taste, Reload-Button, Tabs und Lesezeichen). Je näher eine Web-App-Sticks auf HTTP-Anforderungen und Semantik (Verben), desto wahrscheinlicher ist es, die Erwartungen der Nutzer entsprechen. Und dass der Schlüssel.


Bearbeiten . Wenn Sie Python Erfahrung haben, würde ich empfehlen, aus Flask versuchen, zu einem Geschmack von URL-centric zu bekommen, REST-basierte Web-Anwendung Programmierung

EDIT 2 : Wenn aus irgendeinem Grund das Gefühl haben Sie einen Full-Stack Vaadin artigen Rahmen verwenden müssen, dann geben Meteor versuchen. Es ist ein JavaScript-Basis (beide frond und Backend) Rahmen, die ausgeführt wird auf Node.js mit asynchroner Kommunikation auftritt durch WebSocket (also kleine Latenz als Anforderung / Antwort), und es ist reaktiv standardmäßig. Eine Reihe von Dingen, die ich in Vaadin Wenigsten haben angesprochen worden in Meteor. Zum Beispiel kann die Logik für die UI-Updates auf dem Client ausgeführt, die es so viel stärker auf als in Vaadin macht. Die Leute in den JavaScript und Java Communities nicht schneiden viel, aber wenn ich zum ersten Mal davon gehört, mir die parallel mit Vaadin schlug sofort. Es erfreut sich zur Zeit einiges an Dynamik in der Gemeinschaft aus Gründen ähnlich denen, die Vaadin populär gemacht, das heißt. die Fähigkeit, Desktop-ähnliche Web-Anwendungen zu machen. Sie geben es zu versuchen, wenn Sie kam auch zu erkennen, dass Java nicht gehört viel im Bild der zukünftigen Web-Anwendungen oder wenn Sie von diesen langen deploy Zyklen müde sind, wenn refresh schlagen ist alles was man nehmen sollte. Aber zweimal überlegt, bevor eine ganze App nur eine Bibliothek zu binden.

Das übliche Gerede über Vaadin bezieht sich auf das Widget-Set und Sorgen über die Rundreise die Kommunikation zwischen Client und Server.

Aber meiner Meinung nach diese mit Blick auf die wichtigsten (vielleicht revolutionär) Aspekt Vaadin: Es beseitigt vollständig die Aufgabe der Gestaltung und Umsetzung der Client-Server-Kommunikation, die in der Regel für AJAX-Anwendungen (das „A“ erforderlich ist, und „X“ in AJAX).

vergessen

Mit Vaadin können Sie vollständig DTO (Datentransferobjekte), protokollbasierte Sicherheitsprobleme, Hibernate verzögertes Laden Ausnahmen, etc.

Sie sind nur in einem gewissen Sinne eine regelmäßige alte Java Swing-Desktop-Anwendung zu schreiben, nur Sie einen anderen UI-Toolkit von Swing verwendet wird.

Aus meiner Erfahrung erfordert GWT zu viel Standardcode und langsam, wenn complecated und Rich UI Gebäude. Normalerweise beschäftigen wir uns mit sehr komplexen Anwendungsmodelle, die viele persistierbar Domain-Objekte enthält. Alle diese Daten an den Client zu bringen müssen Sie separate Client-Modell und bieten Datenumwandlungsmechanismus einzuführen. Wir haben Dozer für diesen Zweck verwendet und es dauert viel Zeit jeder eingereicht abzubilden, benutzerdefinierte Konverter erstellen und alle diese Dinge zu testen.

Auf der anderen Seite, wenn fällt nicht in Overengineering und wenn die Anwendung ist nicht sehr kompliziert Sie einen Vorteil der Verwendung von Client-Ressourcen und hat auf dem Server weniger Belastung in Anspruch nehmen. Auf diese Weise können Sie dramatisch Kommunikation mit dem Server minimieren und viel reaktionsfähiger Software.

sieht Vadin sehr Entwickler frinedly :) Aber ich ein bisschen Angst vor dem „massivem AJAX Angriff“ auf den Server. Ich habe Erfahrung in ZK und oft wir die Performance-Probleme konfrontiert, wenn eine triviale Operation auf UI langsam funktioniert, weil es die Kommunikation mit dem Server benötigt.

Wicket ist ein weiterer guter Rahmen, aber es ist besser geeignet für Websites. Es kann mit und ohne AJAX arbeiten, können von Suchmaschinen indiziert werden. Und die attraktivste Sache beschäftigt sie sich mit sauberen HTML-Code -. Keine benutzerdefinierten Tags, keine Kontrollstrukturen, die strikte Trennung von Bedenken und nur bestimmte wicketid namigs für Komponenten

Es hängt vor allem von Ihren Bedürfnissen:

  1. Wenn Sie super schnell und einfache Anwendung - Verwendung GWT und nutzen Client-Ressourcen
  2. Wenn Ihre Anwendung ist recht komplex als Vaadin sieht die bessere Wahl sein
  3. Wenn Ihre Anwendung ist öffentlich und Sie brauchen die Fähigkeit, zu indizieren es für SEO als Wicket gewählt haben.

Die Sache ist, für ernste Entwicklung, können Sie sich um nichts vergessen, geschweige denn dtos .. i Naht am Notwasserung und Server-Seite ui Konzept, nur weil ich eine feinere Kontrolle über wollen, was auf dem Draht wird .. Die Vaadin Problem für mich ist genau das, Zustand auf der Server-Seite mit ..

Es war „Bedenken“ über Wicket-Sitzungen mit Komponentenzuständen und Skalierbarkeit verwalten ähnlich wie die Argumente über Vaadin und Server-seitige Verarbeitung. Ich habe in den letzten 10 Jahren gelernt, dass die Java-Community über in der Regel falsch ist, wie ein Web-Framework das Potenzial zu messen (unter anderem). Von JSF zu Grails, dauert es in der Regel ein paar hundert GB Arbeitsspeicher und mindestens ein Dutzend Open-Source-JAR-Dateien mit überlappenden und ineffizienter Funktionalität eine Produktionsanwendung zum Laufen zu bringen. Schauen Sie sich um und Sie werden die meisten Web-Hosting-Unternehmen sehen keine praktische Java-Option bieten aufgrund der erratischen Pfad Java-Technologien für Web-Frameworks genommen. 2.1 GWT ist immer noch ein Schmerz, weil die Übersetzungsgeschwindigkeit zu verwenden, und es ist nur ernst wird mit MVP und Datentabellen, die von Anfang an hätten sein sollen. Ich mag Wicket aber Vaadin sieht vielversprechend aus ... aber zu wissen, wie Java-Frameworks gehen, ich bin sicher, dass sie selbst in dem Fuß an einem gewissen Punkt schießen, aber ich bezweifle, dass es wegen der schweren Server-Seite Verarbeitung sein wird.

Für eine guten Aufbau UI sucht, würde ich sagen, dies wäre der Weg zu gehen. Außerdem ist es sehr gut dokumentiert.

Ich habe es für ein paar Wochen mit und ich wirklich , wie es so weit. Code ist solide, docs eine Re gut, sehr logische Konstruktion, Endergebnissen sind ausgezeichnet.

ich liebe es mit Hibernate in Kombination aller Langwierigkeit der Datenbank zu sortieren.

Plus - einfach zu implementierende  (Mit Tomcat Sie können nur eine einzelne WAR-Datei über das Webinterface hochladen, könnte nicht einfacher sein)

Es ist auch eine Überlegung wert Apache Wicket als starke Alternative für bauteilorientierte Java-Web-UI-Frameworks. Vaadin hört sich toll an und ich will nicht aus dieser Diskussion ablenken, aber Wahl ist eine gute Sache. Es gibt ein paar Beispiele mit Quelle aus der Homepage verlinkt und noch mehr an der WicketStuff Website und das ausgezeichnete Buch von Manning bildet große Dokumentation von Drittanbietern.

einen Blick auf die Demo Vaadin Build mit Maven: http://asolntsev.blogspot.com/2009/11/vaadin-demo.html

Ich dachte, Wicket der richtige Weg war, bis ich versuchte, es effizient und begann eine Vertiefung (Witz) zu arbeiten. Dann wechselte ich zu GWT, die sahen toll aus, aber es gibt soooo viel Kesselblech Code zu schreiben und die Dokumentation ist nicht so toll ... -> Das Licht von Vaadin kam: einfach, betriebsbereit, keine Fehler so weit ... !!!

In unserem Unternehmen, die überwiegend ein großes Java SW Haus ist (unter anderem) dort auf uns kamen eine Chance, einen neuen Web-Basis zu erstellen product.It war eine Reihe von Produkten, und es gab viele Teams in drei Ländern dieser Entwicklung. Wenn es um unser Team kam, hatte ich die Wahl Vaadin der Verwendung zum Nutzen unserer Java-Entwicklung nutzen experience.I durchsucht Google mich in meiner Entscheidung zu helfen. Ich habe auch gelesen, diesen Beitrag; Allerdings entschied ich mich gegen die Verwendung von Vaadin obwohl viele andere Teams Vadin gewählt haben. Im Folgenden sind die Gründe, aus einer Mail, die ich auf dem Produkt (To Vaadin oder nicht) zu diesem Zeitpunkt sende vor dem Start. Dies ist aus meiner persönlichen Sicht und Misstrauen gegenüber der Gerüstmaterialien im Allgemeinen ist in mir immer in unterschiedlichem Ausmaß. So wollte nur noch eine zweite Aufnahme auf diese Frage an den Leser geben.

Nun gingen wir auf einer Lerntour Lernen HTML, CSS, CSS-Selektoren, eine wunderbare Sprache JavaScript und JS-Libs, JQuery und YUI und das Web-Produkt in der Zeit mit voller GUI und Leistung Compliance erstellt; und ich persönlich freue ich mich und das Team ist sowie auch die Nutzer.

Andere Teams, die die Vaadin Weg gingen auch in der Zeit ihre Produkte geschaffen und ich denke, sind gleichermaßen zufrieden. (Nur sie wissen nicht, die Freude an der JavaScript sie fehlen :)).

Wie jemand gesagt, sind alle Abstraktionen undicht Abstraktionen und wenn sie von Vaadin 6 bis Vaadin wandern mußten 7 hatten sie schon einige Nacharbeiten zu tun, und es dauerte mehr Zeit als jeder dachte; obwohl natürlich schafften sie es zu schleifen und finsh; Dennoch war es ein wenig Verzögerung aufgrund this.Also ich es irgendein Problem mit InvientCharts addon erraten war, die nicht mehr als 7 Vaadin die Teams verursacht unterstützt wurde, dass die im Zusammenhang Vaadin Charts zu kaufen ($$) addon und ändern ....

Vaadin oder nicht

Mit Vaadin scheint es, dass die zugrunde liegende JavaScript, HTML und CSS wird dynamisch aus einer Java-Swing-Typ-Anwendung generiert. Von einer vorgespannten und wahrscheinlich albern puristischen Sicht eine solche „werde ich Code generieren für Sie“ Tagline kein gutes Design Geruch nicht geben. Es sei denn, Sie benötigen eine Abstraktion, warum mit einem weiteren Rahmen binden. Wie bei jedem Codeerzeugungs Rahmen sollte es am besten für die Arbeit der Abstraktion Vaadin im Sinne hatte, aber nicht sehr flexibel; Ich glaube, dass, wenn wir Web-Technologie zu tun ist es am besten in den Werkzeugen und Sprachen, aus denen zu tun, hat sich die Technologie geweckt - nämlich, HTML, CSS und JavaScript / JavaScript-Bibliotheken und nicht auf einer anderen Ebene der Abstraktion zu verlassen - das Vaadin Rahmen. Dies zu einem Experten naiv fühlen kann GWT oder Vaadin Entwickler, wie ich die Google compliers erzeugen, um den am besten optimierten JavaScript als Hand codiert diejenigen erraten, hilft, verwalten Code besser zwischen mehreren Teams usw. (aber meistens, wenn ziemlich biggish Web-Anwendungen zu entwickeln), besser Entwickler Produktivität, einfachere Fehlersuche usw. Allerdings Komponenten in Java für Vaadin schreiben und dann Auto zu JS Umwandlung ist Ich fühle mich nicht richtig, dass viele unsere Entwickler nie eine sehr wichtige Programmiersprache lernen - JavaScript für Web-Entwicklung (und an Zugkraft gewinnt schnell in der Server-Seite - Node.js ). Wenn auf Rahmenbedingungen angewiesen Ihre JavaScript richtig zu machen, wie dann werden Sie nie in dieser Sprache auszeichnen. Ich denke, für ein Produkt Unternehmen ist es wichtig, stattdessen aus erster Hand die Sprache des Web zu lernen. Als jemand kommentierte Java hat wie die COBOL von yester Jahr worden, und es ist zwingend notwendig für Kompetenz baut andere wichtige Sprachen wie JavaScript zu lernen. Jedoch in JS für die kleine Zeit gearbeitet zu haben, dass ich habe, habe ich bemerkt, dass, wenn wir Code mit etwas Disziplin (Modul-Muster), alle Logik testen - JavaScript-Einheit - JSTestDriver und führen JSHint, es ist eine ziemlich mächtige Sprache zur Arbeit ist mit und die Produktivität wird besser als Java, sobald es gelernt wird.  Auch die meisten der wichtigen Komponenten Beispiel - Openlayers geschrieben werden in JS und wenn Sie brauchen, um diese oder wor zu verlängernk mit optimal müssen Sie wissen, JavaScript oder was das betrifft leistungsstarke Bibliotheken wie D3.js Also kurz gesagt, obwohl viel Vorteil es sich mit der Vaadin und Frameworks ist, auf lange Sicht vielleicht mit Hilfe von JavaScript ist wichtig?

Ich verwende Vaadin auch. Obwohl die Anwendung nicht groß ist, was ich über die Erfahrung wirklich gefallen hat, war, dass die API war konsistent, in der Regel gut dokumentiert und da ich mit einem neuen Werkzeug entwickelte, konnte ich Sachen Kurbel für eine sehr anspruchsvolle Kunden in den gleichen oder in einigen Fällen besser als die Zeitrahmen Werkzeuge benutzte ich vor.

Nur sehr wenige Probleme. Das einzige ist jetzt der Kunde besteht auf mit IE 7 (nicht fragen) und einige der ausgefalleneren Augenschmaus nicht funktioniert total 100% in einer Add-on-Komponente (Charting).

BTW ich nicht Arbeit für Vaadin entweder: -)

Ich habe versucht, Wicket und Vaadin beide und wenn Sie wirklich beide für einige Zeit versuchen, mit in einem Monat werden Sie wissen, dass Vaadin ist der Weg zu gehen und nicht Wicket, period. - Dheeraj G

Wir haben in Wicket sehen, wo ich arbeite, aber wir fanden statt 9.000 Dateien, wir 30.000 haben über konnten. Wir haben fast 1.000 Bildschirme mit unseren Kernfinanzdienstleistungen Anwendung und obwohl Wicket sieht gut aus ist es äußerst schwierig, unseren Struts 1.3-Code zu Wicket zu konvertieren. Unser Architekt hat ein POC Projekt und nur 3 Bildschirm hinzugefügt mehr hundert Klassen (viele sind für Wiederverwendung). Es ist auch schwierig, einen Bildschirm mit Wicket protoype seit Ihrem html den Java-Code und umgekehrt müssen übereinstimmen.

Vaadin sieht vielversprechend aus, aber es wird schwer zu verkaufen für das Team sein.

P. S. Egal wie groß ein Rahmen ist, niemand wird es erfahren, wenn es nicht in der Industrie verwendet wird. Wicket war für eine Weile noch sehr wenige Unternehmen es verwenden, um. Die meisten Entwickler mich mit anging sprechen mit einem neuen Rahmen zu lernen, die auf einem Lebenslauf ist nutzlos.

Das Wichtigste ist Vaadin Anwendungen Swing-artiges Design und es hilft, dass ich in Java mit Swing gestartet.

Ich habe Vaadin verwendet, um eine giftadvisor an der Firma, die ich Arbeit zu entwickeln (nicht Vaadin;).

Vaadin ermöglicht es, echte componentized Swinglike Web-Anwendungen zu erstellen.

Wenn Sie über die Client-Server-Roundtrip betroffen sind für jeden Klick ich dies muss sagen: Ich habe ein Mouseover-Taste, die das Aussehen der Schaltfläche auf Ja, Mouseover ändert. Dazu muss der Rahmen an den Server und zurück gehen. Und es funktioniert imo schnell genug. Siehe http://www.cadeau.nl/sophie zu prüfen, was ich meine.

Ich mag Vaadin, es Suiten meine Bedürfnisse und macht webdevelopment eine Brise.

Viele Grüße, Rob.

Ich begann mit Vaadin erst vor zwei Tagen und konnte eine kleine CRUD Anwendung auf OSGi komplett mit Modularität, Datenbindung, OSGi-Service für die Persistenz bauen. Eine wirklich nette Sache ist, dass meine komplette UI ist nur 118 Zeilen Code und unterstützt die kompletten CRUD-Operationen für eine einfache Java Bean Struktur.

Es ist auch schön, dass Vaadin perfekt in OSGi funktioniert. Es ist bereits ein Bündel und ich fand eine kleine Brücke von Neil Bartlet das macht Vaadin extrem einfach zu bedienen in OSGi.

Siehe Aufgabenliste Vaadin Beispiel

ich nicht mit Staaten auf der Serverseite kümmern. Es dient seinen Zweck erfüllt. Mit Cloud Computing jetzt-a-Tage Speicher und Bandbreite werden immer billig. Aber ja, ich kann Ihren Punkt von einer guten Design-Perspektive sieht vor allem, wenn Sie RESTify mögen Ihre Anwendung. Aber ich glaube, dass es mehr Vorteile überwiegen in Bezug auf Vaadin und dergleichen. Eine wichtige Sache, müssen Sie nicht viel über Ihre Web-Anwendungen für einen bestimmten Browser zwicken müssen läßt es IE nennen, für Javascript / CSS Feinheiten - vor allem, wenn Sie auf das Back-End wie ich orientiert sind. Alle Ihre Webapps wird über Browser kompatibel, ohne sich Sorgen zu machen alles mit. Denken Sie daran, Entwickler Es ist teurer als die von Speicherplatz und Bandbreite. Das ist meine Meinung. =)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top