# Ordnerstrukturen

Systemverzeichnis

Arbeitsverzeichnis

DynamicNodes arbeitet mit zwei Basisverzeichnissen. Dem Systemverzeichnis der Laufzeitumgebung, welches üblicherweise das Installationsverzeichnis von DynamicNodes ist und dem Arbeitsverzeichnis welches sich normalerweise im Profil des Benutzers befindet.

DynamicNodes kann auch mit der Befehlszeilenoption `-noworkspace` ohne ein Arbeitsverzeichnis gestartet werden. In diesem Falle gehen Einstellungen nach dem Beenden verloren und es können keine Protokolldateien geschrieben werden, d.h. die Befehlszeilenoption `-log` wird ignoriert.

## Systemverzeichnis

Das Systemverzeichnis von DynamicNodes befindet sich nach einer Installation mit dem Setup-Programm typischerweise in `%ProgramFiles%\DynamicNodes`. DynamicNodes benötigt in der Regel keine Schreibrechte für dieses Verzeichnis. Es besitzt die folgende Struktur:

- Systemverzeichnis
  - assemblies
    In diesem Verzeichnis befinden sich die Programmbibliotheken des DynamicNodes-Systems und zusätzliche Programmbibliotheken für Knotenbibliotheken.
    - ApplicationCoreShell.dll
      Eine Konsolenimplementierung für die PowerShell zum Einbinden in Windows-Forms-Anwendungen
    - DataTypesAndTools.dll
      Grundlegende Datentypen für die Verarbeitung in DynamicNodes
    - DNCore.dll
      Das Kernsystem mit der Laufzeitumgebung
    - DNExtensions.dll
      Erweiterungen des Kernsystems, z.B. die Unterstützung für CLR-Wrapper-Knoten
    - DNShell.dll
      Die Einbindung der Application-Core-Shell in DynamicNodes
    - DNTesting.dll
      Die Testumgebung für Knotentypen
    - DNVisual.dll
      Die visuellen Erweiterungen des Kernsystems und die Grundlagen für den grafischen Editor
    - ...
  - help
    In diesem Verzeichnis ist das HTML-Hilfesystem und die XML-Knotenreferenz untergebracht.
    - design
      In diesem Verzeichnis liegen Resourcen für die HTML-Dateien der Hilfe. Z.B. CSS-Dateien und Bilder.
    - nodes
      Dieses Verzeichnis enthält die Referenzdateien der Knoten in XML-Form.
      - content.xml
        Diese Datei enthält einen Index über alle Knotentypen und Knotentypgruppen.
      - DynamicNode.Core.htm
        Eine Beschreibungsseite für eine Knotengruppe.
      - DynamicNode.Core.Nodes.NFlag.xml
        Die Referenzdatei für einen Knotentyp.
      - ...
  - nodelibs
    Dieses Verzeichnis enthält die Knotenbibliotheken des DynamicNodes-Systems.
    - DNLibDefault.dll
      Die Standardbibliothek von DynamicNodes.
    - DNLibExamples.dll
      Eine Beispielbibliothek, die im Downloadbereich der Projekt-Website als Quelltext verfügbar ist.
    - DNLibObjects.dll
      Eine Knotenbibliothek mit Wrapperknoten für Microsoft .NET Programmierung. Dazu gehören z.B. generische Knoten für statische und dynamische Methodenaufrufe.
    - ...
  - scripts
    Das Verzeichnis für PowerShell-Scripte.
    - boot.ps1
      Das Start-Script welches beim Start von DynamicNodes automatisch ausgeführt wird.
    - DynamicNodes.format.ps1xml
      Enthält die Formatierung für DynamicNodes-Objekte auf der PowerShell-Konsole.
    - DynamicNodes.types.ps1xml
      Enthält die Definitionen für das erweiterte Typsystem der PowerShell.
    - ...
  - xml
    Enthält Ressourcen für die XML-Verarbeitung.
    - schema
      Enthält XMLSchema-Dateien für die Validierung von XML-Daten.
    - stylesheet
      Enthält XSL-Transform-Stylesheets und Cascading-Stylesheet-Dateien.
  - DNConsole.exe
    Ist das Programm für die Ausführung von Flussgraphen auf der Konsole. Mit diesem Programm können Graphen nicht bearbeitet werden. Es eignet sich z.B. für den Batch-Betrieb.
  - DNConsole.exe.config
    Die Konfigurationsdatei für DNConsole.exe.
  - DNWinApp.exe
    Die Windows-Anwendung mit der Entwicklungsumgebung, dem Hilfesystem und der Testumgebung für Knotentypen.
  - DNWinApp.exe.config
    Die Konfigurationsdatei für die Entwicklungsumgebung. In dieser Datei kann z.B. das Debug-Level für das Protokollsystem eingestellt werden.

## Arbeitsverzeichnis

Das Arbeitsverzeichnis enthält alle Daten auf die DynamicNodes schreibenden Zugriff benötigt. Dazu gehören z.B. die Konfigurationsdateien, Protokolle und Projektdateien. Im Ar