Frage

Bald werde ich ein Webprojekt für ein Unternehmen starten muß, und ich brauche jetzt eine Technologie wählen, um die Anwendung zu bauen. Ich denke über Java verwenden, daher würde Ich mag einen Rahmen finden, die mir die App bauen helfen (Ich bin zu PHP-Framework verwendet, wie CakePHP & CodeIgniter).

Was ich nicht verstehe, ist, dass es eine Menge von Rahmen und Technologien zu existieren scheint, die das gleiche Ziel nicht haben. Handlungsrahmen, Rahmen Component ... Was kann ich mit einem tun kann ich nicht mit einem anderen tun? Es scheint, ein Java-Web-App, indem ein viel verschiedener Technologien entwickelt werden soll, daher bin ich ein wenig verloren ... Ich habe einen Blick auf differents Java-Frameworks hat, wie JSF, Streifen, Struts2, Tapisserie, Wicket und Spring. Über die später noch still, dass ich nicht sehen, was die verschiedenen Teile dieses Rahmens sind, was sie für mich tun kann und was es nicht kann. Was kann ich von Frühling nehmen und was brauche ich nicht ...

Also: was brauche ich eine Java-Web-Anwendung zu bauen?

Ich habe schon JSF für eine grundlegende CRUD App verwendet, aber ich versuche, etwas zu finden, das besser kann mein Bedürfnis entspricht. Die App wir bauen müssen wird sowohl eine Community-Plattform sowie eine Händler-Website, mit sinnvollen Daten zu schützen:)

über die ORM, ich denke, ich werde nur mit Hibernate gehen ... Ich habe auch gehört, über Maven oder Ant, in welcher Weise können sie mir helfen?

Jede Beratung / Richtlinie sehr geschätzt :-) würde Vielen Dank im Voraus.

Edit: was meine Bedürfnisse sind: ein Java-Framework, das ist:

  • gut dokumentiert / easy Hilfe / so einfach wie möglich zu bekommen ...
  • die mehr java, desto besser
  • Ajax freundlich / Einrichtung schön UI zu bauen ...
  • Internationalisierung
  • noch ein Student zu sein, Vermarktbarkeit Fähigkeiten Macht Angelegenheiten ...

Die App gebaut werden sowohl ein

  • Community-Website: Web 2.0, CRUD
  • E-Commerce-Website

Alle technischen Daten sind noch nicht fertig.

War es hilfreich?

Lösung

Dies ist eine sehr schwierige Frage zu beantworten, in Ihrer Situation gewesen vor kurzem werde ich versuchen, einen Einblick zu geben. Im Grunde genommen mit Java gibt es eine Tonne Wahl für Gerüste und niemand kann man wirklich sagen, welche ist am besten geeignet für Sie, was wir tun können, ist Ihnen eine Aufschlüsselung der einige der Technologien.

Das folgende ist das, was ich bin gekommen, über Antworten auf der Suche nach den gleichen Sie wollen.

Java hat eine Reihe von Technologien, die eine Full-Stack-Lösung zur Verfügung zu stellen versuchen. Diese Technologien aufgebrochen in andere Technologien werden können, aber gut funktionieren, wenn man sie zusammen verwenden.

Im Wesentlichen gibt es drei Ebenen, um Web-Anwendungen, die Präsentation, Business und Datenebene. Die Präsentationsschicht ist das vordere Ende, was der Benutzer sieht. Im Allgemeinen können Sie mischen und zusammenzupassen Technologien für diese drei Schichten. Sie könnten einen Streifen verwenden Front-End mit dem Spring-Framework für IOC zum Beispiel und Hibernate als ORM.

Es gibt viele gute Technologien, die Sie für die Präsentationsschicht verwenden, einschließlich Spring-MVC, Struts, Streifen, Wicket, JSF / SEAM und Tapestry unter einigen. Die meisten von ihnen verwenden, um eine JSP für die Ansicht JSTL verwenden, mit Ausnahme von Wicket, die tatsächlich voll den HTML von der Logik trennen durch Verwendung von Java „Komponenten“ (POJOs). Es gibt Vorteile und Nachteile beider Ansätze. Der Vorteil des Wicket Ansatzes ist, dass Sie statische Typprüfung und eine vollständige Trennung des HTML, so dass Sie es weg zu Ihrem Designer Hand können.

Für die Business-Schicht verwenden in der Regel Menschen irgendeine Art von Inversion of Control Framework (IOC) für Dependency Injection (DI). Die beliebten Rahmenbedingungen für das IOC sind Frühling und Seam, diese haben verbundene Technologien wie Spring-Sicherheit und sind in der Regel von den anderen Technologien unterstützt. Google Guice scheint für einen geraden DI Rahmen populär zu sein.

