From ba53f14e4dff3030d26e0dc775365826536dfe18 Mon Sep 17 00:00:00 2001 From: KoCoder Date: Fri, 27 Feb 2026 23:30:39 +0100 Subject: [PATCH] NEW: Oqtane Allgemein --- ...dividueller-teil-Konstantin-Hintermayer.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md b/Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md index 0ab3b67..ad103fb 100644 --- a/Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md +++ b/Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md @@ -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] + +Ein Modul soll neue Funktoinalitäten in das CMS hinzufügen und ein Theme soll die ganze 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. + +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. + +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. + +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. + +Im Package Projekt findet man Skripte zum debuggen und releasen eines Moduls. Und 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. +- 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). + ## Systemarchitektur (Postgres / Oqtane / Nginx ) ```mermaid architecture-beta