Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: JulianBuss am 15.04.04 - 23:00:03
-
wer schon jemals objektorientiert in LotusScript entwickelt hat weiß, wie doof das im Designer gelöst ist: sämtlicher Code wird einfach in den Deklarations-Teil des Script-Objekts gehackt.
Wenn man dann mal Java mit einer so unglaublich geilen IDE wie Eclipse entwickelt hat fragt sich unwillkürlich: gibt es nichts halbwegs ähnliches für LotusScript?
Oder formulieren wir mal um: wir entwickeln extrem viel objektorientiert in LotusScript, und das Chaos bricht nur deswegen nicht aus, weil wir alles brav in einzele Bibliotheken aufteilen und mit visuell gut zu bemerkenen Kommentaren arbeiten, so dass man beim überfliegen des Codes schnell zu einer bestimmten Methode gelangen kann.
Es ist trotzdem ein Unding, dass der Designer da keine Unterstützung für anbieten; normale Subs und Funktionen werden im Navi-Fenster extra aufgeführt, so dass man bequem direkt springen kann. Für Klassen gilt das nicht :-(
Ich habe jetzt schon merfach das Netz abgegoogelt und es ist wirklich nichts in der Richtung zu finden. Das kann ich gar nicht glauben! Die IBM selbst baut doch auch viel objektorientiertes Script, wie machen die das denn selbst?
Im Grunde wäre es ja schon eine Hilfe, den Code mittels eines externen Editors in Dateien zu speichern und dann via %INCLUDE einzubinden - das geht nur nicht, weil Compile-Fehler dann nicht mit der Zeile des Fehlers im Script, sondern mit der Zeile des %INCLUDE-Statements gemeldet werden... Fehlersuche wird also zur Glückssache.
Also Frage: entwickelt jemand LotusScript mittels externem Editor? Entwickelt jemand objektorientiertes Script mit was anderem als den Designer?
-
Jo, das ist leider so :(
Hier eine Möglichkeit:
http://www.ultraedit.com
Dabei passe man die Einstellungen von VB so an, dass man es für LS verwenden kann. Etwas besseres scheint es nicht zu geben. Scheint, dass es für vim eine tag-library für LotusScript gibt, habe aber leider keinen Link dazu.
-
das finde ich gradezu unglaublich, ob alle Entwickler bei IBM wirklich ihr Script im Designer entwickeln?!?
-
selbes Problem hier.
hat jemand Lust, mit mir ein Eclipse Plug-in zu entwickeln?
-
würd ich machen, was nur vorher zu klären ist wäre: wenn ich ein Script-File per Include einbinde, und im File ist ein Script-Fehler, meldet der Designer mit dann die Zeile des Fehlers im File, oder die Zeile des %INCLUDE ?
Bei letzterem wären alle Versuche, Script extern zu editieren, sinnlos.
Ich hatte das mit Domino 6 mal getestet, Ergebnis negativ. Ich teste das gleich nochmal mit 6.5.
-
Ergebnis: negativ.
Beispiel zum nachvollziehen: unter c:\temp\test.lss eine Textdatei mit diesem Inhalt erstellen:
---
prin "test"
---
-> proviziert einen Compile-Fehler.
Im Designer Agent erstellen, in Initializie Zeile 2 schreiben:
---
%INCLUDE "c:\temp\test.lss"
---
und speichern.
Meldung im Designer: Initialize: 2: Not a sub or function name: PRIN
-> Wertlos, es wird die Zeiile des Include gemeldet, nicht die des falschen Print-Statements in der Datei.
Somit können wir das alles vergessen :-(((((((((((
-
und das obwohl in der Designer-Hilfe was anderes steht:
---
If a compile-time error occurs in a statement in an included file, the file name and the line number within that included file are reported with the error.
---
Strange, eh?
-
also ich kenne es auch nur aus R5 so, dass die Zeile des Include-Statements bei einem Fehler zurückgegeben wird.
Ich hab selber nicht in Notes 6 probiert.
Ein theoretischer Workaround:
das Script aus einem externen Editor via XML in die DB zu bringen (und auf dem gleichen Weg aus der DB in den Editor) und ohne %Include zu arbeiten.
Das ist natürlich nix, wenn du mit Hilfe der %Includes deinen Code verstecken möchtest.
-
Hallo zusammen,
das mit dem Plugin für Eclipe hört sich gut an. Ich habe auch schon mal gesucht ob es sowas gibt, leider nicht! Ich stehe auch vor dem Problem der OOP Programmierung und im Designer ist das wirklich nichts!
Leider hatte ich noch keine Zeit mich in Eclipse / Plug-ins einzuarbeiten, gibt es dafür Beschreibungen im Internet ???
-
ich denke das mit Eclipse ist hinzukriegen, dazu gibts gute Bücher.
Die Frage ist nur die Integration in den Designer.
Klar, per XML kann man das bestimmt da reinschieben - sogar direkt von Eclipse aus mittels Notes-Java-Klassen.
Aber wie compiliert man das? Das muss ja der Designer machen; einen externen LS-Compiler wird es nicht geben.
Also müsste man den Code via XML in eine LS-Bibliothek schieben, dann diese Bib via Designer öffnen, compilieren und speichern.
Kommt man per XML einfach an die Notes-Dokumente ran, die Script-Bibliotheken repräsentieren?
Das Eclipse-Plugin selbst müsste im ersten Schritt ja nicht viel machen:
- Syntax-Highlighting
- Extraktion der Methoden/Eigenschaften für einfache Navigation
- Speichern -> via XML in Notes-DB schieben
Zu prüfendes Grundproblem wäre also erstmal, ob man LS-Code via XML in eine LS-Bibliothek schieben, dann im Designer öffnen und compilieren kann.
-
eigentlich ist der ganze XML-Kram natürlich total krank und nur nötig, weil der Designer sich nicht so verhält wie dokumentiert.
D.h. eigentlich ist das ein echter Bug im Designer, oder?
Kann den nicht jemand mit Support-Login bei IBM melden? Aber wie ich IBM kenne änderen Sie dann die Doku und nennen das "Bugfix" :-)))
-
ich denke auch, dass wir bei dem Support nicht weiterkommen. Ich könnte einen Fall aufmachen, aber das hat wohl kein Sinn.
Kann jemand ein Buch zu Ecplise empfehlen, ich hatte mal eins in der Hand war aber nicht so gut ?!?!
-
mach dochmal spasseshalber einern Fall auf, mich würde IBMs Antwort schon interessieren.
Mit meinem obigen Beispiel kann man das ja klar reproduzieren.
Ich denke das Buch hier http://www.amazon.de/exec/obidos/ASIN/3827321379/qid=1082114432/sr=2-2/ref=sr_2_0_2/028-7521574-8445329 ist ganz gut, habe es aber noch nicht gelesen.
-
wenn ich gleich noch Zeit habe stelle ich ein kleines Beispiel zusammen (will der Support ja immer haben) und mache einen Fall auf.
Mal sehen ob ich den Eintrag in der Hilfe auch finde ....
Heute bekomme ich bestimmt noch keine Antwort, Montag bin ich nicht im Büro.... aber ich melde mich falls der Support mir etwas mitteilt!
-
Eintrag in der Hilfe findest Du unter Domino Designer Hilfe -> LotusScript Language Reference -> %INCLUDE
-
Support Call ist aufgegeben, mal abwarten ::)
-
... und schon die erste Rückmeldung vom Support ...
Problem erkannt, will es selber nochmal ausprobieren und dann eskalieren. Seiner Meinung nach schreibt man den Code im Designer und exportiert dann in eine Datei um den Code zu schützen. Ist ja auch was wares dran, aber nicht ganz unser Einsatzgebiet!
Gruss und schönes Wochenende!
-
Etwas OffTopic (weil nix mit OO zu tun):
Lange Scripts bearbeite ich mit Phase5 (http://www.qhaut.de/), dazu habe ich folgendes Syntaxschema erstellt (ursprünglich für Proton):
http://217.160.137.156/user/bp/tmc/_threaduploads/phase5_syntax/lotusscript.sch
Dabei arbeite ich allerdings umständlich per Copy+Paste (Designer <-> Phase5).
Matthias
-
Frage: wenn ihr eine Klasse per include einbindet und dann den restliche code in die events programmiert; wo tauchen dann die Fehler auf ?? In den verwendeten Klassen ??Dann ist das error handling der Klassen nicht i.O ...
Ulrich
-
Ulrich, Klassen haben keine Events, Events gehören in ein anderes Modell (das allerdings sehr gut zum OO-Modell passt).
Das mit dem Auftauchen der Errors ist ein anderes, generelles (Basic / LS)-Problem. Sobald Du Code mittels Include einschliesst, wird bei einem Fehler, der im Include-Teil auftritt, immer die Zeilennummer des Include-Statements ausgegeben und nicht die Zeilennummer innerhalb des eingeschlossenen Pfeils.
Das ist vergleichbar wie bei jedem Compiler, wenn Du Obj-Code ohne Debug-Info in eine Applikation einbindest und einen Runtime-Error im Obj-Code auftritt, wird Dir der Compiler nur sagen können, dass es im inkludierten Object-Code aufgetrteten ist, aber nicht genau wo. Etwa so verhält sich hier Basic/LS-Script mit einem %Include. Gäbe er uns die Zeilennummer innerhalb des inkludierten Pfeils, könnte man mit einem sog. "Kludge" ganz gut mit einem externen Editor arbeiten. So bleibt eigentlich nur die Methode, die Matthias weiter oben beschrieben hat, nämlich mit Cut und Pastete zu arbeiten.
-
stimmt, mit etwas "Sachverstand" ;D hätte ich selber drauf kommen können
-
No problem, that happens, gute Gelegenheit, wieder mal zu sagen, dass OO und Events nicht wirklich miteinander was zu tun haben, sondern nur sehr gerne miteinander gehen ......... ;)
-
Es ist in meinen Augen nur wirklich seltsam, dass IBM einerseits mit Recht OO-Programmierung in LotusScript propagandiert, andererseits effiziennte Entwicklung damit quasi unmöglich macht.
Auch die Entwickler bei Lotus müssen doch WAHNSINNIG werden...
-
Das stimmt. Allerdings, wo hast Du IBM gesehen OOP in LS zu propagieren? Es scheint schon so, dass da was gelaufen ist, aber in meinen Augen viel zu wenig, und die Leute, die ich von Lotus-Education kenne, bestätigen mir das eigentlich, dass da zu wenig läuft.
-
naja, es gibt einen sehr ausführlichen Iris Today Artikel, der vor realtiv kurzer Zeit erschienen ist, und Lotus selbst programmiert ja auch fast nur noch OO-Script. Z.B. im Mailfile.
Was ja auch nur logisch ist, anders bekommt man die Komplexität ja kaum in den Griff.
Mein Traum wäre ja ein "Eclipse for LotusScript", das genauso komfortabel ist wie das heutige Eclipse für Java :-)
Aber das ist natürlich Utopie, alternativ könnte ich mich auch damit anfreunden, Java für alle UI-Aktionen verwenden zu können... aber auch das ist wohl Utopie :-)
-
Hast Du einen Link auf den Artikel?
Zu sagen ist, dass in Iris Today ja alles mögliche erscheint und es sich dabei nicht um ein Marketing- und Kommunikationsmittel der IBM handelt. Und dass die Leute selber seit längerer Zeit diese OO-Mittel nutzen (mit unterschiedlich hohem Grad, die Backform (Mehlschablone) ist wohl das am besten ausgearbeitete Beispiel, fällt auf, wird aber nirgends an die grosse Glocke gehängt. Ehrlich gesagt, ich halte das auch für seltsam.
Bin sicher, wenn es echte Plugins für den Designer gäbe, hätten wir bestimmt schon länger ein entsprechendes Produkt zur Verfügung. Leider ist im Bereich LotusScript in nächster Zeit nicht mehr viel an Erneuerung zu erwarten, man wird sich also wohl langsam auf Java einstellen müssen, auch wenn das im Moment noch nicht wirklich eine Alternative ist (fehlendes Debugging, gut, das wird in ND7 ja besser)
-
Das ist zwar Java, aber mit Notes Objekten. Interessant find ich, wobei es Axel Janssen seine Privatmeinung nicht überzeugt:
http://www-10.lotus.com/ldd/today.nsf/8a6d147cf55a7fd385256658007aacf1/9d8840926d90e20b85256d90004d1edd?OpenDocument
Warum gibt es kein Eclipse plug-in für Notes Entwicklung?
<disclaimer text="Das folgende ist weder Domino bashing, noch Provokation eines eZynikers, sondern ein ernstgemeinter Diskussionsbeitrag."/>
Da gibt es meiner Meinung nach vermutlich schon Gründe, warum das für IBM (oder IRIS) nicht so einfach ist.
Ich bin kein Lotus-System-Entwickler, aber 2 Dinge bringen mich in diese Richtung:
1. Einige Texte in Ben Langhinrichs blog. Der ist nämlich eine Art Lotus-System-Entwickler. Seine Texte über Rich Text und so.
2. Auf meiner Arbeit gibt es ein Projekt, wo Notes-Anwendungen in J2EE konvertiert werden. Ich mache zwar andere Sachen, bin da aber schon teilweise involviert.
Domino ist ein über eine lange Zeit auf dem Markt erfolgreiches Produkt. Es wurde immer stark auf Abwärtskompatibilität geachtet. Das führt dazu, dass jemand der sich vor der Aufgabe gestellt sieht, dort einen "IDE-Layer" für zu bauen, sich nicht trivialen Problemen gegenübergestellt sieht. Der Teufel steckt eben im Detail und bei Lotus Notes hatte der Teufel eine Menge Zeit. Teufel verstehe ich hier mehr so Ying und Yang mässig. Also: mehr Funktionalität (Engel) , mehr interne Komplexität (Teufel).
Gruß Axel
-
Das ist seeeehr seeeeehr wahr, Axel, das Problem, das da die Rückwärtskompatibilität präsentiert, kann nicht genug unterschätzt werden .... man denke da beispielsweise, wie "gut" das bei Word aussieht.
-
ich persönlich hätte überhaupt nichts dagegen, LotusScript gegen Java zu tauschen. Ich mag Java; damit entwickelt man grundsätzlich saubereren und sichereren Code als mit LotusScript.
Aber man hat in Java halt keine UI-Klassen, und das wird sich wohl auch nicht ändern. Also ist diese Diskussion akademisch .-)
-
Kurzfristig sicher, längerfristig weiss ich nicht. Da werden wir wohl "Rich Client" denken müssen und da sieht die Sache dann plötzlich anders aus. Man halte jedenfalls die Augen offen.
-
ich persönlich hätte überhaupt nichts dagegen, LotusScript gegen Java zu tauschen. Ich mag Java; damit entwickelt man grundsätzlich saubereren und sichereren Code als mit LotusScript.
Aber man hat in Java halt keine UI-Klassen, und das wird sich wohl auch nicht ändern. Also ist diese Diskussion akademisch .-)
Wenn du etwas praktisches machen willst, kannst du ja ein openSoucre Eclipse plugin entwickeln.
Vielleicht findest du Mitstreiter. :)
-
ich persönlich hätte überhaupt nichts dagegen, LotusScript gegen Java zu tauschen. Ich mag Java; damit entwickelt man grundsätzlich saubereren und sichereren Code als mit LotusScript.
Aber man hat in Java halt keine UI-Klassen, und das wird sich wohl auch nicht ändern. Also ist diese Diskussion akademisch .-)
Wenn du etwas praktisches machen willst, kannst du ja ein openSoucre Eclipse plugin entwickeln.
Vielleicht findest du Mitstreiter. :)
Hola Hernan,
darüber haben wir etwas weiter oben schonmal geschrieben. Das Problem ist, was machst du mit dem Zeug, das du im Editor schreibst? Wie kompilierst du?
Immer per Copy & Paste hin&herkopieren? Das wird wahrscheinlich noch unübersichtlicher, als es jetzt mit dem integrierten Editor ist.
In externe Dateien speichern und mit %Include einbinden -> kein vernünftiges Debuggen möglich.
Evtl. mit XML? Keine Ahnung, ob das geht. Theoretisch schon, denke ich.
Nichtsdestotrotz würde ich sofort an sowas mitarbeiten.
-
Hi Thomas,
das habe ich auch gelesen und das stimmt sicher.
Das einbinden des codes über xml geht vielleicht noch, aber dann das Kompilieren selbst ???
Keine Ahnung. Das müsste man dann wohl in Notes machen.
Den Notes Designer von aussen steuern. Sicher nicht einfach.
Zumindest könnte man aber drop down Listen für Notes Objekte etc. zur Verfügung stellen.
Das hat man aber im Declaration Block von Notes Gestaltungselementen im Notes Designer auch, oder ?
Das wäre dann ein Spielprojekt für Eclipse plugin Entwicklung. Dazu hätte ich keine Lust.
Ciao Hernán
-
Da würde ich mich auch einklinken, wenn es um die Auslagerung der Entwicklung von LS geht.
Wäre eine feine Sache. Wie oben schon erwähnt nutze ich heute schon Proton/Phase zur Bearbeitung längerer Codes. Nur das Copy&Paste nervt da sehr. Auch ist kein Syntaxprüfer und Debugger vorhanden.
Puh, ohne jetzt Eclipse zu kennen stell ich mir die Umsetzung schon verdammt umfangreich vor.
-
Hm,
also Notes 8 basiert auf Eclipse, ergo gibt es auch einen Designer basierend auf Eclipse und somit vielleicht dann auch LotusScript Support.
Notes 7 soll im Designer schon eine verbesserte OO Unterstützung aufweisen, gesehen habe ich die noch nicht aber auf der Lotusphere wurde darüber geredet.
Die Lotus Domino Abteilung coded intern zur Zeit noch meistens mit Microsoft Visual Studio (nein, kein Witz). Viel Template Coding ist angeblich outgesourced.
@Julian: Als Lotus Business Partner darf man eigentlich selber Calls aufmachen?
Schönes Wochenende.
Heini
-
Schreibt man sicher nicht in einer Woche.
Auf der anderen Seite - wenn sich ausreichend Interessierte (2 oder 3) finden.
Ich frag manchmal die Kollegen, die das xd-one plug-in schreiben, ob man das oder dies als Eclipse-plugin entwickeln könnte. Die sagen meist: kein Problem. Inwieweit das jetzt im Detail stimmt, kann ich nicht beurteilen. Hab bisher auch keine Zeit gefunden, weil ich - im Gegensatz zu meinem derzeitigen Image
>:( - die ganze Woche mit höchst praktischen Problemen zu tun habe.
Ich nähere mich der xd-one Geschichte, weil ich da jetzt bald jsp-taglibs code.
Man gewinnt vermutlich auch dadurch, dass man sich openSource plug-ins wie z.B. dieses deutsche php-plugin mal anschaut. Dessen Aufgabenstellung erscheint mir irgendwie ähnlich. Auch eine nicht-Java Sprache.
Gruß
-
also ich hätte doch Interesse da mitzumachen, wenn wir das vielleicht ein bischen weiter fassen würden:
- etwa verbunden mit einem repository an wiederverwendbaren Funktionen/Klassen/Whatever auf Eclipse Basis.
So weit ich weiss kann jeder auf sourceforge.net openSource Projekte einstellen. Sobald ich ein wenig klarer sehe (dauert bis zu 3 Wochen), kann ich hier wieder posten.
Gruß Axel
-
ich habe mich schon gewundert, dass du kein Interesse daran hattest.
cool.
dann zieh ich mir jetzt gleich mal die schönen Geschichten von Beck und Gamma rein um in 3 Wochen bei eclipse-Plugins mitreden zu können
*edit*
ich hab meinen ersten Button in eclipse "contributed". Naja, er tut noch nix, aber er sieht gut aus.
-
Man frage doch einfach die Betreffenden. Leider kenne ich niemanden im Template-Development, aber Thomas Gumz schreibt mir gerade folgendes:
Ich weiss nicht, was meine Template Kollegen verwenden (andere Baustelle), aber ich kann Dir sagen, dass ich den ganzen code in webadmin.ntf (ca. 25000 Zeilen Lotusscript, und ca. 250000 Javascript, beides zu 90% alles OO) alles direkt im Designer Client getippt habe. Glaubs mir oder nicht. Das gute daran war, dass wir den Code hinterher fast auswendig gekannt haben :-).
-
cool.
wir können ja die Dinge von hier wiederverwenden: http://www.atnotes.de/index.php?board=24;action=display;threadid=12702
Also wiederverwendbare Funktionen irgendwie aus Eclipse persistieren und dann im Editor wiederverwendbar zu machen.
Ich versuche gerade meine Bundesliga-Börsenspiel Struts/EJB2.0 Fragmente auf struts/spring/hibernate zu bringen und das dann eventuell zur EM als EM-Börsenspiel auf unserer Webseite zur Verfügung zu stellen (ist aber noch nix abgesprochen).
Melde mich aber auf jeden Fall in der nächsten Woche sobald ich bei dieser plug-in Sache klarer sehe.
Gruß Axel
-
Man frage doch einfach die Betreffenden. Leider kenne ich niemanden im Template-Development, aber Thomas Gumz schreibt mir gerade folgendes:
Ich weiss nicht, was meine Template Kollegen verwenden (andere Baustelle), aber ich kann Dir sagen, dass ich den ganzen code in webadmin.ntf (ca. 25000 Zeilen Lotusscript, und ca. 250000 Javascript, beides zu 90% alles OO) alles direkt im Designer Client getippt habe. Glaubs mir oder nicht. Das gute daran war, dass wir den Code hinterher fast auswendig gekannt haben :-).
vielleicht gibts da so ne Art "Betriebsblindheit" bei den Notes-Entwicklern. Die Arbeiten schon so lange mit dem Designer, dass ihnen gar nicht auffällt, dass man vielleicht eine nicht unerhebliche Menge an Zeit sparen könnte, wenn ma einen gescheiten Editor hat.
Alleine die Existenz eines Methoden-Browsers (so eine Liste aller Methoden, wo ich per Mausklick zur entsprechenden Stelle im Code hüpfe) würde mir schon viel Zeit und Nerven sparen.
-
stimmt alles... aber alles steht und fällt damit, den Code von außen in den Designer zu bekommen und dort compilieren lassen zu können.
Bevor wir das nicht positiv geklärt haben, brauchen wir gar nicht erst anzufangen...
-
Also ich glaube fest, dass es bei sinnvollen gratis Entwicklertools in den letzten Jahren sehr positive Entwicklungen gegeben hat.
2001 gab es noch eine ganze Reihe an Leuten, die sagten sie würden mit vi entwickeln (und der hat ja für Eingeweihte massig Funktionalität). Aber die sind dann massenweise zu Eclipse oder InteliJ IDEA übergelaufen.
Ich glaub auch, dass der Erfolg von Microsoft zum Teil auf den guten Entwicklungstools beruht, wobei ich damit auch nicht so viel Erfahrung habe. Immer wenn ich Microsoft Visual Studio benutzt habe/benutze finde ich es ziemlich gut. Und die Eclipse/WSAD Entwickler nannten MS-VS explizit als Vorbild.
Gruß Axel
-
stimmt alles... aber alles steht und fällt damit, den Code von außen in den Designer zu bekommen und dort compilieren lassen zu können.
Bevor wir das nicht positiv geklärt haben, brauchen wir gar nicht erst anzufangen...
gemach. gemach.
Brauchen wir nicht anzufangen, oder machst du nicht mit ???
Man kann den Designer nicht mit vertretbaren Aufwand von aussen steuern, glaub ich.
Man könnte aber Funktionen wie Klassen-Browsing, Funktions/Methoden/Klassen-Repository, etc. zur Verfügung stellen.
Der Transport in den NotesDesigner muss dann manuell gemacht werden. Kann höchstens noch mit kopieren in Zwischenablage über Button in IDE erleichtert werden.
Man kann ja Eclipse und Notes-Designer gleichzeitig offen haben.
-
ich muss Julian schon Recht geben. Wenn wir da irgendwas schönes basteln, das aber total unpraktisch ist, dann wäre das nicht schön.
Ich würde es wohl trotzdem machen, weils mich einfach interessiert, etwas mit eclipse zu arbeiten. Aber das eigentliche Problem löst du damit dann nicht.
-
ich mach sofort mit, wenn es meine tägliche Arbeit erleichtert. Wenn es aber ein akademisches Projekt ohne praktischen Nutzen ist, hätte ich da Lust zu, aber keine Zeit :-)
Wenn wir nichts anderes finden wäre der Weg über Copy & Paste theoretisch denkbar - vorausgesetzt es ist möglich, auf *einmal* alles Script einer Bibliothek zu markieren, löschen und das neue Script aus der Zwischenablage einzufügen.
Ich glaube das hakt daran, dass man immer nur einen Teil des Skripts im Designer markieren und löschen kann (Options, Declarations, Initalize etc), aber nicht alles auf einmal. Oder gibts da einen Trick?
Mal angenommen, der XML-Ansatz würde funktionieren, wie sähe dass dann aus?
- in Eclipse ein Script schreiben, diesem Script irgendwie als Eigenschaften mitgeben in welche DB (Server, Pfad) und welche Bibliothek (Name) es gehört.
- beim speichern in Elipse müssten zwei Dinge passieren: 1.) speichern in normaler Textdatei (um diese z.B. in ein CVS einpflegen zu können) und 2.) via XML in Script-Bibliothek in die Notes-DB schieben
- diese Bibliothek dann im Designer manuell öffnen und speichern, damit die Compilierung angestossen wird.
Wenn es übrigens bereits ein VisualBasic-Plugin gäbe, könnte man daraus vielleicht einen "Grundcompiler" ableiten. So dass zumindest einfache Syntax-Checks auch direkt in Eclipse erfolgen können.
Wir bleiben also bei den zwei Möglichkeiten:
1.) Lotus behebt den Bug, dass Comile-Fehler in Include-Dateien mit falscher Zeilennummer angezeigt werden.
2.) Speichern via XML in Notes-DB, dann manuelles Öffnen des Script-Objects im Designer um es zu compilieren.
Am einfachsten wäre natürlich 1.) :-)
Oder, was mir grade noch einfällt, wenn man zumindest einfache Syntax-Prüfung / Compile-Pürfungen direkt in Eclipse hätte, wäre der Include-Bug nicht so schlimm. Wenn man direkt in Eclipse die meisten Compile-Fehler gemeldet bekäme und direkt dort beheben könnte, käme der Include-Bug nur noch selten zum tragen.
Jedenfalls scheue ich ein wenig die 2. Alternativ, ist glaube ich nicht unerheblicher Aufand und - vor allem - größerer manueller Aufand, da man das Script-.Objekt dann im Designer öffnen, eine marginale Änderung vornehmen und speichern müsste, nur um die compilierung anzustossen.
Wenn man dann einen Fehler bemerkt müsste man den in Eclipse beheben und alles nochmal machen.
Bei der 1. Möglichkeit könnte man das Script-Objekt im Designer ständig geöffnet halten, kann in Eclipse speichern und braucht dann nur zum Designer zu wechseln und ebenfalls zu speichern.
-
die Idee mit dem "Grundcompiler" in Eclipse weiterverfolgt: was meint Ihr, ist es kompliziert eine Syntax- und teilweise Logik-Prüfung für LotusScript zu bauen?
Eigentlich müsste das doch alles auf ein paar relativ simplen Regeln basieren, oder?
So wie z.B.bei einem "Print": 'Print' ist ein bestimmtes Schlüsselwort mit der Eigenschaft, dass dahinter ein String kommen muss.
Oder wenn da steht
---
irgendwas(x,y,z)
---
dann heißt das, das "irgendwas" muss als Methode mit drei Parametern definiert sein., sonst stimmt da was nicht.
Oder das "irgendwas" muss ein Schlüsselwort sein.
Wir müssen ja keinen eigenen Compiler schreiben, wir müssen nur eine Syntax-Prüfung machen... kann das so schwer sein?
Jedenfalls könnten wir dann mit einfachen, normalen Dateien arbeiten was viele Vorteile hätte:
- simples %INCLUDE im Designer ist möglich
- Verwalten der Sourcen via CVS problemlos möglich
- Einbinden in alle Script-Objekte von Notes möglich (beim XML-Ansatz wäre man erstmal auf Bibliotheken und vielleicht noch Agenten beschränkt).
Meinungen?
-
1. Das Kopieren einer gesamten ScriptLib:
Man mache eine Synopse der Scriptlib und kopiere von dort
2. Das Entfernen aller Teile einer ScriptLib in 2 Schritten:
ScriptLib löschen und neu anlegen. Danach die überarbeitete neue Scriptlib mit Pastete wieder einfügen.
-
...und das mach mal bei jedem Compile-Fehler... X-mal pro Stunde... ich denke nicht dass das praxisnah ist.
-
ich hab mal gesucht, es scheint aber kein VisualBasic oder ähnliches Plugin für Eclipse zu geben - schade :-)
Ich hab mir aber mal dieses Buch http://www.amazon.de/exec/obidos/ASIN/3827321379/qid=1082281535/sr=2-2/ref=sr_2_0_2/302-4192585-0393621 bestellt, die Sache mit der Syntax-Prüfung innerhalb des Plugins müsste doch zu machen sein!
-
1. Das Kopieren einer gesamten ScriptLib:
Man mache eine Synopse der Scriptlib und kopiere von dort
2. Das Entfernen aller Teile einer ScriptLib in 2 Schritten:
ScriptLib löschen und neu anlegen. Danach die überarbeitete neue Scriptlib mit Pastete wieder einfügen.
also das geht einfacher über File->Import bzw. Export
oder mit zwei schönen Toolbar-Buttons
ist aber immer noch umständlich.
zum Anfang würde ich, wie Hernan "Axel" Crespo schon vorgeschlagen hat, mal ein ähnliches Plugin anschauen (z.B. php-Editor) und prüfen, was ich davon nehmen kann. Evtl muss ich dann gar nicht mehr soooo viel neues gemacht werden...
-
Hi,
ich mach sofort mit, wenn es meine tägliche Arbeit erleichtert. Wenn es aber ein akademisches Projekt ohne praktischen Nutzen ist, hätte ich da Lust zu, aber keine Zeit :-)
[edited] weil Thomas das eben gesagt hat.
hier ist eclipse plug-in:
http://www.phpeclipse.de/tiki-index.php?page=HomePage
Gruß Axel
-
oder auch auf sowas hier aufbauen: http://gstaff.org/colorEditor/
(habs nur grade gefunden, noch nicht ausprobiert)
-
...und das mach mal bei jedem Compile-Fehler... X-mal pro Stunde... ich denke nicht dass das praxisnah ist.
Deine Variante war noch wesentlich komplizierter.
-
Da man ja mittels der C-API Script kompilieren lassen kann (ich weiss allerdings nicht, wie nützlich das ist in Bezug auf Fehler-Handling), kann man sich Gedanken machen, einen Wrapper zu bauen, der die Script-Lib manipuliert.
-
ein paar sinnvolle Links:
Forum für Eclipse plugin Entwicklung in deutsch: http://www.jsurfer.de/modules.php?name=Forums&file=viewforum&f=2
swt-Tutorial von Aust: http://www.3plus4software.de/sma/Ein_SWT_Tutorial.html
[wird fortgeführt]
-
@Semeaphoros: C-API: gute Idee! Wie heißt denn der Aufruf?
In die Richtung kann man auf jeden Fall auch forschen; wenn die C-API bei einem Fehler die Art des Fehlers und Zeilennummer mitteilt, wäre viel gewonnen.
-
Scheint uns aber nicht die notwendigen Infos zurückzugeben :(
#include <nsfnote.h>
STATUS LNPUBLIC NSFNoteLSCompile(
DBHANDLE hDb,
NOTEHANDLE hNote,
DWORD dwFlags);
Description :
The API compiles all the LotusScript code found in a design document. This includes document classes such as Views, Agents, Forms, Pages, Navigators, Shared fields, script libraries, Help documents, using database documents, etc. It is a way of making sure that the object code of the script is up-to-date.
For the Agent note, the compiled object code is saved in the $AssistAction_Ex item.
Parameters :
Input :
hDb - Handle to the database.
hNote - Handle to the note containing LotusScript modules.
dwFlags - (Reserved for future use) Must be 0.
Output :
(routine) - (routine) - Return indicates either success or what the error is. The return codes include:
NOERROR - Operation was successful.
ERR_NULL_NOTEHANDLE - if hNote was not specified.
ERR_xxx - STATUS returned from a lower level Notes function call.
Sample Usage :
...
/* Compile the Agent note */
if (error=NSFNoteLSCompile(hDb,hAgent,0))
{
printf("Error: LS Compile\n");
goto Exit1;
}
/* Update the note */
if (error=NSFNoteUpdate(hAgent,0))
{
printf("Error: can't update note after LS Compile\n");
goto Exit1;
}
-
ja, wird auch hier bestätigt:
http://www.looseleaf.net/Looseleaf/Forum.nsf/0/b26afc497efb086b85256cad004e0caf?OpenDocument
-
Und wenn Bob das sagt, ist es unwahrscheinlich, dass es anders ist :(
-
jau, somit is m.E. nach die Entwicklung eines Syntax-Checkers direkt in Eclipse ein guter Ansatz, so dass man das Script selbst per %INCLUDE einbinden kann und trotzdem von Compile-Fehlern verschont bleibt.
Preisfrage ist aber natürlich: wie siehts denn mit Runtime-Fehlern aus...? Das teste ich mal gleich.
-
da ist das gleiche Problem. Wenn du was per %Include einbindest und da tritt ein Laufzeitfehler auf, dann kriegst du nur die Zeilennummer des Include-Statements. Das is halt der Mist
-
verdammt, selbes Spiel: Runtime-Fehler werden natürlich auch mit der Zeilennummer des Includes gemeldet.
D.h. wenn man Error-Handling verwendet und z.B. sowas wie
---
print "LS-Error "+error$+" ("+cstr(erl)+")"
---
steht in error$ zwar der korrekte Fehler, in erl aber die Zeilennummer des Includes.
Schade :-(
-
ich habe mir u.a. hier schonmal Gedanken gemacht:
http://www.atnotes.de/index.php?board=7;action=display;threadid=12135;start=0 (http://www.atnotes.de/index.php?board=7;action=display;threadid=12135;start=0)
habs dann aufgegeben, weil zu wenig Zeit.
ich vermute, dir gehts auch darum, den Code nicht zu veröffentlichen.
für mich wäre das ein akzeptabler Workaround, eine Entwicklungsversion mit Script zu haben und eine öffentliche mit Includes.
Und wenn ich jetzt gerade die C++ API- Referenz anschaue, dann sollte das damit automatisierbar sein. Ich werde da mal weitermachen.
-
ja, nicht-veröffentlichen von Code ist ein angenehmer Nebeneffekt - in der Regel liefern wir unsere Produkte aber sowieso mit versteckter Gestaltung und ermöglichen die Anpassung via definierter Schnittstellen / Plug-Ins.
Das wäre also kein primary Target für mich.
Das Problem mit der C-API ist denke ich, dass man zwar compilieren lassen kann, aber Fehler nicht verünftig (Zeilennummer) gemeldet bekommt.
Jedenfalls ist die Include-Strategie ja wohl zum Scheitern verurteilt - siehe meine vorigen Posts.
Das ist übrigens auch ein Problem von verstecken des Codes via Include - wir haben in jeder Methode ein Error-Handling, was einen Fehler mit Zeilennummer protokolliert. Das ist für den Support enorm wichtig; wenn beim Kunden doch mal ein Bug auftritt kann man mit diesem Protokoll sehr schnell die Ursache anhand der Zeilennummer rausfinden.
Wenn die Scripts nun via Include eingebunden sind und somit keine korrekte Zeilennumemr eines Runtime-Fehlers gemeldet wird, ist die protokollierung sinnlos und der Support sitzt wie der Ochs vorm Berg.
Also wäre doch die Variante mit Speichern via XML in Notes-Design-Dokumenten mit anschließendem compilieren via C-API die Bessere?
-
ich hab mal geguckt; in LS-Bibliothekten ist das Script im Klartext im Feld "$ScriptLib" gespeichert.
D.h. Eclipse könnte das Script einfach in diesem Feld speichern und dann die C-API NSFNoteLSCompile anstossen.
Zusammen mit einem Syntax-Checker für die üblichsten Compile-Fehler direkt in Eclipse wäre das doch ein guter Weg!
In Agenten übrigens scheint das anders auszusehen; dort ist ein eventuelles Script in binärer Form gespeichert. Ich denke aber sowieso, dass LS-Bibliotheken erstmal das wichtigste sind.
Auf jeden Fall kann man von Java aus eine Windows C-Funktion aufrufen; d.h. das Java basierte Eclipse-Plugin kann die NSDNoteLSCompile ausführen.
-
so einfach geht das nicht mit dem "im Feld speichern".
Hab ich schon mal probiert (resultierte in Generic LSE failure beim Öffnen der Bibliothek. s. hier (http://www.atnotes.de/index.php?board=7;action=display;threadid=12135;start=0))
das war noch zu Notes5 Zeiten, vielleicht hat sich was geändert.
aber die C++-API bietet eine ScriptLibrary-Klasse an mit den Methoden getLotusScript und setLotusScript. Das hört sich zumindest gut an.
-
Dann muss es aber auch über die C-Api direkt gehen, denn die C++ Api ist "nur" ein Wrapper um das Ganze
-
nö, hat sich nix geändert. Habs grade ausprobiert :-)
So einfach gehts in der Tat nicht.
-
hmm, das hier könnte der Grund dafür sein, dass es nicht so einfach geht:
(aus der C++API-Referenz)
Also note that you cannot specify the LotusScript for an agent, button, form or view action, or action hotspot by passing an LNLotusScript object that was constructed "from scratch" with a string or LNString containing pure LotusScript code as you would enter it in Notes. This is because the code lacks special comments that are normally inserted and parsed by Notes when you manually create LotusScript. To properly specify LotusScript code, you must get it from an LNLotusScript object that represents LotusScript that was manually created and saved in Notes.
This does not prevent you from using strings containing LotusScript, but it does require some extra steps. For example, if you had a library of scripts, you could add them to agents by doing the following:
1. Manually or programmatically create a database that holds a series of LotusScript agents named after your scripts.
2. Manually copy and paste your scripts from text files into the new agents.
3. Save the new agents so that Notes can insert its special comments.
4. Write code that gets the LotusScript code from the agents you just created and adds it to agents in your target database. For example:
LNDatabase agentDb, targetDb;
LNAgent agent, newAgent;
LNLotusScript script;
agentDb.GetAgent("Script1", &agent);
agent.Open();
agent.GetLotusScript(&script);
targetDb.CreateAgent("NewAgent", TRUE, &newAgent);
newAgent.SetLotusScript(script);
//set other properties
newAgent.Save();
-
wenn du eine DB nach XML exportierst, dann sieht das allerdings recht vielversprechend aus:
<globals><code event='options'><lotusscript>Option Public
Option Declare
Use "Actions"
Use "de.tv.Document"
Use "de.tv.State"
</lotusscript></code><code event='declarations'><lotusscript>Dim oState As State</lotusscript></code></globals><code
event='postopen'><lotusscript>Sub Postopen(Source As Notesuidocument)
If source.isnewdoc Then
Set oState = New State("")
Set oState = oState.getStartState()
Call source.Document.ReplaceItemValue("State", oState.StateName)
Call source.Document.ReplaceItemValue("NextStates", oState.NextStates)
'Call source.FieldSetText("State", oDummyState.StateName)
Call source.Refresh
End If
End Sub</lotusscript></code>
jetzt müssen wir nur noch rausfinden, ob man den Code ändern kann (das geht) und die DB updaten kann (das ist die Frage)
-
das mit den "special" comments habe ich bereits rausgefunden, ich habe mal das Feld $ScriptLib in ein Textfile geschrieben, das sieht z.B. so aus:
---
'++LotusScript Development Environment:2:5:(Options):0:74
Option Public
'++LotusScript Development Environment:2:5:(Forward):0:1
Declare Sub test
'++LotusScript Development Environment:2:5:(Declarations):0:2
'++LotusScript Development Environment:2:2:test:1:8
Sub test
Messagebox "test2"
End Sub
---
-> reicht aber nicht, einfach das File dann zu verändern, einzulesen und im $ScriptLib Feld zu speichern. Denn: Notes schreibt an vielen Stellen nur chr(10) für einen Zeilenumbruch statt 10+13 ("0A" statt "0A0D").
Und ich kann das modifzierte Textfile zwar wieder mit den 0A's einlesen (indem ich es als binary öffne), aber sobald ich diesen String wieder ins Feld schreibe werden die 0A's in 0A0D's konvertiert. Ich denke das ist Teil des Problems.
Im Grunde hast Du aber natürlich Recht, XML ist der bessere Weg, ich hoffte nur es könnte auch auf die einfache Art gehen :-)
XML einlesen kann man ja soweit ich weiß, also sollte man doch nur das ScriptLib-Dokument via XML exportieren, Inhalt ändern, wieder einlesen und dann den API-Aufruf zum compilieren starten können.
-
ich hab mal eine Lib nach XML exportiert, bekomme sie aber nicht wieder importiert. Es kommt nur der Fehler "DXL import failed", im importer.log steht was von "note id not found"
Hast Du eine Idee wodran das liegen könnte?
--
Dim stream As NotesStream
Set stream = session.CreateStream
Dim filename As String
filename = "c:\temp\test.xml"
If Not stream.Open(filename) Then
Messagebox "Cannot open " & filename,, "Error"
Exit Sub
End If
If stream.Bytes = 0 Then
Messagebox "File did not exist or was empty",, filename
Exit Sub
End If
Dim importer As NotesDXLImporter
Set importer = session.CreateDXLImporter(stream, db)
importer.DesignImportOption = DXLIMPORTOPTION_CREATE
Call importer.Process
--
-
COOOOOOOOOOOOOOOOOOOOOOOL!!!!!!!!!!!!!!!
ich kann die bestehende Lib noch nicht überschreiben, aber wenn ich folgendes mache:
1.) lib nach xml exportieren
2.) xml-datei ändern, z.B. aus einem "Messagebox "test"" ein "Messagebox "test2"" gemacht
3.) lib in Desginer löschen
4.) xml importieren
dann funktioniert die geänderte Lib OHNE NEU-COMPILATION!!!
Ich kann die Lib von einem Agent aus direkt benutzen, ohne sie im Designer nochmal öffnen zu müssen.
Jetzt muss man nur noch eine bestehende Lib via DXL-Import überschreiben können und schon ist alles gut!!
-
Arrgh. hab grade keinen Designer zur Hand. sobald ich wieder einen habe probier ich auch mit rum. is ja echt cool, dass das ohne Neukompilieren geht.
-
nur den Replace einer bestehenden Lib krieg ich nich hin... ständig kommt der Fehler "dxl importer operation failed" und im log "note item not found"...
-
selbes Ergebnis hier :(
Sub Initialize
Dim session As NotesSession
Dim db As NotesDatabase
Dim nc As NotesNoteCollection
Dim exporter As NotesDXLExporter
Dim importer As NotesDXLImporter
Set session = New NotesSession
Set db = session.CurrentDatabase
Set nc = db.CreateNoteCollection(False)
nc.SelectScriptLibraries = True
Call nc.BuildCollection
Set exporter = session.CreateDXLExporter(nc)
Set importer = session.CreateDXLImporter(exporter, db)
importer.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE
exporter.Process
End Sub
ich hab mal im notes.net-Forum gepostet und hoffe, dass Rod Whiteley hilft. Der ist der Ober-XML-Checker.
http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/5fe101c2d870225c85256e7a00602586?OpenDocument (http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/5fe101c2d870225c85256e7a00602586?OpenDocument)
-
gut, warten wir also :-)
Wenn's nicht klappt, muss man die Lib vor dem Import halt löschen; im XML-File steht ja die UNID des entsprechenden Notes-Dokuments drin. Sollte also machbar sein.
Da wir ja so langsam die grundlegenden Möglichkeiten positiv getestet haben, ist die Frage: wie koordinieren wir?
Was wir aus meiner Sicht brauchen:
- ein Ort, an dem man gemeinsam Dokumente (Konzepte & Ideen) bearbeiten kann: dafür kann ich unser Wiki anbieten, das ist einfach und unkompliziert.
- ein CVS, indem wir die Sourcen managen
- ein Forum zum diskutieren -> dafür könnte ich auch uns ein neues Forum einrichten
Und weiter:
- sollen wir daraus ein openntf.org Projekt machen? (meine Meinung: vielleicht)
- soll das überhaupt OpenSource werden (ich denke: ja)
- alles (Sourcen, Doku) von Anfang an auf Englisch (ich denke: ja)
Zu openntf.org: ich würde da gerne ein "öffentliches" Projekt draus machen, ich komm nur mit der openntf.org Workspace nicht wirklich zurecht... vielleicht wäre sourceforge der bessere Ort.
-
eine coole Sache ist mir grade noch aufgefallen. Für die ganzen Export-/Import-Geschichten bietet Notes ja auch Java-Klassen an. Ideal für ein Eclipse-Plugin.
Zur Koordination: das mit dem Wiki find ich gut.
Ich habe weder Erfahrungen mit sourceforge noch mit openntf.org (außer was downloaden). Bietet soureforge einen CVS-Server an? Ich hab mich grade bei denen umgesehen, blick aber null durch auf der Seite.
Axel hat ja auch sourceforge vorgeschlagen. Vielleicht kannst du ja nen Tipp dazu geben, Axel.
die anderen Fragen sind mir im Moment egal. schaun wir erstmal, ob wir ein gescheites Konzept zusammenkriegen und dann können wir darüber nachdenken.
-
Ich hab mal ein englische Wiki aufgesetzt:
https://www.youatnotes.de/php-bin/wiki/phpwiki-e/index.php?pagename=HomePage
Ist ein wenig langsam, aber man kann mit arbeiten. Mozilla und Firefox mögen das verwendete Stylesheet aber nicht lesen, deswegen möglichst mitm IE verwenden.
-
cool :D
ich hab schon befürchtet, ich muss den IE wieder auspacken, aber das sieht mit Firefox doch gut aus.
und langsam is es auch nicht.
jetzt muss ich mir erst mal die Wiki-Anleitung durchlesen, hab noch nie mit so nem Ding gearbeitet.
-
echt? Mein Firefox beschwert sich immer, dass das Stylesheet als Typ "text/html", nicht "text/css" ausgeliefert wird.
-
Hi. muss hier dummerweise viel, lange und schnell arbeiten und das wird wohl bis Mittwoch so bleiben.
Hab das jetzt mal eben überflogen.
Hoster für Projekt: Sourceforge.net gilt gerade für Windows User wie mich als nicht userfriendly.
Meiner Ansicht nach, würde dieses Projekt auch bei ntfTools besser reinpassen, oder ???
Vielleicht können wir über ein paar geschickte dumme Fragen rauskriegen wie das geht. Andere haben das ja auch geschafft.
Am besten wir gehen das ganze mit Geduld an.
Gruß Axel
-
Ich nehme mal an, Du meinst OpenNTF und nicht NSFTools?
Da gibt es ganz bestimmt Auskunft, wie man das macht. Bin im Moment auch sehr unter Druck, wenns noch etwas Zeit hat und es dann noch niemand rausgefunden hat, werd ich mich mal schlau machen, wie man bei OpenNTF ein Projekt reinkriegt.
-
hab grade mal nachgeschaut. man muss erst mal eine Idea anlegen und daraus kann man dann ein Projekt machen. Sounds simple.
Following are the general guidelines for using the Project Management application. Please read this document first.
1. User submits a Project Idea on the Main Bar discussion forum using the category "Project Idea" (this person then becomes the proposer)
2. People either go to the Project Ideas view, or post their responses in the forum, indicating their approval or disapproval on the project ideas up for discussion. The proposer can monitor that thread to see if there is sufficient interest in the project.
3. If the proposer feels the idea should be converted to a project, they edits the Project Idea, selects the option to convert the idea to a project, and submits - the idea automatically gets converted to a Project, with the proposer automatically becoming the "Master Chef" or project lead for that project, and a note is sent to the admin for creating the project "space".
4. The admin creates the project subdirectory with the necessary files and notifies the Master Chef by email.
5. The Master Chef opens the Project document, clicks on a button to post a Task document, asking for volunteers to join the project by taking on the task.
6. People click on the Tasks link and click on the button to Assign Task to Self.
7. The person who has applied automatically becomes a member of the team by accepting a task. A Profile document for that person is created if it does not already exist. If it does, the profile will be updated to indicate that the person has been added to this project.
8. The Master Chef and team works on the project , changing the status of different tasks as and when they are complete.
9. Once a release is finalized, the master chef updates the production copy of the app in the projects directory if they wish, then opens the project management db and Posts a Release, which becomes available to the general public. This may also include the application as an attachment
10. The master chef can post as many releases as they want, and also post News Articles about the project whenever they want - these articles show up on the welcome page along with the latest releases and opening
11. The master chef adds Documentation about the project.
12. People look at the application and create Feature requests for new elements to be added to the application and Bug Reports for informing the team members about any bugs that may have been found.
13. The team goes through the bug and feature request list, fixing them as required and changing the status of bugs and feature requests until such time that another Release of the application can be made.
-
Ende 2003 gabs da eine kurze Diskussion zu OOP in LS:
http://openntf.org/__88256B5E00751F4B.nsf/0/3145476597B7645E86256DFE00435E48?OpenDocument
aber lasst uns das erstmal nicht zu hoch hängen, ich denke wenn wir ein "proof of concept" haben können wir dort hingehen.
Mein Vorschlag fürs weitere Vorgehen wäre:
1.) Konzeptarbeit im Wiki
2.) wer parallel Lust hat erste Gehversuche in Eclipse Plug-In Entwicklung (ich werde damit anfangen sobald das bestellte Buch da ist :-) )
3.) wenn wir alle der Meinung sind, dass es machbar ist, Aufgaben verteilen und loshacken.
-
Das umfassende Referenzwerk scheint das hier erwähnte zu sein:
s. Beiträge Dan Kehn:
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=12&t=001799
Auch gut ist das Eclipse Live von B. Dudney von sourcebeat:
http://www.sourcebeat.com/TitlesAction.do
Da kommt man umsonst dran über eine www.javalobby.com Registrierung.
Dudney will auch seinen Inhalt an Eclipse3 anpassen.
-
Mein Vorschlag fürs weitere Vorgehen wäre:
1.) Konzeptarbeit im Wiki
2.) wer parallel Lust hat erste Gehversuche in Eclipse Plug-In Entwicklung (ich werde damit anfangen sobald das bestellte Buch da ist :-) )
3.) wenn wir alle der Meinung sind, dass es machbar ist, Aufgaben verteilen und loshacken.
wie stellst du dir die Konzeptarbeit vor?
Sollten wir vielleicht erstmal die Ziele formulieren, die wir mit dem Ding verfolgen, damit jeder weiß, um was es geht und um was nicht?
Das könnte ganz gut mit dem Wiki gehen, jeder sollte mal kurz schreiben, was er erwartet, und dann fassen wir das zusammen.
Danach könnten wir die wichtigsten Anwendungsfälle mal grob aufschreiben.
Auch das könnte iin Teamarbeit im Wiki gut klappen, wenn wir erstmal eine Liste einiger wichtiger Anwendungsfälle haben, kann sich jeder 1-n davon schnappen und ausformulieren.
Wäre sowas ok für euch?
-
ja. auf jeden Fall.
Wir werde auch anfangen, bestimmte Dinge schon mal exemplarisch durch zu exerzieren (z.B. Verbindung von Eclipse-plugin zu Notes aufnehmen).
Bei der Business-Logik bzgl. der IDE Komponenten für Notes-Klassen habe ich noch überhaupt keinen Schimmer wie das aussehen soll. Vielleicht gibt das php-plugin ein bischen Aufschluß.
Oder vielleicht andere plug-ins, die auch Klassen unterstützen, die mehr so aussehen wie LotusScript-Klassen (Python?).
Sollen wir eigentlich Eclipse2.1 oder Eclipse3 nehmen? (letzteres ist wohl schlechter dokumentiert, aber so anders ist das hoffentlich auch nicht)
Gruß Axel
-
ich arbeite grade mal an einem "basic concept" im Wiki... stay tuned :-)
-
Ein Anfang ist gemacht:
https://www.youatnotes.de/php-bin/wiki/phpwiki-e/index.php?pagename=Basic%20concept
-
Hallo zusammen,
finde ich suuuuper wie über diesen Punkt diskutiert wird!
Ich habe eine Rückmeldung vom Support wg. der %Include in Verbindung mit Fehlernummer-Problematik. Es ist jetzt ein SPR ( Software Problem Report) bei den Entwicklern geworden und dies kann einige Zeit dauern, bis eine Lösung/Workaround angeboten wird.
Da hilft nur abwarten!!
Also weiter so ... ich denke das Buch über die Eclipe-Entwicklung ordere ich mir auch!
-
sehr schön, bin gespannt was die Entwicker dazu sagen. Betriifft uns ja nur noch partiell, da wir ja an der XML-Lösung arbeiten, aber trotzdem spannend :-)
-
Versuche erstmal bottom-up vorzugehen*, weil ich von der Technik (eclipse-plugins) zu wenig verstehe.
Versuche nun eine Connection von Eclipse nach Domino zu erstellen und mir einen Baumnavigator von den lokalen Datenbanken zu holen.
Und das kann dauern...
...weil eben was anderes zu tun ist.
Aber ich brauche erstmal so ein mini-Projekt.
stay tuned
Axel
* also von technischen Kleinigkeiten zur business-mässigen Logik der Anwendung und nicht von der business-mässigen Logik der Anwendung zu den technischen Kleinigkeiten.
-
ich hab mich jetzt nochmal an dem Import einer ScriptLibrary über eine existierende versucht. Das können wir vergessen.
In LotusScript gibt es aber einen ziemlich einfachen Workaround (wie schon erwähnt wurde), man kann die entsprechende Note ja löschen, bevor man importiert, ID und UNID steht im exportierten XML-Dokument.
Am geschicktesten geht das im PostDOMParse-Event vom DOMParser (den brauchen wir ja, um das XML-Dok zu erzeugen)
Allerdings ist das halt LotusScript und ich weiß nicht, ob es was ähnliches in Java auch gibt. Weiß jemand mehr?
-
ja, das kann man mit dem SAX-Parser bestimmt genauso machen; hatte aber noch keine Zeit das zu testen.
-
aber mit nem SAX-Parser kannst du doch nur lesen, oder?
wir müssen ja selber XML schreiben oder ändern.
-
Ich favorisiere z.Zt. http://www.jdom.org ;D
@Thomas: Stellt dieses nicht-editieren können von existierenden ScriptLibrary nodes in der XML-Repräsentation wirklich so ein Problem dar?
1. User checkt Datenbank aus.
2. User bearbeitet xml-Repräsentation der Datenbank mit Eclipse plug-in.
3. User checkt Datenbank ein.
Wenn User eine Script-Library bearbeitet, kann man dann nicht das betroffene Script-Library Node grundsätzlich kopieren und diesem eine neue ID zuweisen?
Und dann beim einchecken die alte ScriptLibrary löschen?
... oder verstehe ich jetzt die Hintergründe nicht.
Gruß Axel
-
Wenn User eine Script-Library bearbeitet, kann man dann nicht das betroffene Script-Library Node grundsätzlich kopieren und diesem eine neue ID zuweisen?
Und dann beim einchecken die alte ScriptLibrary löschen?
... oder verstehe ich jetzt die Hintergründe nicht.
ja, genauso oder so ähnlich wirds wohl gemacht werden. das dürfte kein Problem darstellen.
nur das direkte überschreiben einer Library funktioniert nicht.
-
Es ist nicht einfach. ::)
Das das vorläufige Ergebnis meiner Recherchen.
Ich hab auch ein sehr ernsthaftes Loyalitätsproblem.
Für Teile dürften code von anderen Leuten aus meiner Firma hilfreich sein.
Genau das kann und will ich aber nicht rausgeben, da es noch nicht mal von mir ist.
Hab momentan einfach mehr Interesse an meinem xml und swing :P basierten, Internet Diskussionsforen parasitär als Datenspeicher benutzendes EM-Börsenspiel. Und einem anderen Börsenspiel mit hibernate/spring/strtus.
Beides ist einfach viel überschaubarer und komplex genug. Mein homegrown XML-to-Java Binding framework habe ich z.B. heute mit dem Gedanken Axel_du_spinnst ins Klo geworfen.
Ich kann eine Menge an jakarta-commons Sachen verwenden (hoffe ich zumindest). Bin nicht so der Java-Gui König. Swing ist einfach besser artikel-, foren- und buchmässig unterfüttert.
Und dann hab ich noch einen Job mit realen Kunden.
Falls sich jemand von euch zum Projektmanager aufschwingt, übernehme ich gerne - soweit es meine Zeit zulässt - Teilbereiche. Dieses Projekt braucht aus meiner Sicht einfach eine hochmotivierte, ordnende Hand und genau das kann ich nicht leisten.
Gruß Axel
-
mir gehts auch so, dass ich recht wenig Zeit habe, sehr konstruktiv mitzuarbeiten. Außerdem wirds jetzt wieder schön draußen und somit schwindet auch die Lust bei mir.
Ich werde aber trotzdem immer wieder kleine Arbeiten durchführen können und meine Erkenntnisse ins Wiki schreiben.
-
Es gibt einfach so verdammt viele neue Entwicklungen.
Eclipse plug-ins sind einfach zu mächtig für meinen derzeitigen Bedarf (und zuviel in Bewegung).
Derzeit sehe ich das so, dass wenn ich mich mit nicht-kommerziellen Projekten beschäftige, dann mit Technologien, die ich besser kenne. Dann werde ich nicht so beim Nachdenken über eine gute Architektur / gutes OO-Design durch technische Details gestört.
Ausserdem sehe ich nicht so richtig ein, warum ich mich nun unbedingt mit einem neuen Grafik-Framework beschäftigen soll, wenn Swing mittlerweile meinen Anforderungen genügt. (http://www.jgoodies.com/). Man kann sowieso swing-Wissen in swt/JFace wiederverwenden.
Kann sein, dass sich dies irgendwann gerade bezüglich von Eclipse-plugins ändert.
Werde ebenfalls in Julians Wiki schreiben und code anhängen. Falls letzteres nicht geht, dann hier.
Gruß Axel
-
ich werde das Thema nach meinem Urlaub weiterverfolgen; es drängt ja nix.
-
http://www.manning.com/catalog/view.php?book=scarpino
hab gute Erfahrung mit Manning gemacht und die verkaufen das auch als PDF für ca 22 Euro.
Glaub das Eclipse Gui-Client Design wg. IBMs RichClient Plänen interessanter ist als das zur Zeit auf Eclipse vorherrschende programmieren von Entwicklungsumgebungen.
Entwicklungsumgebungen zu programmieren ist aus meiner Sicht eine sehr komplexe Aufgabe und zwar aus vielerlei Aspekten.
-
http://www.amazon.com/exec/obidos/ASIN/1590593251/ref%3Djranch-20/102-7179032-5676959
Apress bringt das im Juni raus.
Ab 4. Juli gibt es dazu in Javaranch eine bookpromo.
-
Wie frustrierend... Da liest man 6 Seiten, in der Hoffung am Ende steht die Lösung und dann verläuft die Sache leider im Sand. Naja, passiert..
Gibts hierzu inzwischen neue Ansätze?
-
Hi,
ich programmiere zur Zeit ein Eclipse plug-in.
Genauer gesagt: Der Source-Code-Text einer in Eclipse geschriebenen Klasse soll per Knopfdruck in ein per Annotation oder sonstwie festgelegtes Feld eines bestimmten Notes Dokuments geschrieben werden.
Das reicht erstmal.
Wir haben hier so eine Anwendung, in der Java Code in Notes Dokumenten gespeichert wird.
Dafür wäre das sinnvoll.
Und eine richtige IDE für LotusScript zu schreiben, ist natürlich deutlichst umfangreicher (als Aufgabe).
Wenn aber jemand irgendwo ein openSource Projekt startet, bin ich durchaus interessiert, mich dort als einer unter vielen Entwicklern einzuklinken.
Eclipse plugins macht Spaß, erscheint mir aber nach wie vor ziemlich umfangreich.
Gruß Axel
-
Ich habe ein Eclipse-Plugin entdeckt, welches für LS gedacht ist. Habe es nur noch nicht ausgiebig getestet.
Hier ist es zu finden:
http://lsseditor.sourceforge.net
-
Hallo AtNotes-Forum-Members
Hat jemand von euch dieses Eclipse-Plugin ausgiebiger getestet? Die Dokumentation auf sourceforge.net ist relativ dünn.
Habe bisher herausgefundenl rausgefünden, dass man ein *.lss File öffen muss, damit der LotusSecript Editr erscheint. Man kann die Outline verwenden um eine Übersicht über die Klassen zu erhalten. Eine Perspektive oder ähnliches wir mit dem Plugin noch nicht installiert, kann man sich dann aber "zusammenbasteln".
Falls jemand von Euch bereits Erfahrungen mit dem LotusScript Editor-Plugin gesammelt hat, würde ich mich über einen kurzen Kommentar freuen.
Gruss
Ray
-
Nein. Aber schreib bitte deinen :-)
-
Hm... Ich habe den dann auch mal kurz getestet, aber irgendwie war ich da nicht so von begeistert. War mir alles ein wenig zu umständlich. Ich bevorzuge den Teamstudio ScriptBrowser, damit kommt man finde ich auch gut zurecht.
Mir fehlte bei beiden aber die Code-Completion und das Refactoring, was die Arbeit mit Eclipse zum Vergnügen macht... Klasse umbenennen? Kein Problem, alle Applikationen der Klasse werden mit angepasst... einfach "alt+shift+r" und los geht es...
Mittlerweile mache ich aber auch kein Notes mehr und habe dafür ständig mit Eclipse zut tun... Mich wurmt nur der unheimliche Speicherhunger von Eclipse... Mein Rechner im Büro muss ständig auslagern und wird dadurch ständig langsamer...
-
Man könnte so etwas mit Eclipse programmieren. Ist aber für mich zu viel Arbeit. Lotus wirds für R9 sowieso machen (falls der Eclipse Designer kommt). Mit den 2 Gig Rechnern hab ich mit Eclipse eigentlich keine Probleme wegen auslagern. Du weisst, dass du der VM mehr Speicher spendieren kannt?
http://help.eclipse.org/help21/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/running_eclipse.htm
-
Man könnte so etwas mit Eclipse programmieren. Ist aber für mich zu viel Arbeit. Lotus wirds für R9 sowieso machen (falls der Eclipse Designer kommt). Mit den 2 Gig Rechnern hab ich mit Eclipse eigentlich keine Probleme wegen auslagern. Du weisst, dass du der VM mehr Speicher spendieren kannt?
http://help.eclipse.org/help21/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/running_eclipse.htm
Das weiß ich, dass ich Eclipse mehr Speicher spendieren kann. Trotzdem danke für den Hinweis. Aber auch die Anwendung, innerhalb der ich entwickle, benötigt sehr viel Speicher... Zu Anfang hatte ich nur 1 GB und habe mir von den Admins noch ein halbes Gig dazu bauen lassen, bis ich einen anderen Rechner bekomme.
Das mit Eclipse zu programmiern, dass man Code-Completion für LS hat, dachte ich mir, dass das machbar ist. Aber mir fehlen dazu die Basics für Eclipse-Plugins... Und jetzt ist mein Fokus ganz weg von Notes, habe da gar nichts mehr zu tun, seit ich hier in Hannover bin...
-
Mit openSource Projekten kann man bestimmt auch bei Java-Projektbestückern Interesse auf die eigene Person lenken.
Ist nur eine Anforderung an Zeitmanagement und Energie, zumal wenn es im Tagesjob zwischen nicht-Standard Notes Programmierung, Webservices, DXL, Swing-Hibernate, WAS Portal, JavaScript-Ajax-Prototype wirklich kein Mangel an disruptiven Features gibt.
Wo arbeitest du in Hannover?
Ich wäre dieses Jahr (fast) wieder in der Constantinstraße gelandet (hab da vor 2 Jahren gewohnt).