... vielleicht bin ich da unverständlich, aber ein wichtiger Grund warum nicht den MS.net swing ernsthaft ausprobiere und diese Woche des xTreme framework-using noch bis 11.00 Uhr "Warum das jetzt? Vermutlich commiten da jetzt Iris Entwickler unter falschen Namen in hibernate"-fluchendnd vorm Lapptop verbringe ist, dass sowas möglich ist:
http://www.jroller.com/page/fate/20040606Rick Ross ist der gratis-hoster seines Blogs...
JRoller
Continuing a fine tradition of sucking
ist die open Source blog-Software, die er benutzt.
Anyway:
http://www.amazon.com/exec/obidos/tg/detail/-/032118579X/qid=1086884389/sr=8-1/ref=pd_ka_1/103-8037630-2447864?v=glance&s=books&n=507846http://www.theserverside.com/books/wiley/masteringEJB/index.tss (gratis Buch. Das 1. Kapitel gibt einen guten Überblick darüber, wofür EJB eigentlich gut ist.
Das alles sollte aber mit einem gesunden Mißtrauen gelesen werden.
Auf der anderen Seite werden gerade jetzt Entity-EJBs heftig angegriffen. Die EJB Spezifikation wird gerade in diesem Bereich sehr stark renoviert und offensichtlich scheint es nicht zu gehen wie gedacht.
Am meisten beachtet wird zur Zeit wohl:
http://www.manning.com/catalog/view.php?book=bauerMan sollte aber vorher gewisse praktische Erfahrungen mit RDBMS (und sei es MySql) und Java haben.
Wegen solcher Vorgänge glaube ich ehrlichgesagt auch nicht an die J2EEsierung von Domino.
Der Trend geht momentan eindeutig zum schlanken Container (= Laufzeitumgebung). Also eben gerade nicht Websphere. Mir macht das persönlich auch viel mehr Spaß. Aber vielleicht ist das in 2 Monaten wieder anders.
Leute sollten aufhören Java mit "komplex" zu identifizieren.
Hier z.B. parse ich ein xml Dokument und erstelle damit einen wirklich benutzbaren Objekt Baum. Das ist nicht viel code:
Digester digester = new Digester();
digester.addObjectCreate("MatchSchedule", MatchSchedule.class);
//Set the attribute values as properties
digester.addSetProperties("MatchSchedule");
//A new Phase instance for the Phase tag
digester.addObjectCreate("MatchSchedule/Phase", Phase.class);
//Set the attribute values as properties
digester.addSetProperties("MatchSchedule/Phase");
//A new Match instance for the Match tag
digester.addObjectCreate("MatchSchedule/Phase/Match", Match.class);
//Set the attribute values as properties
digester.addSetProperties("MatchSchedule/Phase/Match");
// Next Match
digester.addSetNext("MatchSchedule/Phase/Match", "addMatch");
// Call Method initDependantObjectsFromXml that takes no parameter
digester.addCallMethod("MatchSchedule/Phase",
"initDependantObjectsFromXml");
//Next Phase
digester.addSetNext("MatchSchedule/Phase", "addPhase");
//Parse the XML file to get an MatchSchedule instance, the root object that is.
MatchSchedule a = (MatchSchedule) digester.parse(this.getClass().getClassLoader()
.getResourceAsStream("MatchSchedule.xml"));
Axel