oqtane-general-description #62

Merged
Kocoder merged 17 commits from oqtane-general-description into main 2026-03-02 11:33:12 +00:00
Showing only changes of commit 6055b73bb3 - Show all commits

View File

@@ -6,6 +6,28 @@ gitea: none
# Technologie
## Entwicklung mit Asp.Net (Was ist Blazor? / Was ist Razor? / Kestrel)
## Was ist Oqtane? Architektur von Oqtane?
Oqtane ist ein Framework und CMS zur Entwicklung von Webseiten mithilfe von ASP.Net und Blazor. [^5] Ein Oqtane System besteht aus mehreren Komponenten.
In dieser Diplomarbeit fokussieren wir uns hauptsächlich auf `Themes` und `Modules`, aber es gibt auch `Language Packs` und `Pure Extensions`. [^6]
Review

Fachbegriffe im Deutschen werden oft zusammengeschrieben oder mit Bindestrich versehen (Durchkopplung).

In dieser Diplomarbeit fokussieren wir uns hauptsächlich auf `Themes` und `Modules`, aber es gibt auch `Language-Packs` und `Pure-Extensions`. [^6]
Fachbegriffe im Deutschen werden oft zusammengeschrieben oder mit Bindestrich versehen (Durchkopplung). ```suggestion In dieser Diplomarbeit fokussieren wir uns hauptsächlich auf `Themes` und `Modules`, aber es gibt auch `Language-Packs` und `Pure-Extensions`. [^6] ```
Ein Modul soll neue Funktoinalitäten in das CMS hinzufügen und ein Theme soll die ganze Gestaltung der Website (die Shell) festlegen. [^6]
Review

Grammatik: 'in das CMS hinzufügen' ist unüblich. Besser: 'dem CMS hinzufügen'. 'Ganze' durch 'gesamte' ersetzt für einen professionelleren Stil.

Ein `Module` (Modul) soll dem CMS neue Funktionalitäten hinzufügen und ein `Theme` soll die gesamte Gestaltung der Website (die Shell) festlegen. [^6]
Grammatik: 'in das CMS hinzufügen' ist unüblich. Besser: 'dem CMS hinzufügen'. 'Ganze' durch 'gesamte' ersetzt für einen professionelleren Stil. ```suggestion Ein `Module` (Modul) soll dem CMS neue Funktionalitäten hinzufügen und ein `Theme` soll die gesamte Gestaltung der Website (die Shell) festlegen. [^6] ```
[^5]: https://www.oqtane.org/#about
[^6]: https://docs.oqtane.org/dev/extensions/index.html
### Architektur eines Moduls
Ein Modul in Oqtane besteht aus 4 Projekten. Server, Client, Shared und Package.
Review

Stil: Der Satz besteht aus Fragmenten. Ein Doppelpunkt ist hier passender.

Ein Modul in Oqtane besteht aus vier Projekten: Server, Client, Shared und Package.
Stil: Der Satz besteht aus Fragmenten. Ein Doppelpunkt ist hier passender. ```suggestion Ein Modul in Oqtane besteht aus vier Projekten: Server, Client, Shared und Package. ```
Im Server Projekt liegt Source Code, welcher Serverseitig ausgeführt werden soll. In der Praxis bedeutet das: alle Repositories, Controller, Manager, Migratoinen und Server-Services (entwickelt nach einem Interface definiert im Client) und Server-Startup logik.
Review

Rechtschreibung: 'Startup-Logik' wird im Deutschen mit Bindestrich oder zusammengeschrieben. 'welcher' kann durch das flüssigere 'der' ersetzt werden.

Im Server-Projekt liegt der Quellcode, der serverseitig ausgeführt werden soll. In der Praxis bedeutet das: alle Repositories, Controller, Manager, Migrationen, Server-Services (entwickelt nach einem im Client definierten Interface) und die Server-Startup-Logik.
Rechtschreibung: 'Startup-Logik' wird im Deutschen mit Bindestrich oder zusammengeschrieben. 'welcher' kann durch das flüssigere 'der' ersetzt werden. ```suggestion Im Server-Projekt liegt der Quellcode, der serverseitig ausgeführt werden soll. In der Praxis bedeutet das: alle Repositories, Controller, Manager, Migrationen, Server-Services (entwickelt nach einem im Client definierten Interface) und die Server-Startup-Logik. ```
Im Client Projekt liegen Code und Razor Komponenten für den Client. Also Client-Staruplogik, Client-Services (+ Inferfaces dafür, die Services hier sollen lediglich die Server-Services über HTTP aufrufen), Ressource-Dateien (.resx), die Komponenten / das User Interface und die Moduldefinitionen für jedes Modul.
Review

