[Java] web ontwikkeling

Pagina: 1
Acties:

  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
Ik werk momenteel aan een web applicatie en gebruik hiervoor een combinatie van jsp/servlets. Dit om de code en het design proper gescheiden te houden. Ik vroeg me af welke technologieën er nog bestaan in de java wereld.

Mijn vraag is dus welke technologieën gebruiken jullie om grote web applicaties tot een goed einde te brengen ? Gebruiken jullie custom tag lib's of nog andere technologieën en wat zijn hiervan de voordelen volgens jullie ?

Om te voorkomen dat dit topic weer een flame wordt tussen php en java wil ik het totaal niet hebben over php of waarom jij vind dat php beter is.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Er zijn rond de 150 webframeworks voor Java. Webframeworks doen voornamelijk niets meer dan van een http request bij de business logic komen. Ik gebruik zelf met uitzonderlijk veel plezier Spring als lijm tussen componenten, om declaratief transacties en security toe te voegen, om declaratief jmx beans te maken, om declaratief (course grained) objecten te remoten. En verder gebruiken we Hibernate als OR mapper.

  • djengizz
  • Registratie: Februari 2004
  • Niet online
Kijk eens naar Struts en Java Server Faces. Voor een artikel hoe je het beste van beide kan gebruiken: http://www-106.ibm.com/de...java/library/j-integrate/
Verder sluit ik me aan bij Alarmnummer wat betreft Hibernate. En alledrie de keuzes sluiten het gebruik van Spring niet uit, maar dit kan Alarmnummer je haarfijn uitleggen ;)

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Er bestaat idd een hele hoop aan frameworks die beschikbaar zijn voor webontwikkeling. De simpele combinatie jsp/servlets is al mooi, maar voor echte webapplicaties zou je dit toch nog veel dieper moeten scheiden hoor.

Als eerste interessante framework raad ik je Struts aan. Dit is een relatief simpel framework die je redelijk snel onder de knie zal/kan hebben. Dit geheel voor de presentatie zijde.
OnJava: Introduction to Struts

Voor de business logica, kan je misschien wel gebruik maken van een aantal J2EE design patterns zoals Session Facade (aanspreekpunt naar je business logica), Factory (creatie van je objecten), DAO (Database), ... Een overzicht van de verschillende J2EE design patterns vind je hier:
Core J2EE patterns

Om de data en dus je Objecten uiteindelijk te kunnen opslaan in de database, kan je overigens nog gebruik maken van Hibernate (of een andere ORM Framework). Hibernate laat je toe, om aan de hand van mapping files, je objecten te vertalen naar relationele data. Een goed boek is "Hibernate in Action" van Manning.

Op deze manier krijg je toch al een zeer deftige web-applicatie, mits goed uitgebouwd. Later kan je nog altijd Spring aanleren.. maar om te beginnen, zou ik deze misschien even links laten liggen totdat je het overige onder de knie hebt. Zodat je erna met Spring al die verschillende frameworks mooi aan elkaar kan plakken.

edit:
Ohja.. php is niet gemaakt voor de 'echte" webapplicaties :P

[ Voor 3% gewijzigd door -FoX- op 17-12-2004 10:42 ]


  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
dus eigenlijk is het een beetje kortzichtig van mij om enkel jsp/servlets te gebruiken terwijl ik eigenlijk beter nog andere technieken kan gebruiken die de ontwikkeling van mijn web applicatie gemakkelijker kunnen maken 8)7

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ti_Uhl schreef op vrijdag 17 december 2004 @ 10:41:
dus eigenlijk is het een beetje kortzichtig van mij om enkel jsp/servlets te gebruiken terwijl ik eigenlijk beter nog andere technieken kan gebruiken die de ontwikkeling van mijn web applicatie gemakkelijker kunnen maken 8)7
Yep.. Je weblayer is in principe een van de vele layers in het verhaal. In veel standaard apps heb je verder nog een domain layer (waar al je domein logic/objecten) in zitten (werkt onafhankelijk van de weblayer). En verder heb je nog een keer je data layer die de vertaling doet van domain->database en andersom.

Verder kun je die layers ook allemaal weer stukbreken in kleinere layers... maar dat zal ik je nu even besparen :P

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Het is net wat Alarmnummer zegt. Je moet eigenlijk een combinatie vinden van bepaalde Componenten (Tag libs, 'Utility' classes en Frameworks) die je het lekkerst vindt werken.

Ik gebruik bijvoorbeeld:

Voor het builden:
XDoclet en Ant.

Voor de middletier:
EJB's met een enkele keer Entity beans (verschilt per situatie).

Voor de GUI:
JSP/Servlets met een paar custom taglibs van mezelf en de volgende van derde:

Struts (Apache)
Tiles (Apache)
OSCache (van opensymphony, dit is een zeer sterk caching mechanisme wat de performance zeer ten goede komt)

En daarnaast nog wat library's met handige classen:

ECS (van Apache voor de HTML klassen)
Commons (voor o.a. Struts en voor een deel gebruik ik ze zelf)
ORO (voor o.a. Struts en voor een deel gebruik ik ze zelf)
Xalan
Xerces

Voor Rapporten:
XML met XML-FO en XSLT dmv Apache FOP.
Avalon (nodig voor Apache FOP)
Batik (nodig voor Apache FOP)

