Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Applets oder Anwendung

(1/4) > >>

Axel_Janssen:
Hi,

folgende Fragen und Feststellungen:
- Ich kann in Applets in Notes-Corba Klassen einbauen und so auf Domino Objekte auf dem Server zugreifen.
Mit Applets gibt es keine Corba-Abkürzungen über die Klassen des lokalen Clients, oder??? (Ralf, bitte nicht böse sein, wenn du das schon gesagt hast, mir ist durch dich einiges klar geworden)


Ich müsste in einem semi-kommerziellen Projekt
- auf eine Notes-Collection zugreifen (gut die collection selbst hole ich mir im init() und cache die dann in einer class-property) und dann ein getAllDocumentsByKey() auf die Collection.  
- da dann über so ca. 2-7 Dokumente (denke ich) iterieren
- pro Dokument 4 Feldwerte auslesen (letzteres kann ich zur Not auch zu einem remote-call zusammenfassen und dann mit Trennzeichen und String).
- Das ganze nicht 1x in init(), sondern mehrmals (wenn der User eine andere KW in der Combo-Box verändert).
(macht etwa 10 remote calls).

Weiss ich sicher von EJB, was so ähnlich wie Corba ist:
Remote-calls sollten natürlich immer minimiert werden, weil Methoden Parameter, Rückgabewerte nicht einfach mit den Standard-Java-Methode (by copy-of-reference, by copy) übertragen werden, sondern serialisiert, über die Leitung geschickt und deresialisiert werden müssen (hört mir noch einer zu?)


---> In der grossen Not kann ich natürlich jede Information verdichten/aggregieren indem ich einfach in zeitgesteuerten Agenten Zwischendokumente erzeuge (hört mir einer zu?). Also die ganzen Informationen aller MAs aus KW 27 in ein Dokument schreiben und dann mit Trennzeichen sowie das dann in Java wieder auslesen.
Das wären dann 2 remote calls (bei in init initialisierter View).
View.getDocumentByKey() und Doc.getItemValueString().  

Wir wissen, dass ich über eine Java-Anwendung, die aus Notes heraus gestartet werden kann, über die lokalen Klassen gehen kann, was schneller ist.
Wenn ich nun diese lokalen Klassen automatisiert mit JavaWeb-Start verteilen kann. Was gibt es dann überhaupt noch für Nachteile gegenüber Applets?
[http://www-106.ibm.com/developerworks/java/library/os-jws/?open&ca=dgr-jw17os-jwsLink auf gut wirkenden Artikel zu Webstart

Oder was habe ich für Nachteile, wenn ich eine Swing-Gui über einen Java-Agenten erstelle? (wir reden über 6).

Zumindest hat man Alternativen.

Gruss Axel

ausserdem ist alles immer besser dokumentiert und alle schreiben tutorials und viel besser als ich.
http://www.javablogs.com versetzt mich momentan in einen Zustand der Euphorie.

Axel_Janssen:
Ha!!!
Für genau diese Aufgabenstellung habe ich mir jetzt doch eine vermutlich lauffähige Design-Strategie mit eingebetteten, single-categorized, treat-content-as-html views Zwischendokumenten, Javascript und Notes-Agenten überlegt.
Das nehme ich natürlich, weil das nahtloser zu integrieren ist.

Trotzdem swing ist schon interessant.
Aber ich geniesse es mit Vorsicht.

Ralf_M_Petter:
Hallo Axel!

Soll das Applet im Notes Client laufen, oder in einem Webbrowser. Wenn es im Notes Client lauft, oder auch im Browser auf Rechnern wo Domino Designer installiert ist, funktioniert auch der lokale Zugriff. Ich verwende das so ähnlich in unserem CMS und es funktioniert wunderbar. Auch die Performance ist sehr gut. Ich bilde dabei kategorisierte Ansichten mit einem JTree (Swing) nach. Der Jtree hat wenn er ganz aufgeklappt ist ca. 2000 Nodes. Die Antwortzeiten mit dem 5er Client bei eingeschalteten JIT sind ca. 0,5 Sekunden. Also soweit ich das deinen Angaben entnehmen kann, dürfte Geschwindigkeit kein Problem sein.

Axel_Janssen:
Ich entwickele das Applet weiter.
Gute Literatur hilft ungemein das man die echt komplexe Swing-API richtig beherrscht(Manning Swing 2nd ed. sowie "Graphic Java 2 von Geary", 3rd ed.).
Ich meine hier Dinge wie: Wie bringe ich das häßliche grau im Hintergrund der JTable, die in einer JScrollPane liegt. Geht so:

--- Code: ---scrollPaneTable.getViewport().setBackground(table.getBackground());

--- Ende Code ---
Aber wie soll man darauf kommen  ???

Netbeans3.5 ist völlig in Ordnung.
Vermisse folgendes dringend:
- In Eclipse kann ich automatisch getter- und setter-Methoden generieren. Hier muß ich tippen.
- Refactoring Unterstützung fehlt. Umbenennung von Variablen in einem Projekt geht in Eclipse z.B. besser.
- Oft muß ich auf "Compile Project" drücken, damit Änderungen in Helferklassen bei Test da sind. Nervt ein bißchen.
- Eclipse hat auch einfach viele interessante Zusatz-plugins. Nur eben keinen graphichen GUI-Editor, der es mit Netbeans aufnehmen kann.

Mein LayoutManagement ist noch nicht so wie ich will. Irgendwie ende ich immer damit, daß ich GridBagLayout benutzen will. ::)