Tippfehler: 'Staruplogik' -> 'Startup-Logik' und 'Inferfaces' -> 'Interfaces'. 'User Interface' -> 'User-Interface'.

Im Client-Projekt liegen Code und Razor-Komponenten für den Client. Also Client-Startup-Logik, Client-Services (+ Interfaces dafür; die Services hier sollen lediglich die Server-Services über HTTP aufrufen), Ressourcendateien (.resx), die Komponenten / das User-Interface und die Moduldefinitionen für jedes Modul.
Tippfehler: 'Staruplogik' -> 'Startup-Logik' und 'Inferfaces' -> 'Interfaces'. 'User Interface' -> 'User-Interface'. ```suggestion Im Client-Projekt liegen Code und Razor-Komponenten für den Client. Also Client-Startup-Logik, Client-Services (+ Interfaces dafür; die Services hier sollen lediglich die Server-Services über HTTP aufrufen), Ressourcendateien (.resx), die Komponenten / das User-Interface und die Moduldefinitionen für jedes Modul. ```
Im Shared Projekt wird geteilter Source-Code abgelegt, der Server und Clientseitig verwendet wird. In der Praxis bleibt's hierbei bei den EntityFramework Modellen zum speichern der Daten im Arbeitsspeicher.
Review

Rechtschreibung: 'EntityFramework' -> 'Entity-Framework'.

Im Shared-Projekt wird geteilter Quellcode abgelegt, der server- und clientseitig verwendet wird. In der Praxis bleibt es hierbei bei den Entity-Framework-Modellen zum Speichern der Daten.
Rechtschreibung: 'EntityFramework' -> 'Entity-Framework'. ```suggestion Im Shared-Projekt wird geteilter Quellcode abgelegt, der server- und clientseitig verwendet wird. In der Praxis bleibt es hierbei bei den Entity-Framework-Modellen zum Speichern der Daten. ```
Im Package Projekt findet man Skripte zum debuggen und releasen eines Moduls. Und die Nuget Spezifikation.
Review

Rechtschreibung: 'Package Projekt' -> 'Package-Projekt' (Kompositum).

Im Package-Projekt findet man Skripte zum Debuggen und Releasen eines Moduls sowie die NuGet-Spezifikation.
Rechtschreibung: 'Package Projekt' -> 'Package-Projekt' (Kompositum). ```suggestion Im Package-Projekt findet man Skripte zum Debuggen und Releasen eines Moduls sowie die NuGet-Spezifikation. ```
- Beim Debug werden die dlls, pdbs und statischen Assets wie Skripte und Stylesheets der 3 anderen Projekte in den bereits gebauten Oqtane.Server `oqtane.framework/oqtane.server/bin/debug/net10.0/...` kopiert.
Review

Grammatik/Stil: 'Beim Debug' -> 'Beim Debuggen'. Pfadangaben sollten in Backticks stehen.

- Beim Debuggen werden die DLLs, PDBs und statischen Assets wie Skripte und Stylesheets der drei anderen Projekte in den bereits gebauten Oqtane.Server `oqtane.framework/oqtane.server/bin/debug/net10.0/...` kopiert.
Grammatik/Stil: 'Beim Debug' -> 'Beim Debuggen'. Pfadangaben sollten in Backticks stehen. ```suggestion - Beim Debuggen werden die DLLs, PDBs und statischen Assets wie Skripte und Stylesheets der drei anderen Projekte in den bereits gebauten Oqtane.Server `oqtane.framework/oqtane.server/bin/debug/net10.0/...` kopiert. ```
- Beim Release wird ein Nuget Paket erstellt und unter oqtane.framework/oqtane.server/Packages abgelegt. Dort abgelegte Nuget's werden beim nächsten Start des Oqtane Servers installiert (DB Migrationen werden gemacht und nuget's entpackt).
Review

Rechtschreibung: 'DB Migrationen' -> 'DB-Migrationen'. Pfadangabe in Backticks.

- Beim Release wird ein NuGet-Paket erstellt und unter `oqtane.framework/oqtane.server/Packages` abgelegt. Dort abgelegte NuGet-Pakete werden beim nächsten Start des Oqtane-Servers installiert (DB-Migrationen werden durchgeführt und die Pakete entpackt).
Rechtschreibung: 'DB Migrationen' -> 'DB-Migrationen'. Pfadangabe in Backticks. ```suggestion - Beim Release wird ein NuGet-Paket erstellt und unter `oqtane.framework/oqtane.server/Packages` abgelegt. Dort abgelegte NuGet-Pakete werden beim nächsten Start des Oqtane-Servers installiert (DB-Migrationen werden durchgeführt und die Pakete entpackt). ```
## Systemarchitektur (Postgres / Oqtane / Nginx )
```mermaid
architecture-beta