B3B020FA4E674A24B639272929B61157
  • Thomas Pollinger
  • 24.06.2019
  • DE

How-To: Wie verwendet man den .NET-Ordner?

Der Management Server hat die Möglichkeit über den .NET Ordner eine, komplette oder nur Teile, ASP.NET (IIS) WebApplikation zusammen mit den redaktionellen Seiten zu publizieren. Auch wenn das Feature vermutlich aktuell sehr selten verwendet wird. Sehe ich eine rosige Zukunft im Bereich Cloud, Docker usw.

Man könnte sich einen Automatismus per RQL usw. bauen, welcher dafür sorgt das die Projektvarianten immer auf den richtigen Applikationspfad zeigt. Und dann werden aus dem CMS die statischen (.NET) und die dynamischen (Content) Inhalte komplett auf den neuen Container publiziert. 

Da wir bei uns immer mehr in diese Richtigung gehen, werden wir diese Feature intensiv testen und später berichten.

Jetzt erstmal dazu wie man dieses Feature einrichtet, einmal die Online-Hilfe und dann noch Ergänzungen aus einem Stackoverflow-Artikel.


Quelle: OpenText Web Site Management Server Online-Hilfe

.NET-Ordner

.NET – Man wählt diesen Typ für Dateien, die immer auf dem Publizierungsziel verfügbar sein sollen, beispielsweise Konfigurationsdateien oder Assemblies in .NET-Projekten.

Zur Vorschau wird der Inhalt dieses Ordners in einen physischen Pfad publiziert, welcher im Projekt via RDExecute und in den Einstellungen via PreExecute definiert ist. Wenn die Projektvarianten-Eigenschaft Dateien aus .NET-Ordner publizieren aktiviert ist, wird der gesamte Inhalt des Ordners im Publizierungsordner publiziert, welcher für diesen Ordner konfiguriert ist.

Hinweis: Ordner von diesem Typ können Inhalts-Elementen nicht zugewiesen werden. Dateien in diesem Ordner können auch nicht direkt referenziert werden.

Sofern richtig konfiguriert, wird der gesamte Inhalt dieses Ordners während der Vorschau und später auf dem Publizierungsziel bereitgestellt.
 

Anmerkungen

NET-Ordner verwenden
Wenn man für ein Projekt das .NET-Framework nutzen möchte, muss man die folgenden Einstellungen vornehmen:

  • Physischen Pfad und IIS Anwendung angeben
    Hier gibt man den physischen Pfad und die IIS Anwendung, zur Ausführung von RDExecute- und PreExecute-Seiten wie z. B. ASPX-Seiten, an.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Aktion: Allgemeine Einstellungen > Einstellungen bearbeiten: RDExecute und PreExecute Einstellungen)

    Hinweise: Der am Anwendungsserver angegebener Host-Header wird um die hier eingestellte IIS Anwendung erweitert. Wird keine besondere IIS Anwendung angegeben, dann wird ausschließlich der angegebene Host-Header verwendet. Idealerweise sollte sich die IIS Anwendung unterhalb der Anwendung Management Server befinden. Keinesfalls sollte sich die IIS Anwendung im Pfad des Management Server befinden, da sonst die Gefahr besteht, dass Konfigurationsdateien Auswirkungen auf Management Server selbst haben. Ebenso ist eine parallel zur Anwendung des Management Server angelegte IIS Anwendung bei der Verwendung eines Host-Headers nicht empfehlenswert, da der Host-Header auch für Integrationen verwendet wird. Diese funktionieren dann möglicherweise nicht mehr.
     
  • .NET-Ordner einrichten
    Man erstellt einen .NET-Ordner, in den man die notwendigen Konfigurationsdateien und Assemblies ablegen kann. Pro Projekt kann nur ein .NET-Ordner erstellt werden. Es wird automatisch der Unterordner bin angelegt. Für den .NET-Ordner muss als Publizierungsordner das Root-Verzeichnis des .NET-Projekts zugeordnet werden.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Ordner > Aktion: Ordner erstellen)
     
  • Projektvariante einrichten
    Für die Projektvarianten des Projekts kann man festlegen, dass der .NET-Ordner verwendet werden soll. Wenn man diese Einstellung für eine Projektvariante konfiguriert hat, werden bei jeder Publizierung dieser Projektvariante auch alle geänderten Dateien im .NET-Ordner oder in dessen Unterordnern publiziert.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Projektvarianten > Projektvariante auswählen > Aktion: Projektvariante bearbeiten > Projektvariante bearbeiten > .NET-Ordner verwenden)
     
  • .NET-Ordner aktualisieren
    Die dem .NET-Ordner zugeordnete IIS Anwendung kann manuell aktualisiert werden. Die Aktualisierung wird am .NET-Ordner angestoßen und erfolgt dann clusterweit.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Ordner > .NET-Ordner auswählen > Aktion: IIS Anwendung aktualisieren)
     

