Autor Thema: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)  (Gelesen 2093 mal)

Offline khing

  • Aktives Mitglied
  • ***
  • Beiträge: 115
  • Geschlecht: Männlich
Hallo,

ich suche jetzt bereits seit längeren nach einem Best Practices für das Recompile-Problem nach einem Designupdate, jedoch habe ich noch nichts 100%ig zufriedenstellendes gefunden.

Situation: Derzeit entwickle ich in einer Schablone diverse Skriptbibliotheken auf Klassenbasis. Diese werden auch schon in ein paar DBs verwendet. Nun hatte der Design-Task (mittlerweile deaktiviert) die Klassen in die anderen DBs kopiert und es kam zu Fehlermeldungen in den Zieldatenbanken, weil ein Recompile notwendig war. Nicht schön...  :-\

Ziel soll eine einfache, schnelle und korrekte Verteilung der Klassen sein. Am liebsten sollen alle entwickelten Datenbanken auf Basis meiner Klassen auch auf den gleichen Versionsstand sein (deswegen ja auch die Schablone). Wie geht ihr da vor? Manuelles Schablonenupdate, danach "Lotusscript vollständig neu kompilieren" und zum Abschluss ein Signieren der DB? Gibt es da nicht einen einfacheren Weg, eventuell auch über ein Tool?
Es kam auch mal der Hinweis im Forum, Teamstudio zu nutzen. Aber welches Modul davon? Gibt es auch andere Tools in die Richtung?

Wäre echt dankbar für ein paar Tipps.  ;)

Gruß Kristian
"Notes kann alles außer Kaffee kochen!"

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)
« Antwort #1 am: 11.06.14 - 14:11:13 »
Gemeinsame wiederverwendete Elemente (Scriptlibraries, Teilmasken, Masken, Ansichten, Rahmengruppen etc.) entwickeln wir in einer zentralen Entwicklungs-Schablone.

Die Entwicklungs-Schablonen der einzelnen Anwendungen erben die Gestaltung der gemeinsamen Elemente aus der zentralen Schablone, die individuellen Elemente werden darin entwickelt.

In einem Freigabeprozess werden aus den Entwicklungs-Schablonen Produktiv-Schablonen erstellt, bei denen die Vererbung der gemeinsamen Elemente entfernt wurde (das geht auch mit Bordmitteln -> Wechseln der Schablone mit oder ohne Vererbung, einfach mal ausprobieren, eine Variante entfernt die Vererbung, vermutlich die MIT zukünftiger Vererbung der Gestaltung aus der Schablone).

Die Anwendungen erben Ihre Gestaltung komplett aus der Produktiv-Schablone. So kann kein Designtask die gemeinsamen Elemente in den produktiven Datenbanken austauschen.


Dieses Verfahren nutzen wir in unterschiedlichen Umfeldern erfolgreich seit wohl 15 Jahren. Und noch nie hat uns ein Designtask (der immer aktiv ist) eine Datenbank zerpflückt.

Einziger Haken dabei ist das eventuell notwendige Recompile. Alle Entwicklungs-Schablonen müssten recompiliert werden, wenn sich an den gemeinsamen Scripten die Strukturen ändern. Deshalb entwickeln wir nicht in Klassen, und wir ändern niemals Übergabeparameter für Subs oder Functions.

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)
« Antwort #2 am: 11.06.14 - 14:18:41 »
Ist vielleicht das "Factoring" hier noch eine Alternative, um die Use-Einbindung der Klassen zu vermeiden?

Das ist natürlich an Bedingungen geknüpft wie z.B. parameterlose Konstruktoren der verwendeten Klassen, so dass zum Zeitpunkt der Ausführung der Use passiert, d.h. kein abgespeicherter interner Code aus dem Template quer schießt?

Ist aber schon was für Hardcore-Entwickler das Thema!
Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

Offline khing

  • Aktives Mitglied
  • ***
  • Beiträge: 115
  • Geschlecht: Männlich
Re: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)
« Antwort #3 am: 11.06.14 - 15:01:13 »
@Peter: Interessant. So ähnlich hatte ich mir das auch vorgestellt. Da habe ich aber noch einiges an Aufräumarbeit vor mir. ;)

@ghostmw: Wie kann ich die Use-Einbindung umgehen? Kannst du das bitte etwas näher erläutern und gibt es dazu Doku im Web? Habe leider nicht wirklich etwas dazu gefunden.

"Notes kann alles außer Kaffee kochen!"

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)
« Antwort #4 am: 11.06.14 - 16:01:08 »
Hier ist es ein wenig gestreift das Thema => http://www.dominoforum.de/index.php/Thread/20724-LotusScript-Datenbank-weite-Singletons/

Also du baust dir in deiner Klasse eine globale Variable myObject


private myObject as Variant

...

function getMyObject as Variant
    execute | use "MyLibrary"
       set myObject = new MyClass()
    |

   set getMyObject = myObject
end function

so was in der Art, der Use wird zur Laufzeit ausgeführt und du kannst dir mit dem Ergebnis der Funktion alle Properties der gewünschten Klasse arbeiten zur Laufzeit.

Das Ding fliegt dir entsprechend auch erst zur Laufzeit um die Ohren, wenn du Funktionen und Subs falsch benutzt oder nicht vorhandene Properties benutzt  etc.

Aber du hast die Kopplung mit den Scriptlibs weg wegen der Compile-Fehler beim Vererben in den Schablonen.

Marco
Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

Offline khing

  • Aktives Mitglied
  • ***
  • Beiträge: 115
  • Geschlecht: Männlich
Re: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)
« Antwort #5 am: 12.06.14 - 13:55:52 »
Danke Marco. Das ist sehr interessant.

Kristian
"Notes kann alles außer Kaffee kochen!"

Offline ghostmw

  • Aktives Mitglied
  • ***
  • Beiträge: 201
  • Geschlecht: Männlich
    • BELOS - Raum+Ressourcenmanagement unter Lotus Notes
Re: Suche Best Practies-Ansätze (Schablone,Klasse,Recompile)
« Antwort #6 am: 12.06.14 - 13:57:43 »
Gerne ... wir haben das bei unseren gebauten neuen Datenbanken mit drin, ist eine feine Sache, wir gehen noch einen Schritt weiter, aber die Basis hier sollte dir genügen.

Viel Erfolg
Marco
Grüße
Marco Weller
Lotus Domino / Lotus Notes seit 1996 (ab 4.5x)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz