# kleines CMS mit JEE . Architekturvorschläge ?



## xyz23 (11. Dez 2008)

Ich plane ein kleines Web Contentmanagement System selbst zu entwickeln , und bin gerade ein wenig ratlos mit dem ersten Gedanken ? Welches Framework sollte man nehmen ?  

Womit die Datenbankpersistenz bauen , macht da ein ORM sinn , oder ist das mit Kanonen auf spatzen schiessen ?  

Wenn jemand da mal mit Erfahrungen gesammelt hat wären ein paar gedanken dazu vielleicht interessant ... 

Ich will zunächst ansich nur eine Benutzerverwaltung und eine Artikelverwaltung integrieren , mehr nicht ... 

Über kleine Anstösse in welche Richtung man gehen könnte würd ich mich sehr freuen ...


----------



## FArt (11. Dez 2008)

Hey, cool, wieder ein neues Rad...

Wodurch willst du dich von den anderen unterscheiden? Warum nichts fertiges nehmen? Von JBoss gibt es da z.B. was tolles...


----------



## Gast (11. Dez 2008)

mmh ... ich weiss nicht was in meiner Fragestellung stand ... stand da "welches bestehende CMS System ist gut" oder stand da , was wäre ein guter Ansatz  ?

Völlig ausgeschlossen das es da Gründe für gibt , oder ?


----------



## foobar (11. Dez 2008)

g-sus23 hat gesagt.:
			
		

> Ich plane ein kleines Web Contentmanagement System selbst zu entwickeln , und bin gerade ein wenig ratlos mit dem ersten Gedanken ? Welches Framework sollte man nehmen ?
> Womit die Datenbankpersistenz bauen , macht da ein ORM sinn , oder ist das mit Kanonen auf spatzen schiessen ?


Ja, bei Neuentwicklungen macht das auf jeden Fall Sinn.



			
				g-sus23 hat gesagt.:
			
		

> Wenn jemand da mal mit Erfahrungen gesammelt hat wären ein paar gedanken dazu vielleicht interessant ...
> Ich will zunächst ansich nur eine Benutzerverwaltung und eine Artikelverwaltung integrieren , mehr nicht ...
> Über kleine Anstösse in welche Richtung man gehen könnte würd ich mich sehr freuen ...


Frameworks gibts ja wie Sand am Meer, Welches man wählt ist wohl vorallem Geschmacksache. Als Inspiration kannste dir ja bereits bestehende Lösungen angucken, da kann man fast immer was lernen.


----------



## FArt (12. Dez 2008)

Gast hat gesagt.:
			
		

> mmh ... ich weiss nicht was in meiner Fragestellung stand ... stand da "welches bestehende CMS System ist gut" oder stand da , was wäre ein guter Ansatz  ?
> 
> Völlig ausgeschlossen das es da Gründe für gibt , oder ?


Welche denn? Noch mal die Frage: wie willst du dich von bestehenden Systemen unterscheiden? Genauer: was ist denn der ausschlaggebende Grund für eine Eigenentwicklung? (Vorsicht, Fangfrage: für die Antwort musst du bestehende Systeme und deren Unterschiede evaluiert haben und kennen! Außerdem musst du dir Gedanken darüber gemacht haben was du (anderes) erreichen möchtest und ob es der Aufwand Wert ist!)

Also, du willst etwas bauen, was es schon mehrfach fertig und erprobt gibt, bist aber "ratlos mit den ersten Gedanken". Du stellst dir die Frage nach Frameworks, hast selber keine Idee für eine Architektur, würdest aber gerne andere für dich denken lassen... das hört sich sehr vielversprechend an.

Auch wenn die Entscheidung (aufgrund von Eingebung, Wetterfühligkeit oder Selbsüberschätzung?) schon für eine Eigenentwicklung gefallen ist, ist das kein sinnvoller Ansatz. Die Wahl von Frameworks kommt im Laufe eines Projekts zu einem vieeeeeel späteren Zeitpunkt, nicht am Anfang. Und das aus gutem Grund! Es macht keinen Sinn einen Vorschlag für Frameworks oder die Architektur zu unterbreiten, wenn keinerlei Einflußfakten berücksichtigt werden (funktionale Anforderugnen, nicht-funktionale Anforderungen, andere Rahmenbedingungen, ...).

