Ik zit op dit moment in een wat inventariserende fase voor een webshop applicatie die een webbased front-end heeft voor de internetbezoeker, en een swing-based beheer applicatie voor het beheer van de artikelen, orders etc. Nu heb ik zelf geen ervaring met J2EE ontwikkeling, op wat testgedoe met swing UI components na. Ik heb alleen ervaring met scripttalen zoals PHP/Javascript. OOP werken is geen probleem, ik mis alleen de basiskennis wat betreft J2EE coding en hoe het nu alle tiers aan elkaar geplakt worden.
De volgende setup heb ik in gedachten:
Application Server
JBoss of Sun Application Server. Voordelen van of verschil tussen deze 2 is mij niet echt duidelijk. Liefst draai ik de nieuwste JEE 5 versie zodat dingen als generics en jsf ook goed werken.
Webbased front-end
JSP icm met JSF components. In hoeverre is JSF al echt uitontwikkeld, zijn er al standaard componenten zoals de .NET/PRADO datagrids, calender choosers, datasource based repeater components e.d. of moet je die zelf ontwikkelen of 3rd party components voor gebruiken?
Swing/desktop app front-end
De swingbased desktop app. wordt in principe alleen gebruikt voor artikelbeheer, orders beheren, financieële rapportage e.d. de website heeft deze functionaliteit dus niet (eigenlijk geen overlapping van functionaliteit) ze moeten alleen wel van dezelfde back-end / code gebruik maken.
Database
PostGreSQL 8.1 als database. Laatst in een project gebruikt en bevalt stukken beter als MySQL, alleen jammer dat dingen als full text search standaard niet geinstalleerd zijn en een SQL_CALC_FOUND_ROWS functie niet bestaat.
J2EE, EJB, Hibernate?
Wat J2EE nu eigenlijk is wordt nergens goed uitgelegd, alleen dat het een subset/uitbreiding is van de J2SE SDK. Kan ik zonder gebruik te maken van EJB (Session beans, stateless/statefull beans, whatever beans) ook een 3-tier applicatie opzetten die over het netwerk babbelt met mijn swing applicatie en webbased frontend? Welke componenten heb je daarvoor nodig, gaat dat via RMI of CORBA (?). Hoe maakt een swing client of de JSP front-end (als deze op een aparte machine zou draaien ipv dezelfde VM als de app. server) nu eigenlijk contact met de services/remote objecten van de application server?
Voor de persistent objects wil gebruik maken van 'hibernated' POJO's die de client krijgt en weer terug stuurd. Het nut van aparte DTO's met daarbij weer een extra conversielaag zie ik het nut niet zo van in, of zijn er nog security issues of grote voordelen aan het gebruik van DTO's?
Waar kan ik het beste mijn business rules kwijt? Een gedeelte van deze business rules kunnen geimplementeerd worden in de POJO's, maar een rule zoals 'een bestelling op rekening mag alleen de status verstuurd krijgen als de klant zijn openstaand saldo met x bedrag niet overschrijdt' hoort niet in een POJO thuis maar in een aparte laag. Waar moet ik dit stoppen? in de DAO, een Service layer of in de database als trigger, of beide?
Zijn er goede boeken/websites die een vergelijkende situatie behandelen of kleine J2EE voorbeeld applicaties? Er zijn zat stukken code te vinden met best practices voor bijv. het DAO pattern maar hoe alles nu samenvalt en in de praktijk werkt ben ik nog niet achter.
Iemand tips / goede ideeën ?
De volgende setup heb ik in gedachten:
Application Server
JBoss of Sun Application Server. Voordelen van of verschil tussen deze 2 is mij niet echt duidelijk. Liefst draai ik de nieuwste JEE 5 versie zodat dingen als generics en jsf ook goed werken.
Webbased front-end
JSP icm met JSF components. In hoeverre is JSF al echt uitontwikkeld, zijn er al standaard componenten zoals de .NET/PRADO datagrids, calender choosers, datasource based repeater components e.d. of moet je die zelf ontwikkelen of 3rd party components voor gebruiken?
Swing/desktop app front-end
De swingbased desktop app. wordt in principe alleen gebruikt voor artikelbeheer, orders beheren, financieële rapportage e.d. de website heeft deze functionaliteit dus niet (eigenlijk geen overlapping van functionaliteit) ze moeten alleen wel van dezelfde back-end / code gebruik maken.
Database
PostGreSQL 8.1 als database. Laatst in een project gebruikt en bevalt stukken beter als MySQL, alleen jammer dat dingen als full text search standaard niet geinstalleerd zijn en een SQL_CALC_FOUND_ROWS functie niet bestaat.
J2EE, EJB, Hibernate?
Wat J2EE nu eigenlijk is wordt nergens goed uitgelegd, alleen dat het een subset/uitbreiding is van de J2SE SDK. Kan ik zonder gebruik te maken van EJB (Session beans, stateless/statefull beans, whatever beans) ook een 3-tier applicatie opzetten die over het netwerk babbelt met mijn swing applicatie en webbased frontend? Welke componenten heb je daarvoor nodig, gaat dat via RMI of CORBA (?). Hoe maakt een swing client of de JSP front-end (als deze op een aparte machine zou draaien ipv dezelfde VM als de app. server) nu eigenlijk contact met de services/remote objecten van de application server?
Voor de persistent objects wil gebruik maken van 'hibernated' POJO's die de client krijgt en weer terug stuurd. Het nut van aparte DTO's met daarbij weer een extra conversielaag zie ik het nut niet zo van in, of zijn er nog security issues of grote voordelen aan het gebruik van DTO's?
Waar kan ik het beste mijn business rules kwijt? Een gedeelte van deze business rules kunnen geimplementeerd worden in de POJO's, maar een rule zoals 'een bestelling op rekening mag alleen de status verstuurd krijgen als de klant zijn openstaand saldo met x bedrag niet overschrijdt' hoort niet in een POJO thuis maar in een aparte laag. Waar moet ik dit stoppen? in de DAO, een Service layer of in de database als trigger, of beide?
Zijn er goede boeken/websites die een vergelijkende situatie behandelen of kleine J2EE voorbeeld applicaties? Er zijn zat stukken code te vinden met best practices voor bijv. het DAO pattern maar hoe alles nu samenvalt en in de praktijk werkt ben ik nog niet achter.
Iemand tips / goede ideeën ?