Projektvarianten erstellen/bearbeiten

  • Dateien aus dem .NET-Ordner publizieren
    Man aktiviert diese Checkbox, wenn man für diese Projektvariante einen .NET-Ordner publizieren möchten. Inhalte des .NET-Ordners, die geändert wurden, werden automatisch publiziert, wenn die Projektvariante publiziert wird.
     

Publizierungsordner auswählen

  • Hinweise
    Für .NET-Ordner muss der Publizierungsordner ausgewählt werden, welcher dem Root-Verzeichnis des .NET-Projekts entspricht. Dies muss nicht zwangsläufig das Root-Verzeichnis des Publizierungsziels sein.
     

Ordner-Freigabe bearbeiten

  • Hinweise
    Man kann Ordner zur Verwendung in anderen Projekten freigeben. Ordner externer Anwendungen und .NET-Ordner sind hiervon ausgenommen.
     

Templates erstellen/Eigenschaften bearbeiten

  • Platzhalter für Seite in Container einsetzen
    Die Option regelt die Publizierung einer auf dem Template basierenden Seite, welche sich in der Projektstruktur in einem Container befindet.
    Man aktiviert die Option, damit die Seite als separate Datei publiziert wird und die publizierte Seite, die den Container enthält, auf diese Datei verweist.

    Anmerkungen
    In SmartEdit oder beim Öffnen der Seitenvorschau gibt es nur einen Link zur publizierten Seite im Container. Der Code der referenzierten Seite ist nicht auf der Seite enthalten, die den Container enthält.
    Diese Funktion wurde hauptsächlich für ASP.NET-Code hinter den Dateien implementiert, die in ASPX-Code, Aufrufmethoden oder Eigenschaften aus dem Code hinter den Dateien referenziert werden. Die referenzierten Seiten werden als Dateien publiziert, bevor die ASPX-Seiten verarbeitet werden.
     
  • IIS Anwendung als Präfix hinzufügen
    Steht nur zur Verfügung, wenn die Option Platzhalter für Seite in Container einsetzen aktiviert ist. Man aktiviert diese Checkbox, um den vollständigen Referenzpfad zur separaten Datei auf der Seite, die den Container enthält, einzufügen. Anderenfalls wird nur der Dateiname eingefügt.
    Wenn keine bestimmten Einstellungen für RDExecute oder PreExecute in den Projekteinstellungen definiert sind, bezieht sich der Pfad auf die Datei im Ordner RedDotTemp. Anderenfalls bezieht er sich auf die angegebene IIS-Anwendung.
    Weitere Informationen zu RDExecute und PreExecute finden man unter Serverseitige Skripte verwenden in der Online-Hilfe.
     

Quelle: Stackoverflow übersetzt

Aufgabenstellung

Kann jemand kurz erklären, wie man den Ordnertyp.NET in RedDot verwendet?
Ich möchte idealerweise Masterseiten und Benutzerkontrollen außerhalb von RedDot verwenden können. Um die Entwicklung zu erleichtern und der .NET-Ordner scheint mir zu erlauben dies zu tun.
 

Diskussion

Aus der Hilfe-Dokumentation:
.NET Ordner - Man wählt diesen Typ, wenn man das .NET Framework für sein Projekt verwenden möchte. In diesem Ordner kann man die notwendigen Konfigurationsdateien und Assemblies (Baugruppen) ablegen. Pro Projekt kann nur ein.NET-Ordner erstellt werden. Der Unterordner bin wird automatisch angelegt.

Und aus meiner kurzen Schulung im Januar glaube ich, dass der Instruktor darauf hinwies, dass Assemblies, die in den .NET-Ordner gelegt wurden, in vorab ausgeführten Codeblöcken in den Content-Klassen (Templates) verwendet werden könnten.


Nachdem Sie einige Untersuchungen und Experimente damit durchgeführt haben, sieht es so aus, als ob es den Bin-Ordner und alle Dateien in diesem Ordner, aber nicht Unterverzeichnisse, bereitstellen wird, wenn Sie die Website veröffentlichen. Es scheint nichts mit diesem Ordner im Smartedit-Modus zu tun zu haben, daher muss die .net-Funktionalität beim Bearbeiten deaktiviert werden.


Das ist nicht wahr. Ich habe definitiv .NET-Steuerelemente im SmartEdit-Modus verwendet.
 

Lösung

