Domino 9 und frühere Versionen > ND8: Entwicklung

Kompilieren des Datenbankscriptes

<< < (3/4) > >>

Peter Klett:

--- Zitat von: koehlerbv am 12.04.14 - 11:50:37 ---Peter, Du unterliegst einem irrtum, einem Gerücht. Das ist nicht richtig.

Bernhard

--- Ende Zitat ---
Meinst Du wirklich? Dann habe ich die letzten Jahre wohl was falsch gemacht, oder ich arbeite nicht mit Notes. Bei mir funktioniert das genau so, wie ich beschrieben habe. Kann ich Dir vorführen, wenn Du mal in der Nähe bist ... ;)

Tode:
Ich muss sagen, bis vor kurzem habe ich auch so gearbeitet wie Du, Peter, habe mich aber von Bernhard von einer -imho- effizienteren Arbeitsweise überzeugen lassen:
Wir entwickeln tatsächlich in einer Datenbank. Das hat verschiedene Vorteile:

1. jeder beteiligte Entwickler weiss immer, wo der aktuellste Entwicklungsstand ist
2. das ständige refresh design fällt weg (für jede kleine Änderung)
3. man muss sich nicht um Testdokumente, etc. z.B. Für Ansichtsdesign kümmern.
4. webentwicklungen kann man direkt testen, bei ntfs ist das ja schwierig.

Hat man einen bestimmten Stand erreicht, dann wird daraus via Db Kopie (ohne Dokumente) ein Template, das der Kunde erhält.

Wir fahren damit ganz gut, nur im gerade geschilderten Fall ist das natürlich ein kleiner Nachteil...

Peter Klett:
Hallo Torsten,

ich kenne Euer Umfeld nicht, was für Datenbanken Ihr baut und in welcher Komplexität die eingesetzt werden. Bei uns würde solch ein Szenario absolut unproduktiv sein, da der Fokus darauf besteht, ein komplexes System mit möglichst wenigen Schablonen zu entwickeln.

Seit Februar diesen Jahres bauen wir ein neues System (mein drittes Großprojekt, macht richtig Spaß). Vor kurzem ging Version 1 in Produktion. Etwa 2000 Datenbanken aus 17 Schablonen. So etwas kann man nicht mit einer Datenbank (je Schablone) entwickeln und testen. Ohne nachzusehen besteht mein lokales Testsystem aus mindestens 30 Datenbanken, und wenn man darin die Interaktivität der Datenbanken, die aus der gleichen Schablone erzeugt wurden, weiterentwickeln und testen will, geht das nicht auf dem von Dir beschriebenen Weg, denn dazu müssen mindestens zwei Datenbanken aus der gleichen Schablone aktualisiert werden.

Die Aktualisierung einer Datenbank aus einer Schablone geht nun wirklich schnell (ALT D-U-G, Server auswählen, Enter), sicherlich schneller, als laufend die Datenbank im Designer zu schließen und bei der nächsten Änderung wieder die Stelle zu suchen, an der man gerade gearbeitet hat. Und bei übergreifenden Änderungen (z.B. Änderung in der zentralen Schablone, die die einzelnen Schablonen mit übergreifend eingesetzten Elementen versorgt), startet man den Design-Task.

Nach langer "Alleinherrschaft" habe ich endlich eine sehr gute Verstärkung bekommen. Die Zusammenarbeit klappt auch technisch sehr gut, da wir einen Satz Schablonen auf dem Entwicklungsserver liegen haben, von dem jeder Repliken auf seinem lokalen Testserver vorhält. Es wird abgesprochen, wer welches Element bearbeitet, und Ergebnisse werden schnellstmöglich auf den gemeinsamen Server zurückrepliziert.

Du hast mich also nicht überzeugt, aber wichtig ist, dass jeder den für sich richtigen Weg findet, und davon gibt es ja immer mehrere ... ;)

gstueb:
Ich denke auch, dass die Vorgehensweise immer vom Umfeld abhängt.