Mein Vorschlag:
Überdenke dein Vorhaben noch mal. Danach solltest du dein Vorhaben noch mal genau überdenken und dann einen Entschluß fassen. Sollte dieser "Eigenentwicklung" bedeuten, dann erkläre was du vor hast, warum du nichts fertiges einsetzen kannst, unter welchen Rahmenbedingungen das Teil eingesetzt werden soll, welchen Anforderungen es genügen soll, was es leisten soll.
Dann machst du dich schlau und investierst mal ein wenig Zeit. Mach dir ein paar Gedanken über mögliche Architekturen, Systemumgebungen und evtl. Frameworks. Wenn du mit diesem Stand und diesen Informationen in eine Diskussion eintrittst, dann bekommst du auch sinnvolle Antworten.


----------



## Capasso (12. Dez 2008)

FArt hat gesagt.:
			
		

> Hey, cool, wieder ein neues Rad...
> 
> Wodurch willst du dich von den anderen unterscheiden? Warum nichts fertiges nehmen? Von JBoss gibt es da z.B. was tolles...



Hmm. Manchmal finde ich es ein bischen ungerecht wie hier geantwortet wird.

Vielleicht will er auch nur zu Lern- und Übungszwecken oder zum besseren Verständnis was eigenes entwickeln.


----------



## FArt (12. Dez 2008)

Capasso hat gesagt.:
			
		

> FArt hat gesagt.:
> 
> 
> 
> ...



Vielleicht will er auch die Weltherrschaft an sich reißen. Weißt du es?


----------



## Guest (12. Dez 2008)

Ein einfacher Grund für das "neue Rad" kann sein, dass in der Endlösung nur wenig CMS und viel Nicht-CMS (z.B. Artikelstamm) vorkommt. Gut möglich, dass die Neuerfindung von ein "wenig" CMS-Funktionalität weniger Arbeit ist, als das Integrieren von eigenen Berechtigungsschemen, Artikelstrukturen.... usw.

Mit dem richtigen Framework ist eine einfache CMS Funktionalität (WYSIWYG-Html-Editor + Anzeige) nicht komplizierter als ein Textfeld eines normalen HTML-Formulars.

/Robert


----------



## FArt (12. Dez 2008)

g-sus23 hat gesagt.:
			
		

> Ich plane ein kleines Web Contentmanagement System selbst zu entwickeln , und bin gerade ein wenig ratlos mit dem ersten Gedanken ? Welches Framework sollte man nehmen ?
> 
> Womit die Datenbankpersistenz bauen , macht da ein ORM sinn , oder ist das mit Kanonen auf spatzen schiessen ?
> 
> ...





			
				Gast hat gesagt.:
			
		

> Ein einfacher Grund für das "neue Rad" kann sein, dass in der Endlösung nur wenig CMS und viel Nicht-CMS (z.B. Artikelstamm) vorkommt.



Passt nicht zusammen...


----------



## Guest (12. Dez 2008)

FArt hat gesagt.:
			
		

> g-sus23 hat gesagt.:
> 
> 
> 
> ...



Über die Motive läßt uns der Threadstarter ja im unklaren. Auch ob es sich bei den Artikeln ums News/Berichte oder um Warenartikel (an das habe ich zuerst gedacht - als ERP Entwickler...) handelt. Man weiß auch nicht ob es das Benutzerschema schon gibt oder ob das ganze Projekt nicht im Rahmen einer Ausbildung erfolgt.

Die Beschreibung ist natürlich sehr grob (Anzahl User/Sites/Zugriffe, sonstige Verarbeitungen, lange Contents, Clustern...) deshalb muss man aber nicht gleich so "herablassend" antworten.    

/Robert

PS. Ich weiß, meine Antwort trägt auch nicht konstruktiv zur Lösung bei, aber für konstruktiv suche ich mir ein anderes Forum...


----------



## freez (12. Dez 2008)

Hallo,

ich finde die Antworten von "FArt" sehr proffesionell. Eigentlich zu professionell. Es gibt auch Leute, die einfach nur aus Spaß an der Freud etwas entwickeln. Aus diesem Spaß wird sogar manchmal ein ernst zu nehmendes kommerzielles Projekt. Es spricht meiner Meinung nach nichts dagegen, nur mal so aus Spaß etwas größeres anzugehen.

Ich vermute mal g-sus23 wollte einfach mal ein paar Tipps um dann selbst für sich diese Tipps zu evaluieren.

Deswegen hier mein Vorschlag: Ich selbst bevorzuge JSF mit Facelets und erweitere evtl. auch mit Ajax4jsf. Für die Datenbankpersistenz benutze ich iBatis. Für den Anfang ist es einfach zu lernen, aber für größere Projekte sollte man wohl eher auf auf Hibernate setzen (oder gibt es da evtl. andere Meinungen???). iBatis ist auch für kleine Projekte nicht mit Kanonen zu vergleichen. Ganz im Gegenteil: es ist easy damit schnell ein ORM zu implementieren.


----------



## maki (12. Dez 2008)