Voor de Security gebruik ik de Jaas implementatie van JBoss.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • TukkerTweaker
  • Registratie: November 2001
  • Laatst online: 16:06
Ik gebruik nogal eens velocity templates + servlets. Deze templates zijn zelfs voor een a-technische designer nog wel te behappen.

  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
struts zijn dus eigenlijk een soort van gui builder voor html als ik me dus niet vergis ?

Misch dat ik daar dan maar eens mee ga beginnen . En dan die hibernate lijkt me ook wel een handige manier om data naar een database over te zetten.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ti_Uhl schreef op vrijdag 17 december 2004 @ 16:13:
struts zijn dus eigenlijk een soort van gui builder voor html als ik me dus niet vergis ?

Misch dat ik daar dan maar eens mee ga beginnen . En dan die hibernate lijkt me ook wel een handige manier om data naar een database over te zetten.
Ik denk dat het handiger als je goed weet hoe de layers van webapplicaties in elkaar steken. Dan kan je struts ook beter plaatsen en er mee doen wat moet (en ook niet meer.. dus geen business logic in zetten).

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
http://struts.apache.org/userGuide/index.html
Is een goede plek om te lezen wat Struts precies inhoud.

Daarnaast is er een boek van O'Reilly (Programming Jakarta Struts ISBN 0-596-00358-5) verkijgbaar bij bijvoorbeeld Computer Collectief www.comcol.nl wat ik echt een aanrader vindt.

Dit boek is gebaseerd op een iets oudere versie van Struts maar het concept en veel van de functionaliteit is hetzelfde gebleven.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
ben juist begonnen met het lezen van de Struts user guide op de site van Apache.

Ik weet alweer wat ik ga doen met het geld van de feestdagen :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ti_Uhl schreef op vrijdag 17 december 2004 @ 16:38:
ben juist begonnen met het lezen van de Struts user guide op de site van Apache.

Ik weet alweer wat ik ga doen met het geld van de feestdagen :)
Nogmaals.. Probeer goed te zien wat struts is binnen het gehele plaatje. Als je wilt weten hoe een auto in elkaar zit ga je je ook niet alleen concentreren op de voorruit en hopen dat je daarmee de hele auto begrijpt.

  • Ti_Uhl
  • Registratie: Mei 2003
  • Laatst online: 19-09-2012
Denk dat het zo ongeveer tussen uw logical layer en presentation layer zit en het zo zorgt voor de communicatie tussen jsp pages en servlets en dat dat allemaal geregeld word door Action classes :)

Snap het nog niet volledig maar dat komt nog wel eerst even die user guide uitlezen en een van de dagen eens gaan kijken voor een goed boek hierover.

Hopelijk krijg ik het tegen volgende maand allemaal een beetje onder de knie want dan zou ik die web applicatie willen beginnen :D
edit:

Ok dus die Action classes zijn eigenlijk een nieuwe layer die er voor zorgt dat je logic layer niet vast hangt aan je web app maar dat die eventueel nog herbruikt kan worden in een desktop application ( swing, swt, .... ) is het zo ongeveer ?

[ Voor 22% gewijzigd door Ti_Uhl op 17-12-2004 17:00 ]


  • djengizz
  • Registratie: Februari 2004
  • Niet online
Ti_Uhl schreef op vrijdag 17 december 2004 @ 16:54:
edit:

Ok dus die Action classes zijn eigenlijk een nieuwe layer die er voor zorgt dat je logic layer niet vast hangt aan je web app maar dat die eventueel nog herbruikt kan worden in een desktop application ( swing, swt, .... ) is het zo ongeveer ?
Niet helemaal.. De 'Action-classes' laag is niet bedoeld om hergebruikt te worden het is een laag die bedoeld is om de zowel de view-logica te bevatten (erg applicatie specifiek en dus niet echt kandidaat voor hergebruik) als om een brug te vormen tussen deze view en de 'echte' business logica

Verwijderd

offtopic:
@ -FoX-:

Jij onruststoker, heb je nog niet genoeg schade aangericht met je vorige topic?! ;)

Verwijderd

het is misschien makkelijker je op weg te helpen met een link naar appfuse (http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse)

AppFuse is een soort basis applicatie waar je zelf je eigen applicatie mee uit de grond kan stampen. Er is reeds een build script, directory structuur, alle dependencies zijn er, er zijn voorbeeldjes en er zijn tutorials op de site.
Nog beter, je hoeft geen struts te kiezen(Struts is het meest bekende, maar daarom neit het beste, kijk eens naar Webwork2 als je tijd/zin moest hebben). Er is een appfuse versie met Webwork, Struts, Spring en JSF MVC lagen. De onderliggende businesslaag is steeds dezelfde, hibernate + spring.

Door je te baseren op AppFuse bespaar je jezelf tamelijk wat werk doordat je zelf niet moet klooien tot je een werkend ANT buildscript hebt. Om te beginnen is het leuk als veel van die tijdrovende taken reeds gedaan zijn.

succes iig :)

[edit]
Appfuse heeft dus 5 MVC frameworks in 5 verschillende implementaties, Tapestry vergeten :)
(owja, groot project? Axis+Spring is voor Spring 1.2 en ziet er gelikt uit :))

[ Voor 10% gewijzigd door Verwijderd op 17-12-2004 20:11 ]

Pagina: 1