Letztens wurde ich gefragt, wie man ein zentrales Repository unter Lotus Notes verwenden kann. Lassen Sie es mich am Beispiel unseres assono Framework erklären.
Unser Framework besteht aus einer Vielzahl von Design-Elementen. Neben Masken, Ansichten, Agenten, Grafiken und Ähnlichem gibt es eine ganze Menge von LotusScript Bibliotheken. Diese werden alle in einer Notes Datenbank "assRepostory 2" verwaltet.
Mit Hilfe des Schablonen-Mechanismus werden jeglichen Änderungen und Erweiterungen in die Anwendungs-Schablonen, wie z.B. für unseren assono Password-Safe Pro, übertragen. Von dort werden sie in die produktive Anwendung übertragen.
Lassen Sie mich Ihnen die Details näher bringen.
In unserer zentralen Repository-Datenbank "assRepository 2" ist die Option "Database file is a master template" aktiviert. Der Schablonen-Name darunter ist die wichtigste Information.
Über diesen Namen werden die Abhängigkeiten aufgelöst. Sie sollten also sicherstellen, dass der Name eindeutig ist.
Für jede Anwendung, die wir entwickeln, gibt es eine zugehörige Anwendungs-Schablone. In dieser Anwendungs-Schablone müssen zwei Optionen aktiviert sein. Da es sich um eine Schablone handlelt, muss selbstverständlich die Option "Database file is a master template" aktiviert sein.
Darüber hinaus haben wir auch die Option "Inherit design from master template" aktiviert. Underhalb dieser Option steht der Schablonen-Name unseres zentralen Repository "assRepository-2". Wenn der Design-Task nachts um 01:00 Uhr läuft, wird überprüft, ob es im Repository Aktualisierungen gab. Er überprüft auch, ob in der Anwendungs-Schablone Design-Elemente fehlen, die im Repository vorhanden sind.
Jedes Mal, wenn wir ein neues Feature entwickelt haben und alle Tests erfolgreich durchlaufen wurden, packen wir anschließend alle zugehörigen Design-Elemente in dieses Repository. Der Design-Task kümmert sich um die Verteilung in die Anwendungs-Schablonen.
Lassen Sie mich ewtas sehr klar betonen. Weil der Design-Task automatisch jede Nacht läuft, stellen wir absolut sicher, dass nur komplett entwickelte und erfolgreich getestete Features und Aktualisierungen in das Repository übertragen werden. Wir empfehlen ausdrücklich die Verwendung einer Versionsverwaltung.
Ein anderer wichtiger Punkt ist die Option "Prohibit design refresh or replace to modify" für jedes anwendungs-spezifische Design-Element. Diese Option wird automatisch aktiviert, wenn in der Anwednungs-Schablone ein neues Design-Element erstellt wird.
Allerdings sollte beim Kopieren von Design-Elemente besondere Vorsicht geboten sein. Lieber die Option zweimal überprüfen. Ist die Option nicht aktiviert, löscht der Design-Task in der Nacht das Design-Element. Hatte ich die Wichtigkeit von Versionsverwaltung erwähnt?
Die produktive Anwendung erbt direkt von der Anwendungs-Schablone.
Vielleicht werde ich das nächste Mal über die Verwendung von Git in diesem Szenario bloggen.
Happy coding!