Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: cgorni am 04.03.05 - 10:27:39

Titel: Nachteile von .dll Calls
Beitrag von: cgorni am 04.03.05 - 10:27:39
Hallo zusammen,

ich stöbere gerade verschiedene Links durch, um Ideen und Tools für meine LotusScript Toolbox Library zu finden und bin dabei auf den Aufruf des  Windows-File Dialogs (http://martinscott.com/designlibrary.nsf/scategory/89A3D225F523222985256C08001DF4F8?opendocument) gestoßen.

Ich habe ein wenig damit rumgespielt und finde den ganz schick. Das führt mich direkt zu der Frage:

Gibt es (außer der Plattformabhängigkeit) irgendwelche Nachteile, die "Bordmittel" von Windows zu benutzen? Kann ich .dll Aufrufe gefühlsmäßig als "normale" Unterprogramme behandeln oder ist irgendetwas dabei mit Vorsicht zu geniessen?

Nur als Beispiel seien hier die Probleme des NotesProgressBar, wenn man den Agenten der ihn benutzt abbricht.

Thx.
Christian
Titel: Re: Nachteile von .dll Calls
Beitrag von: Glombi am 04.03.05 - 10:54:50
Grundsätzlich sollte man immer zuerst mal in den Script und/oder Formelsprachenbefehlen stöbern, bevor man sich auf die Windows DLL stürzt.
Wenn es denn gar nicht anders geht, dann kann man schon darauf zurückgreifen. Dann ist man allerdings auf die Plattform eingeschränkt und hat damit eine der größten Vorteile von Notes eliminiert.

Kleiner Tipp:
Bei der Declaration der DLL sollte man dann vorsorglich mit Aliasnamen arbeiten. Somit ist man auch für weitere Plattformel wie bspw. Unix und shared objects gewappnet. Ich mache dann in diesem Fall immer zwei Declarations und zwei Subs, die dann plattformabhängig die entsprechende Sub aufrufen.

Andreas
Titel: Re: Nachteile von .dll Calls
Beitrag von: Marinero Atlántico am 04.03.05 - 11:03:50
+1
Hinzu kommt als Argument, dass sich für den Kunden durch Mischung aus Win32 und Domino der Kreis der möglichen Maintainer einschränkt.
Nur weil etwas schicker ist auf Plattformunabhängigkeit zu verzichten, halte ich für nicht so intelligent.
V.a. auch wegen Mergers & Adquisitions.
Titel: Re: Nachteile von .dll Calls
Beitrag von: TMC am 04.03.05 - 17:54:30
Nur als Beispiel seien hier die Probleme des NotesProgressBar, wenn man den Agenten der ihn benutzt abbricht.

Welche Probleme hast Du da?

Ich hab mal die ProgressBar-Klasse angehängt, die ich verwende. Da gibt's in der Klasse ein:
Code
	Sub Delete
		'Terminate the progress bar on the screen
		NEMProgressEnd hwnd
	End Sub

Ich bin zwar kein NotesAPI-Spezialist, aber nach meinem Verständnis wird dadurch die ProgressBar abgebrochen. Die Sub Delete der Klasse wird AFAIK auch ausgeführt, wenn der User die Routine (also z.B. Agent) unerwartet abbricht, z.B. mit Ctrl+Break.

---------------------

Manchmal weiche ich auch aufgrund von Notes-Bugs auf die WinAPI aus, z.B.
Datei-Limit bei OpenFileDialog? (http://www.atnotes.de/index.php?topic=15730.0)
Titel: Re: Nachteile von .dll Calls
Beitrag von: cgorni am 04.03.05 - 21:00:48
Bei der Progressbar habe ich im notes.net nicht so viele positive Dinge gelesen, wie z.B. hier (http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/500a4199829e259285256e51007b2744?OpenDocument&Highlight=0,progressbar). Bei Nutzung des Debuggers und einem Fehler stürzt der Notes Client ab. Bei der Progressbar bin ich gerade in der "Planung" auf diese
Lösung (LS2J)  (http://www.atnotes.de/index.php?topic=21560.0)umzustellen.

Bei der Win-API finde ich gerade den "Datei öffnen - Dialog" sehr gelungen. (s.o)
Titel: Re: Nachteile von .dll Calls
Beitrag von: TMC am 04.03.05 - 21:06:51
Christian, es gibt AFAIK 2 Typen der Progress Bar:

1.) die läuft in der Statusbar (also ganz unten) und ist sehr buggy, hatte da auch schon Probleme

2.) erscheint direkt mitten im Notes-Fenster (Code siehe meinen Anhang): Ich hatte damit noch nie Probleme - was natürlich aber nichts heißt.
Die sieht ähnlich aus als wie wenn Du Strg+Shift+F9 in einer View drückst.

Matthias
Titel: Re: Nachteile von .dll Calls
Beitrag von: TMC am 04.03.05 - 21:15:05
Nachtrag:
Sorry, Dein Posting nicht ganz gelesen.

Und jetzt wo Du es schreibst:
Zitat
bei Nutzung des Debuggers und einem Fehler stürzt der Notes Client ab.

Stimmt, das hatte ich auch schon mal mit diesem API-Call im Bezug auf Verwendung des Debuggers  ::)

Ich habe auch immer im ErrorHandler in der Routine, in der ich die ProgressBar aufrufe, ein "Delete Progbar" drin, nur zur Sicherheit.

100% sauber ist das also nicht.
Titel: Re: Nachteile von .dll Calls
Beitrag von: koehlerbv am 04.03.05 - 21:21:44
Christian, bist Du so freundlich und packst den langen Link noch in ein ordentliches Tagpaar - das Ding zerreist sonst dieses interessante Posting. Danke im Voraus.

Problem bei Notes-API-Calls: Die kompilierten Scripts verhalten sich u.U. nicht über Releases hinweg (insbesondere über Major releases) an das, was man erwartet. Die Folge ist die RBOD.
Meine Erfahrung: Wird das Teil mit der höchsten gewünschten Version kompiliert, klappt es auch mit den "Veteranen".

Bernhard
Titel: OT: Tag-Paar?
Beitrag von: cgorni am 08.03.05 - 11:02:35
Mache ich gerne, aber achtung Anfängerfrage: wie packe ich den langen Link in ein ordentliches Tagpaar. Ich verstehe leider nciht wie du das meinst.

Gruß
C.
Titel: Tags
Beitrag von: Semeaphoros am 08.03.05 - 11:06:13
Code
[url=http://.......dieAdresse....]Bezeichnung, die angezeigt werden soll[/url]

Ein Template dafür kann abgerufen werden, wenn man die Weltkuggel anklickt