Versionierung
  • Erstellung einer neuen Version einer bestehenden Kategorie
Hintergrund

Hintergrund ist dabei die Erstellung von neuen Versionen einer bestehenden Puzzle-Kategorie. Dabei generiert das System selbständig den benötigten c# Code. D.h. es findet ein Aufruf auf dem Server statt und der Programmcode wird kompiliert. Es entsteht eine *.dll.

Dabei wird eine neue Klasse erstellt und alle beteiligten Datenstrukturen kopiert.

Die Registrierung der neuen Kategorie erfolgt automatisch.

Erstellung der Versionsnummer

Es wird der Name der Kategorie genommen und eine dreistellige Versionsnummer angehangen. Beachten Sie, dass 9.99 die höchste zu vergebenen Nummer ist. Ändern Sie die Hauptnummer selten.

 Was wird kopiert?

  • 1:1 Kopie der Klassenstruktur wird erstellt
  • Berechtigungen
  • XSLTs
Voraussetzung

Die Kategorie muss versionierbar sein, d.h. es muss das Interface Versioning.IVersionableCategory implementiert werden.

Sie erkennen dies an der Kategorie wenn im Feld Versionierung Ja steht.

versionierung_01.png

Vorgehensweise
  1. Wählen Sie den Eintrag neue Version erstellen im Kontextmenü einer registrierten Kategorie im cardo.Puzzle/Kategorien
  2. Vergeben Sie eine Versionsnummer, beachten Sie die Hinweise.
  3. Nach dem Erstellen der neuen Version erhalten Sie Informationen zum Vorgang:
    Der Programmiercode wird erstellt und in den Order: CodeGen\Puzzle\Source\IDU.Sample.Puzzle.Versions\Category\ kopiert.
    Vom System wird nun danach kompiliert und eine neue dll erstellt (IDU.Sample.Puzzle.Versions.dll).
    Die Klassenstruktur 1:1 kopiert.
    Das Assembly wird die aktuelle App Domain geladen.
    Die neue Kategorie wird registriert.
    Erstellt einen Task, der beim Beenden der Web-Anwendung die Datei ..\CodeGen\Puzzle\Bin\IDU.Sample.Puzzle.Versions.dll zu ..CoreWeb3\IIS\net3\bin\IDU.Sample.Puzzle.Versions.dll kopiert.
  4. Laden Sie die Seite cardo Puzzle im Managementcenter erneut.
  5. Die neue Kategorie sehen Sie nun in der Liste der Kategorien.

     

Die Quellcode Dateien befinden sich im Ordner:...\cardoSystem\_Projekt_REF\CodeGen\Puzzle

weitere Hinweise:

  • die neue Kategorie behält den gleichen Namen wie die Ausgangskategorie -> Ausgangskategorie_V100 (bei Version 1.0)
  • wenn eine Klasse mit der Eigenschaft "ist private Klasse" true versehen ist, wird ebenfalls eine 1:1 Kopie erstellt, die ID wird erweitert und erhält den Zusatz _V100 (für Version 1.0)
  • die Daten der Nachschlageklasse werden 1:1 kopiert
  • wenn eine Klasse die Eigenschaft "ist private Klasse" false hat, so wird diese nicht kopiert und somit auch nicht versioniert
  • Beachten Sie, auch die Berechtigungen werden 1:1 kopiert.
  • Prüfen Sie das Protokoll, dieses wird ebenfalls als *.html im Ordner ..\cardoSystem\_Projekt_REF\CodeGen\Puzzle abgelegt
  • Beachten Sie, dass dadurch der IIS kurzzeitig weg sein kann. Führen Sie bitte die Erstellung von Versionierungen nicht zur Hauptbetriebszeit durch.
  • ist eine XSLT Datei vorhanden, wird diese ebenfalls versioniert
  • wenn diese im cardo.Map enthalten ist, wird diese ebenfalls in das cardo.Map kopiert, was dazu führen kann, dass das cardo.Map kurzzeitig ausfällt. Auch hier der Hinweis: bitte führen Sie die Versionierung nicht zur Hauptbetriebszeit durch.