Schließlich wird für die Datenschicht der meisten Menschen neigen dazu, Hibernate oder JPA zu verwenden. Es gibt andere, aber ich habe keine Erfahrung mit ihnen und kann nicht mehr Informationen bieten.

Tapestry ist ein weiterer Rahmen, der einen vollen Stapel zu sein versucht, von dem, was ich verstehe, und nimmt einen Wicket wie (oder ich denke, Wicket einen teppichartigen nimmt) Ansatz. Grails ist ein weiteres Full-Stack-Framework Groovy und oben auf Spring und Hibernate gebaut. Wenn Sie mögen, Rails, Grails ist ziemlich gut.

Die meisten dieser Technologien haben eine Vielzahl von Informationen zur Verfügung und sehr aktiven Mailing-Listen / IRC-Chatrooms. Was Sie tun müssen, um einen Blick auf sie nehmen und dann entscheiden, welche Methode ist die richtige für Sie. Niemand hier ist in der Lage, Ihnen zu sagen, was Sie mögen.

Wenn Sie eine Empfehlung wollen, würde ich einen Tag gerne verwenden, um einen Wicket / Guice / Stack Ruhezustand.

Andere Tipps

Mein Favorit ist definitiv Frühling. Die neue Spring MVC 2.5 ist einfach und schnell einzurichten, viele Anmerkungen Sie Ihre Controller deklarativ zu helfen, Draht, spart Ihnen eine Menge Tipparbeit. Es integriert auch mit dem Federbehälter, der auf jeden Fall leichtgewichtige J2EE Ersatzbehälter ist mein Favorit. Ich kombiniere SpringMVC in der Regel mit einfachen JSP, aber es gibt eine Menge anderer Ansicht Techs zur Auswahl. Für Persistenz verwende ich in der Regel Hibernate. Könnte sich lohnen, einen Blick zu nehmen unter Frühling ROO die wie Grails Art ist ohne Groovy. Spring Security bietet eine schöne und einfache deklarative Möglichkeit, die Sicherheit zu tun und integriert sich in eine ganze Reihe von Authentifizierungstechnologien.

Maven und Ant sind beide Build-Tools, während Maven auch Abhängigkeiten für Sie übernimmt. Sie „nur“ einrichten Deskriptoren, die die Bibliotheken beschreiben Sie wollen und die Versionsanforderungen und Maven werden alle Bibliotheken und deren Abhängigkeiten für Sie herunterladen. Es zwingt Sie ein bestimmtes Projekt-Layout zu folgen, though. Für Ameise gibt es Efeu, die Abhängigkeiten der Fall ist.

Ich schlage vor, Sie haben einen Blick auf Grails . Grails ist ein "Codierung durch Konvention" Web Application Framework auf einen Stapel von bewährten Java-Frameworks bauen (Spring, Hibernate, ...) und mit dem Groovy Sprache ..

Die Schönheit der Grails ist, dass Sie wenig Wissen über Spring, Hibernate, usw. benötigen, um loszulegen. Aber danach haben Sie noch Zugriff auf die volle Leistung dieser Rahmenbedingungen sollte es erforderlich sein.

Auf jeden Fall Frühling verwendet für das Back-End; Es gibt eine ausgezeichnete Gemeinschaft auf ihrem kostenlosen Support-Forum (Sie können auch für mehr formale Unterstützung zahlen).

In Bezug auf Ihre Entscheidung Hibernate zu verwenden, Sie könnten, um gegen PPV codieren möchten, dass Ihre App aus dem Ruhezustand zu entkoppeln (die eine von mehreren JPA-Implementierungen ist).

Wenn Sie einen Ajax-Frontend wollen, ist es lohnt sich, einen Blick auf die ZK Rahmen nehmen; it'svery einfach, ohne verwenden JavaScript zu lernen, und vermeidet zu Sanitär-Bibliotheken wie DWR verwenden.

Der Rat von anderen Frühling zu verwenden ist eine ausgezeichnete Idee. Sie werden feststellen, dass Sie tatsächlich eine Reihe von verschiedenen Rahmenbedingungen zusammen, weil jeder Rahmen ein etwas anderes Problem löst verwenden.

Ich würde vorschlagen, dass Sie einige Zeit mit jedem Rahmen oder Technologie investieren vor dem Sprung aber Sie wollen schließlich um sie zusammen zu arbeiten. Sie können eine Struts + Spring + Hibernate-Setup zum Beispiel möchten. Konfigurieren von ihnen könnte ein Problem werden.

Deshalb schlage ich vor, dass Sie verwenden AppFuse , die mit Grundfunktionalität durch Erzeugen der Basisanwendung hilft. Es ist eine große Zeitersparnis. Natürlich werden Sie auch brauchen, um die verschiedenen Frameworks zu verstehen, die für Sie konfigurieren sind, so dass sie nicht eine magische Lösung.

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