Ich sehe ein, daß eine Komponente wie JTable komplex sein muß. Mußte aber gestern nacht erst einmal vor AbstractTableModel kapitulieren und habe DefaultTableModel benutzt. Weiß aber jetzt wie es geht.  Hoffentlich.  :)

Auslagern von bestimmter Funktionalität in helper-Klassen ermöglicht die einfache Einbindung in Notes-Agenten, Notes-Applets und eigentlich allen beliebigen Java-Progs.

Nun muß ich das in Notes einbinden. Denke da über best-practices nach.
- Eine eigene Klasse ist für die Responsabiltiy "mit Notes kommunizieren ist klar". Objekt einfach als 1-1 unidirektionale Association GuiClass has-a NotesClass.  
- werde sicher invokeLater() und invokeAndWait() benutzen. Das gehört wohl in die GUI-Klasse. Hat schon jemand damit gearbeitet?
- Ich zeige Daten aus Domino-Dokumenten in einer JTable an. Wie reagiere ich darauf, wenn sich etwas in den Daten in Notes ändert. Geht da eventuell ein über weite Zeiträume schlafen-gelegter Thread, der sagen wir alle 2 Minuten Notes abfragt? Das wäre nett. Hat jemand Erfahrungen damit?

Axel_Janssen:
JTable.
Bisher gehts, aber es sind schon eine Menge Objekte, die da mitspielen:
JTable, AbstractTableModel, JTableHeader, TableColumn.

Mit der entsprechenden Literatur gehts.
Bei TableColumns kann nicht einfach so der Header gesetzt werden. ... erst einmal remove und dann wieder add.
Hat wohl was damit zu tun, dass die Columns standardmässig in der Tabelle per drag-and-drop umsortiert werden können.
Mit DefaultTableModel wäre es einfacher, ich brauche aber vermutlich später mehr Flexibilität, als diese Klasse erlaubt.

Bisher gehts. Wenn jetzt der Datenaustausch mit Notes in einer einigermassen akzeptablen Geschwindigkeit vonstatten geht, sind JApplets in Notes für mich absolut einsetzbar.  

Die Buttons und Select-Boxen sind soweit funktional. Der Header der Table passt sich an das entsprechende Datum an.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln