Welchen Stack würdest du für ein neues Web-Java-Projekt verwenden, wenn du heute angefangen hast? [geschlossen]

8

Wenn Sie heute ein brandneues Java-Projekt mit folgenden Anforderungen starten würden:

  • hoher Maßstab (20k + Benutzer)

  • Sie möchten etwas verwenden, das ziemlich ausgereift ist (sich nicht dramatisch verändert) & amp; wird in 3 Jahren keine tote Technologie sein

  • Sie möchten etwas sehr produktives (kein Server startet neu in dev, speichern Sie den Code und seine automatisch kompiliert und bereitgestellt), Produktivität und Time-to-Market sind der Schlüssel.

  • eine gewisse Menge AJAX am Frontend

  • keine Skriptsprache (JRuby, Groovy, PHP usw.), es muss Java sein

  • muss i18n

  • unterstützen

Welchen Stack würdest du verwenden & amp; Warum? (wenn ich Stack sage, meine ich, alles Suppe zu Nüsse, so App-Server, MVC-Framework, Bean-Framework, ORM-Framework, JavaScript-Framework, etc ...)

    
Joelio 27.05.2010, 20:06
quelle

5 Antworten

10

Ich würde einen Java EE 6 Stack verwenden:

  • GlassFish v3 als Anwendungsserver: nicht schwer, sehr produktiv während der Entwicklung (und GlassFish 3.1, das vor Ende des Jahres veröffentlicht wird, wird zentralisierte Verwaltung / Clustering und Hochverfügbarkeit / Statusreplikation haben)
  • JQuery, JSF 2 (oder Wicket) für die Präsentation
  • CDI, EJB 3.1 (Lite?), JPA 2.0 (Hibernate 3.5+ oder EclipseLink)
  • Arquillian (1) mit Weld SE und / oder GlassFish Embedded zum Testen

(1) Siehe auch:

Pascal Thivent 27.05.2010 20:37
quelle
3

Für eine traditionelle Java-Webapp, für Ihre Ziele, würde ich mit Streifen als MVC-Framework gehen, da es sehr einfach einzurichten und zu laufen ist, und es spielt gut mit Frühling und Winterschlaf, und hat gute Ajax-Unterstützung.

Im Hinblick auf die Produktivität sollten eclipse dynamische Web-Projekte Ihre Kompilierungs- / Bereitstellungsprobleme lösen. Ich habe es immer mit Tomcat verwendet, aber es sollte auch mit jBoss funktionieren.

Ich persönlich würde tomcat, stripes (mvc), hibernate (orm), spring (falls erforderlich), jQuery (js) und eclipse für die Entwicklung verwenden.

    
Paul Sanwald 27.05.2010 20:28
quelle
3
  • Tapestry 5 & amp; JQuery (Tapestry 5 wurde entwickelt, um zukunftssicher zu sein, erfordert keinen Neustart des Servers und ist super schnell zu entwickeln mit - Komponenten sind schlank - es skaliert auch gut)
  • Spring für die Bean-Konfiguration (Tapestry unterstützt die Annotation-basierte Spring Bean-Konfiguration)
  • Handgefertigtes JDBC für relationales Modell (weil ich nicht gerne eine weitere Codeebene für ORM hinzufüge, und handgefertigtes kann besser abgestimmt werden)
  • Lucene für Indizes oder Daten, die nicht relational abgefragt werden müssen
  • Tomcat (oder Jetty falls eingebettet) - beides sind zuverlässige und gut getestete Server
Joel 27.05.2010 20:42
quelle
1

Ich würde gehen für:

  • Oracle 11g Datenbank.
  • JPA 2.0 ORM mit EclipseLink.
  • Glassfish v3 (zumindest bis Oracle WebLogic Java EE 6-kompatibel wird), wobei Nachrichtenwarteschlangen, DB-Verbindungspools oder andere JCA-Ressourcen bereitgestellt werden, die Sie möglicherweise benötigen.

Ich würde nicht für JSF gehen ... JSF 2.0 ist viel besser als JSF 1.0, aber stinkt immer noch in einigen Bereichen. In Szenarios, die "gegen den JSF-Weg gehen" (oder besser gesagt, in JSF nicht richtig behandelt wurden), werden Sie definitiv eine Wand treffen.

Ich würde für Spring 3.0 Framework und Spring MVC mit Spring Web Flow gehen, wenn Sie eine komplexe Navigation haben, die Sie steuern möchten. Dadurch haben Sie auch die Möglichkeit, den Webpart auf einem separaten Server (z. B. Tomcat) zu verwenden und die auf Glassfish gehosteten EJBs über IIOP aufzurufen und so zu skalieren.

Wenn Sie vollständige Kontrolle über das Design Ihrer Seiten haben möchten (vielleicht beabsichtigen Sie, einen Webdesigner zu beschäftigen, um das Aussehen und Verhalten zu erhalten), würde ich eine Template-Engine wie Velocity wählen, die gut mit Spring MVC integriert ist und ist Designer freundlich mit den meisten Werkzeugen wie Dreamweaver.

Schließlich kann JQuery einige vorgefertigte Javascript-Widgets wie Kalendersteuerelemente, Popups, Benutzermeldungen und Übergänge verwenden.

    
jbx 27.05.2010 21:41
quelle
0

Scala und Frühling

    
Srikar Doddi 27.05.2010 21:40
quelle