>> ich finde die Antworten von "FArt" sehr proffesionell.

Sehe ich auch so.

Finde diese Aussage..


> Hey, cool, wieder ein neues Rad...


 nicht "schlimm" (Mal ehrlich, wer hat nicht dasselbe gedacht?)

Das hier ist doch eine berechtigte Frage:


> Wodurch willst du dich von den anderen unterscheiden? Warum nichts fertiges nehmen? Von JBoss gibt es da z.B. was tolles...


Höre immer wieder von "Kollegen" die ehemalige Flash/PHP "Entwickler" waren, dass sie eigene CMS Systeme geschrieben haben..  :autsch: 
Vielleicht meint der/die TS ja, dass das in Java auch Tradition hat... :roll:  

Jedenfalls hat der/die TS bis jetzt nicht geantwortet, wer behauptet denn dass es etwas mit FArts Post zu tun hat?



> Für die Datenbankpersistenz benutze ich iBatis. Für den Anfang ist es einfach zu lernen, aber für größere Projekte sollte man wohl eher auf auf Hibernate setzen (oder gibt es da evtl. andere Meinungen???). iBatis ist auch für kleine Projekte nicht mit Kanonen zu vergleichen. Ganz im Gegenteil: es ist easy damit schnell ein ORM zu implementieren.


iBatis hat imho seinen größten Vorteil, wenn man an Systemen entwickelt, bei denen die DB schon besteht, selbst kleine Systeme lassen sich mit JPA und einer prise Hibernate gut umsetzen, wenn man mal den Dreh raushat, denn mit iBatis muss man das ORM immer noch selbst schreiben.
Am wichtigsten ist imho dass man nicht immer noch reines JDBC nutzt


----------



## freez (12. Dez 2008)

Sehe ich das richtig, dass die Einarbeitungszeit in Hibernate um einiges höher ist als bei iBatis?


----------



## maki (12. Dez 2008)

freez hat gesagt.:
			
		

> Sehe ich das richtig, dass die Einarbeitungszeit in Hibernate um einiges höher ist als bei iBatis?


Ja, um einiges imho, ist eher die Theorie von ORM und was dazu gehört.
Bei iBatis geht es ja "nur" um den SQLMapper, also die Trennung von SQL und Java Code, die zugehörige XML Syntax und das DaoFramework mit den dazugehörenden Templates.

Persönlich bin ich trotz der Lücken in JPA ein Fan der Standartisierung, freue mich schon auf JPA2.0


----------



## freez (12. Dez 2008)

@maki: Naja, ich mag es schon sehr gern mit SQL zu arbeiten. Irgendwie kann ich mich an HQL nicht so ganz gewöhnen. Ich habe bis jetzt keinen Zugangspunkt zu Hibernate finden können, obwohl ich weiß, dass es DAS Produkt für ORM ist.


----------



## maki (12. Dez 2008)

> Naja, ich mag es schon sehr gern mit SQL zu arbeiten. Irgendwie kann ich mich an HQL nicht so ganz gewöhnen. Ich habe bis jetzt keinen Zugangspunkt zu Hibernate finden können,


Klar, SQL und RDBMS sind bewährt (ca. 25 Jahre alt?), jeder der eine Ausbildung abgeschlossen hat die irgendetwas mit IT zu tun hat kennt ER Diagramme, und mit ORM bringt einem der Großteil der Erfahrung mit SQL und RDBMS eben wenig, denn bei ORM haben OO Modelle Vorrang vor relationalen Datenmodellen, man muss komplett umdenken und Menschen mögen eben nur selten Veränderungen.

Aber wenn man mal gelernt hat mit dem ORM seiner Wahl umzugehen, will man nicht mehr zurück 
Der Weg dahin ist allerdings steinig und gepflastert mit vielen Büchern und Artikeln die gelesen werden müssen und manchmal etwas frustration..



> obwohl ich weiß, dass es DAS Produkt für ORM ist.


Populär ist Hibernate, bietet auch viel.
Liegt aber imho auch daran, das es für andere ORM Standards wie zB. JDO lange Zeit nur kommerzielle Implementierungen gab, und JDO ist Hibernate (und vor allem JPA) in einigen Dingen überlegen, was wiederrum daran lieg, das es älter ist.

Jedenfalls sollte man man imho nicht "nur" auf Hibernate setzen, TopLink hat ganz schön aufgeholt, zumindest den Specs nach.


----------



## foobar (13. Dez 2008)

Was macht TopLink denn anders oder "besser"? Du hast ja schon mal geschrieben, daß es bei TopLink keine Proxies mehr gibt. Wie wird das LazyLoading denn dann umgesetzt?


----------