Für die Unterstützung von .NET-Projekten stellt RedDot CMS für jedes Projekt den .NET-Ordner und konfigurierbare virtuelle Verzeichnisse zur Verfügung. Wenn man das .NET-Framework für sein Projekt verwenden möchte, muss die folgenden Einstellungen konfigurieren:

  • Gib den physischen Pfad und das virtuelle Verzeichnis ein.
    Gib den physischen Pfad und das virtuelle Verzeichnis an, um RDExecute- und PreExecute-Seiten wie z.B. aspx-Seiten auszuführen. 
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Aktion: Allgemeine Einstellungen > Einstellungen bearbeiten: RDExecute und PreExecute Einstellungen)

    Das hier eingestellte virtuelle Verzeichnis wird dem im RedDot Content Server angegebenen Host-Header hinzugefügt. Wenn kein Verzeichnis angegeben wird, wird ausschließlich der Host-Header verwendet, wenn eines angegeben wird.

    Das virtuelle Verzeichnis sollte sich nicht im Pfad des virtuellen Verzeichnis des CMS befinden. Da die Gefahr besteht, dass die Konfigurationsdateien RedDot CMS selbst betreffen. Im Idealfall sollte ein virtuelles Verzeichnis gewählt werden, das auf einer Ebene unterhalb des virtuellen Verzeichnisses von RedDot CMS erstellt wurde.

    Ein Verzeichnis, das auf einer Ebene parallel zum virtuellen Verzeichnis von RedDot CMS angelegt wurde, wird bei Verwendung eines Host-Headers nicht empfohlen (da der Host-Header auch für Integrationen verwendet wird). Das könnte möglicherweise nicht mehr funktionieren.

    Beispiel für den virtuellen Pfad: /CMS/mysite/PreExecute

  • Einrichten des .NET-Ordners
    Erstelle einen.NET-Ordner, in dem die erforderlichen Konfigurationsdateien und Baugruppen gespeichert werden. Pro Projekt kann nur ein .NET-Ordner erstellt werden. Der Unterordner bin wird automatisch angelegt. Das Stammverzeichnis des .NET-Projekts muss dem .NET-Ordner als Publikationsordner zugeordnet sein.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Ordner > Aktion: Ordner erstellen)
     

  • Projektvarianten einrichten
    Du kannst festlegen, dass der Ordner .NET für die Projektvarianten deines Projekts verwendet werden soll. Wenn du diese Einstellung für eine Projektvariante konfiguriert hast, wird bei jeder Veröffentlichung dieser Projektvariante geprüft, ob sich die Dateien im .NET-Ordner oder seinen Unterordnern geändert haben. Alle geänderten Dateien werden ebenfalls veröffentlicht.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Projektvarianten > Projektvariante auswählen > Aktion: Projektvariante bearbeiten > Projektvariante bearbeiten > .NET-Ordner verwenden)

  • Aktualisieren des .NET-Ordners
    Mit Hilfe eines manuellen Updates des.NET-Ordners wird das virtuelle Verzeichnis für RDExecute und PreExecute aktualisiert. Das Update wird auf dem .NET-Ordner angestoßen und ist clusterweit.
    (SmartTree > Start > Projekteinstellungen bearbeiten > Projekt > Ordner > .NET-Ordner auswählen > Aktion: IIS Anwendung aktualisieren)

    Das virtuelle Verzeichnis wird auch automatisch aktualisiert, wenn Dateien im .NET-Ordner hochgeladen oder gelöscht werden. Die Aktualisierung erfolgt nur, wenn in den Projekteinstellungen ein physischer Ordner angegeben wurde.

  • Und schließlich
    Man sollte in erster Linie ASP.NET zusammen mit der RDExecute-Funktionalität verwenden. Bei Verwendung von PreExecute (Active Templates) sind einige Mechanismen nicht oder nicht vollständig funktionsfähig. Wenn du planst, ASP.NET in PreExecute-Bereichen zu verwenden, denk bitte daran die Anwendung sorgfältig zu testen.
    Persönlich geben wir RedDot CMS vor, dass es den Bin-Ordner in einen Tempbin-Ordner auf dem Publizierungsserver verschieben soll. Andernfalls werden diese Dateien überschrieben, wenn man aus Visual Studio zum Testen usw. veröffentlicht.


Hinweise

Der Ordnertyp .NET ist im wesentlichen ein Ort für die Veröffentlichung von 'Zeug', auf den kein Element verweist. RedDot CMS veröffentlicht normalerweise nur Dinge, welche auf irgendeine Weise miteinander verbunden sind (direkt, über Referenz oder über Keyword-Assoziation).

Wenn man beispielsweise einige kompilierte DLLs hat, werden diese veröffentlicht, sofern diese sich im.NET-Ordner befinden. Auch wenn man keinen Platzhalter für ihre Referenz erstellt hat.

Man muss angeben, dass der Ordner .NET - im Bereich Projektvariante bearbeiten - der angegebenen Variante verwendet werden soll.

  1. Weise die .NET-Ordnerkonfiguration auf ein Dateisystem zu. (In diesem Beispiel sind ein paar *.zip-Dateien enthalten).
  2. Das Unterverzeichnis /bin wird automatisch an der angegebenen Stelle des Dateisystems erstellt.
  3. Stelle an eine Projektvariante so ein, dass diese den Ordner .NET verwendet.
  4. Publiziere nun diese Projektvariante.

Der Inhalt des .NET-Ordners (hier zwei *.zip-Dateien) sollte zusammen mit den RedDot-Seiten veröffentlicht werden.


Über den Autor:
Thomas Pollinger

... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.

Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.