Bei komplexen Umgebungen, in denen Anwendungen aufeinander zugreifen und ggf. parallel aktualisiert werden, hat man i.d.R. eine eigene Testumgebung und wird überwiegend mit Schablonen arbeiten.

Beim aktualisieren einer einzelnen Anwendung ist meiner Ansicht nach Bernhards Weg der praktikablere. Die Original-Schablone will man ja nicht ändern, solange die neue Version in Entwicklung ist. Und wenn die nächste Version reif für den Produktiv-Einsatz ist, wird sie zur Schablone für die alte Version.

Aber egal - das schöne an Notes ist ja, dass  jeder das für sein Umfeld passende Konzept verwenden kann.

Zurück zum eigentlichen Problem:

Das Problem mit dem Datenbankscript kenne ich so auch nicht. Meiner Erfahrung nach ist oft die Ausführung der Funktion "Werkzeuge / LotusScript vollständig neu compilieren" notwendig/sinnvoll, insbesondere wenn Änderungen an Klassen vorgenommen wurden. In sehr seltenen Fällen musste ich alle Notes Clients (Notes, Designer, ggf,. Admin) beenden und neu starten, damit Änderungen aktiv wurden.

Grüße,
Gregor

basile:
Hallo Leute,

Wow, danke für die vielen Antworten, hätte nicht gedacht, dass ich so eine Diskussion lostrete. Kann mich erst heute melden, da ich nur halbtags in der Firma bin.
Also ich schildere nochmal den Fall: ich arbeite direkt an der Produktivdatenbank.
bei einer lokalen Datenbank muss ich wirklich per STRG-A, STRG-x das komplette Datenbankscript löschen (und in Notepad++ reinkopieren), Datenbankscript speichern, Designer ind Client schließen, Designer öffnen, das rauskopierte Zeugs per STRG-V wieder ins Datenbankscript pasten und speichern, Designer schließen. Erst nach einem Öffnen des Clients sehe ich die Änderungen. -> dieses Vorgehen habe ich im Netz gefunden. Stelle weiß ich nicht mehr.
Beim Arbeiten am DB-Script in einer DB auf dem Server sehe ich die Änderungen leider erst am nächsten Tag. Da hilft auch mein (etwas kompliziertes) Vorgehen nix.
@umi: Recompile nutzt auch nix, sehe die Änderung dann auch erst am nächsten Tag. Leider kann man nicht einzelne Scripte kompilieren, sondern immer nur die ganze DB. Das dauert lang und setzt alle Scripte auf eine andere Signatur.
@koehlerbv: die Routine muss angesprungen werden, ich bearbeite die QueryDeleteDocument und setze eine MessageBox rein, die mir die CodeVersion anzeigt. Damti habe ich dann die Kontrolle, was passiert - oder auch nicht.
@Peter: ich entwickle auch direkt in der DB. Ich habe gemerkt, dass beim Arbeiten mir der Schablone Agenten z.B. nicht immer korrekt anspringen, es dauert länger, Testdokumente muss ich immer neu anlegen, ausserdem kann man aus jeder DB jederzeit ein Template kochen (lassen).
Mich ärgert eher was anderes an der Lotus-Entwicklung: bei puren C++/Java/WhatEver-Projekten habe ich normale Textfiles für den Code. Meinetwegen 10000 Stück. Diese kann ich aber bequem mit z.B. Git verwalten und jederzeit jeden Stand wiederherstellen, bzw. Entwicklungszweige für ein Feature komplett unabhängig entwickeln/verwerfen. Das geht mit Lotus nich besonders toll - binäres Format :-[. Auch die Enwicklung im Team ist damit schwieriger-Absprachen (obwohl ich Einzelkämpfer bin). Ich arbeite mit Git in einer anderen Firma und bin (nach anfänglicher steiler Lernkurve) überzeugt von dem Vorgehen und der Sicherheit.

Viele Grüße aus dem sonnigen Göttingen

Udo

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln