Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
euro2004
Hernan Cortez:
Schaun mer mal. ??? ;D
I never promised you a rose garden.
In den nächsten 18 Stunden wird hier geheimnisvoller (und sehr unfertiger) Java code für ein Tipp-Spiel gepostet. Da muß dann noch weiter dran gearbeitet werden. Wir haben noch 12 Tage.
Hernan Cortez:
ihr kennt das von Installationsprogrammen,
man kann das lesen, muß man aber nicht:
Hi,
Das ist jetzt mal so ein Versuch.
Disclaimer1:
Ich bin Angestellter einer kleinen und/aber kompetenten Consulting namens IMG. Ich arbeite da gerne. Die Organisation, das Management und die Kollegen haben eine langjährige Erfahrung in der erfolgreichen Umsetzung von IT Projekten. Unsere besondere Stärke besteht in der wirklich Mehrwert stiftenden Integration von neueren Technologien wie z.B. Java, J2EE, XML und Webservices in bestehende Systemlandschaften, insbesondere aber nicht nur im Zusammenspiel mit Lotus Notes.
Nun kann ich da natürlich nicht irgendwelche mühsam während der Arbeitszeit erarbeiteten code so mal einfach ins Internet stellen. Deshalb soll es hier um Themen gehen, die nicht strategische Bestandteile unserer Projekte und Produkte sind (Eclipse plug-ins, J2EE unterstützte Workflow Systeme, pragmatisches J2EE auf Basis von open Source und/oder IBM-Produkten sowie der Ausbau von bestehenden, erfolgreichen Produkten meist auf Domino Basis).
Eine Art serverlose verteilte Anwendung, die den Thread eines Internetforums als Art Datenbank verwendet, gehört sicherlich nicht zu den Dingen, die wir kommerziell ausschlachten wollen, bzw. die Geschäftsführung wäre vermutlich an einem Vertriebler interessiert, der das kann.
Das ist nicht mit der Geschäftsführung abgesprochen ausser der Aussage, dass ich während der Freizeit machen kann was ich will (ausser natürlich kriminelle Sachen :-[ ).
Als GUI wird Swing verwendet. Als Datenbank bekommt jeder Mitspieler sein eigenes RDBMS in Form einer HSQLDB (oder wie das heisst, sehr neu für mich). Für die xml-Verarbeitung JDOM, ein paar packages aus jakarta-commons für Kleinkram sowie Hibernate für Objekt-Relationales Mapping.
Lediglich Hibernate wird von IMG als strategische Komponente angesehen. Ich war an den Projekten, wo das eingesetzt wurde, nicht beteiligt und setze es nur muy básico ein. Wer von Java programmiert und von Hibernate nix gehört hat, sollte die Tomaten aus den Ohren holen. ::)
Disclaimer2:
Das folgende ist aus gewissen Auseinandersetzungen von mir mit ein paar openSource Projekten entstanden. Es ist nix großes und wichtiges. Einfach so ein bischen einarbeiten in das Zeug und dann sah ich eine Möglichkeit, dass zu einem Spiel zusammenzufügen. Das sind eben so Freizeit-Aktivitäten.
Dies ist nicht auf Basis eines bei IMG und mir in realen Kundenprojekten üblichen vernünftigen Projekt-Management gewachsen sondern mehr so wildwuchernd. Setz mich eben mit neuen Technologien auseinander. Bei diesem explorativ-spielerischen Umgang, weiss ich nicht unbedingt, wo ich am nächsten Tag lande. Die dort angeeignete Sicherheit mit den Dingen kann ich dann für reale Projekte als Ressource abrufen.
Übrigens habe ich va. während der Phase der dot-com bubble schon Projekte mit einem schlechteren Projektmanagement als diesem hier gesehen.
Disclaimer3:
Weiss nicht, ob wir für die Europameisterschaft fertig werden. Auf mich wartet eine anstrengende Arbeitswoche. Ich mache das während meiner Freizeit und ich schulde meinen Kollegen und Kunden ein optimales Maß an Aufgewecktheit während der Arbeitszeit. Wenn wir nicht fertig werden, schlage ich vor, dies für das olympische Fußballtunier zu nutzen. ;D
Disclaimer4:
Dies ist hier auch als Entgegnung zu verstehen zu den vielen Missverständnissen bezüglich Java, denen ich gerade in Domino-Kreisen immer wieder glaube zu begegnen.
Das ganze gipfelt dann irgendwie im Todschlag-Argument: „Das mit der Plattformunabhängigkeit funktioniert nicht“. Dies wird gerne v.a. von wirklich kompetenten Domino Programmierern vorgebracht. Da könnte ich die Wände hochgehen.
@Brothers: Oracle setzt auf Java, IBM setzt auf Java, Sun setzt auf Java, SAP setzt auf Java, viele ungenannte setzten auf Java und Microsoft hat in .NET auch eine Virtual Maschine, die (s. Mono) auch teilweise für Linux umgesetzt ist.
C# ist so was von einem Java clone, dass ich sogar beim lustige Klassennamen- und Methodenraten mit der automatic code completion von MS.Visual Studio ziemlich gute Trefferquoten erziele.
Da hab ich doch glatt so einen bösartigen Kommentar : Wenn das alles so unausgereift und einfach falsch ist. Fangt heute an, mit Hilfe des Einsatzes von altbewährter Technologie zum Bill Gates des 21. Jahrhunderts zu werden. Laßt die Looser wie IBM, Microsoft, Oracle, SAP, etc. ihr Geld für etwas verbrennen, das nicht funktioniert.
Disclaimer5:
Ich bin kein Java Teacher. Es gibt Leute, die haben Java gelernt und sich didaktische Kompetenz erworben. Diese Leute kosten Geld. Ich habe keinen Ehrgeiz diesen Markt kaputt zu machen. Ein guter Java Teacher gibt euch eine strukturierte Einführung. Hier ist ernsthafte Mitarbeit erforderlich. Ich beantworte gerne Fragen. Ich werde höflicher sein, als ich das teilweise in der Vergangenheit war. Der real existierende Widerspruch zwischen „gerne über Java zu reden“ und „keine Freizeit-Energie darin zu stecken, als didaktisch wertvoller Lehrer zu agieren“ hat mich dazu bewogen, nicht mehr Moderator dieses Forums zu sein.
Wir entwickeln hier kein für kommerzielle Zwecke einsetzbares out-of-the-box-freeware-tool. Dies ist ein unkommerzielles open Source Projekt Yust-For-Fun.
Jeder ist herzlich eingeladen:
- meinen code zu kritisieren (er ist weeiiiit davon entfernt perfekt zu sein)
- etwas beizutragen (sehr gerne)
- Projekt-Management bashing zu betreiben
- Fragen zu stellen (müssen keine „Guru(was immer das ist)-Fragen“ sein. Ich kann hier übringens mal eine Liste von Threads posten, wo ich auf Javaranch nicht so tolle Beiträge geliefert habe und teilweise die Reaktionen. Dabei ist Javaranch ein freundliches Forum. @Brothers: Life is not fair. Der Kapitalismus ist wie ein alter Hering: Er glänzt, aber er stinkt.
in diesem Sinne
Axel
animate:
her damit jetzt endlich :D
TMC:
genau, dann mal los, Axel. ;)
Hernan Cortez:
Bevor ihr vor der Code Lawine erschlagen werdet, hier erstmal ein Screen Shot und dann ein paar UML Diagramme mit Erläuterungen.
Mit dem code müsst ihr dann noch eine Menge open Source packages runterladen, die ich benutze. Das geht aber problemlos. Ich poste einfach die ganzen URLs.
Also erstmal Screenshot:
Hm. Fehlt was. Egal. Man sollte nicht mit Disketten arbeiten. Reicht aber erstmal. Also ihr seht da oben die Tabs Spielplan und Einstellungen. Fehlt noch der Tab Highscoreliste. Zur Zeit kann man da Ergebnisse eingeben und er rechnet dann die Tabellen inklusive Positionen der Teams aus*, sobald der Anwender auf Speichern drückt.
Der Spielplan wird aus einer xml-Datei gelesen. Dafür habe ich ein eigenes XML-Binding (?) framework geschrieben. xLooser 0.2. Das muss da unbedingt raus, weil es Mist ist. Der Spielplan als xml ist ok. Er soll aber in die Relationale Datenbank geschrieben werden.
Der User gibt also die Spiele ein und kann Zwischenspeichern (Persistierung muss noch realisiert werden, mit Hibernate).
Vor dem ersten Spiel kann der User über irgendeinen Button aus seinen in der Datenbank zwischengespeicherten Tipp-Daten eine XML-Datei erzeugen, die er an einen bestimmten Thread in Atnotes attached. Dabei ffolgt der Name der xml-Datei einer bestimmten Konvention (Spielername.xml.txt oder so.
Ich weiss nicht, inwieweit man das posten der xml Datei vollständig automatisieren kann. Man muss sich ja per Cookie authentifizieren. Das müsste aber gehen. Für diese HTTP-Geschichten werde ich apache jakarta HTTP-Client verwenden (sehr cool).
OK. Die Tipps der Mitspieler sind jetzt also als xml-Dateien an den Thread in Atnotes attached. Für LAN-User können wir alternativ anbieten, dass die Dateien in einem gemappten Laufwerk gespeichert werden. Alles eine Frage der konkreten Adapter.
Per Apache-HTTP-Client wird nun aus der Anwendung der besagte Thread geparsed. Will das mit Regular Expression machen. Sollte möglich sein.
Gesucht wird nach xml Dateien. Von allen neuen xml Dateien wird die URL dieses attachement eingesammelt und per http-Client runtergeladen in ein Verzeichnis innerhalb des Programms.
Die xml Daten der Tipps werden in die Datenbank geschrieben.
Nun beginnt die Vorrunde. Datumsgesteuert werden nun die Ergebnisfelder (s. Screenshot) zu Eingabefeldern, die Tipps sind nicht mehr bearbeitbar (schon da). Der User gibt dann die Ergebnisse ein (oder ich finde noch einen Webservice). Das Programm errechnet automatisch die Punkte, die die Mitspieler mit ihren Tipps gewinnen.
So geht das immer weiter bis die Vorrunde zu Ende ist.
Das Programm errechnet aus den Ergebnissen der Vorrunde automatisch
die Spielpaarungen des Viertelfinales.
Nun beginnt der Zyklus von neuen. Die User geben Tipps ein, posten diese automatisiert oder halbautomatisiert als vom Programm erzeugten xml ins Forum. Die werden dann von den Clients der Mitspieler automatisch eingesammelt. Die wirklichen Ergebnisse werden eingegeben. Das Programm vergibt für die Tipps Punkte. Das Halbfinale wird ermittelt. usw.
Ich würde sagen technologisch 100% machbar.
Später mehr zu dem was da ist und was noch zu tun ist.
gruss Axel
* Wie ich jetzt aus dem Kicker-Sonderheft erfahren habe, nicht ganz korrekt. Aber das kommt noch.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln