Autor Thema: OO Entwicklung mit LotusScript - Frage externer Editor / Eclipse?  (Gelesen 58889 mal)

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:Wie entwickelt IBM OO mit LotusScript?
« Antwort #40 am: 18.04.04 - 09:33:15 »
Man frage doch einfach die Betreffenden. Leider kenne ich niemanden im Template-Development, aber Thomas Gumz schreibt mir gerade folgendes:

Zitat
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.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!
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...

Hernan Cortez

  • Gast
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

« Letzte Änderung: 18.04.04 - 09:55:24 von Hernan Cortez »

Hernan Cortez

  • Gast
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.  

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
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.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!
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.

Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!
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?

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!
...und das mach mal bei jedem Compile-Fehler... X-mal pro Stunde... ich denke nicht dass das praxisnah ist.

Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!
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!

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
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...
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Hernan Cortez

  • Gast
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
« Letzte Änderung: 18.04.04 - 12:35:34 von Hernan Cortez »

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
oder auch auf sowas hier aufbauen: http://gstaff.org/colorEditor/

(habs nur grade gefunden, noch nicht ausprobiert)
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
...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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Hernan Cortez

  • Gast
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]


Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!
@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.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Scheint uns aber nicht die notwendigen Infos zurückzugeben :(

Zitat
#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;
}


Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline JulianBuss

  • Aktives Mitglied
  • ***
  • Beiträge: 132
  • Ich liebe dieses Forum!

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Und wenn Bob das sagt, ist es unwahrscheinlich, dass es anders ist :(
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz