Sunuer

Sunuer Manage Sunuer Easy Ergänzende
Projektvorstellung

Projektstruktur


SunuerManage ├─ appsettings.json # Konfigurationsdatei der Anwendung, enthält Datenbankverbindungszeichenfolge, Anwendungseinstellungen usw. ├─ bin # Verzeichnis mit kompilierten Binärdateien │ ├─ Debug # Kompilierungsausgabe im Debug-Modus │ └─ Release # Kompilierungsausgabe im Release-Modus ├─ Code # Geschäftslogik und Datenzugriffsschicht │ ├─ Admin # Geschäftslogik für Administratoren │ │ ├─ AdminDal.cs # Datenzugriffsschicht für Administratoren │ │ ├─ AdminModel.cs # Datenmodell für Administratoren │ │ ├─ AdminPowerDal.cs # Datenzugriffsschicht für Administratorenrechte │ │ ├─ AdminPowerModel.cs # Datenmodell für Administratorenrechte │ │ ├─ AdminRolesDal.cs # Datenzugriffsschicht für Administratorrollen │ │ └─ AdminRolesModel.cs # Datenmodell für Administratorrollen │ ├─ Articles # Geschäftslogik für Artikel │ │ ├─ ArticleCategoryDal.cs # Datenzugriffsschicht für Artikelkategorien │ │ ├─ ArticleCategoryModel.cs # Datenmodell für Artikelkategorien │ │ ├─ ArticlesDal.cs # Datenzugriffsschicht für Artikel │ │ └─ ArticlesModel.cs # Datenmodell für Artikel │ └─ ManageSet # Geschäftslogik für Verwaltungseinstellungen │ └─ ManageSetModel.cs # Datenmodell für Verwaltungseinstellungen ├─ Controllers # Controller (API), behandeln HTTP-Anfragen │ ├─ Admin # Controller für Administratorfunktionen │ │ ├─ AdminController.cs # Administrator-Controller │ │ ├─ AdminPowerController.cs # Controller für Administratorenrechte │ │ └─ AdminRolesController.cs # Controller für Administratorrollen │ ├─ Articless # Controller für Artikel │ │ ├─ ArticleCategoryController.cs # Controller für Artikelkategorien │ │ └─ ArticlesController.cs # Controller für Artikel │ ├─ Files # Controller für Dateioperationen │ │ ├─ CaptchaController.cs # Controller für CAPTCHA │ │ ├─ FilesController.cs # Controller für Dateiupload │ │ └─ QRCodeController.cs # Controller für QR-Code-Erzeugung │ └─ ManageSets # Controller für Verwaltungseinstellungen │ └─ ManageSetController.cs # Controller für Verwaltungseinstellungen ├─ Data # Datenzugriffsschicht und Datenbankkontext │ ├─ ApplicationDbContext.cs # Datenbankkontext zur Interaktion mit der Datenbank │ └─ SunuerManage.sql # Datenbankskriptdatei (Backup/Restore) ├─ Pages # Razor-Seiten für die Frontend-Darstellung │ ├─ About.cshtml # "Über uns"-Seite │ ├─ Cases.cshtml # Seite für Fallbeispiele │ ├─ Contact.cshtml # Kontaktseite │ ├─ Error.cshtml # Fehlerseite │ ├─ Index.cshtml # Startseite │ ├─ News.cshtml # Seite für Nachrichten │ ├─ newsview.cshtml # Detailseite für Nachrichten │ ├─ Manage # Seiten für das Verwaltungs-Backend │ │ ├─ Admins # Seiten zur Administratorverwaltung │ │ │ ├─ AdminAdd.cshtml # Seite zum Hinzufügen eines Administrators │ │ │ ├─ AdminEdt.cshtml # Seite zum Bearbeiten eines Administrators │ │ │ ├─ AdminList.cshtml # Seite mit der Administratorenliste │ │ │ ├─ AdminPassWord.cshtml # Seite zum Ändern des Administrator-Passworts │ │ │ ├─ AdminPowerAdd.cshtml # Seite zum Hinzufügen von Administratorrechten │ │ │ ├─ AdminPowerEdt.cshtml # Seite zum Bearbeiten von Administratorrechten │ │ │ ├─ AdminPowerList.cshtml # Liste der Administratorrechte │ │ │ ├─ AdminRolesAdd.cshtml # Seite zum Hinzufügen von Administratorrollen │ │ │ ├─ AdminRolesEdt.cshtml # Seite zum Bearbeiten von Administratorrollen │ │ │ ├─ AdminRolesList.cshtml # Liste der Administratorrollen │ │ │ ├─ Adminview.cshtml # Detailseite eines Administrators │ │ ├─ admin_index.cshtml # Startseite des Verwaltungs-Backends │ │ ├─ Agreement.cshtml # Seite für Nutzungsvereinbarung │ │ ├─ Articless # Seiten zur Artikelverwaltung │ │ │ ├─ ArticleCategoryAdd.cshtml # Seite zum Hinzufügen einer Artikelkategorie │ │ │ ├─ ArticleCategoryEdt.cshtml # Seite zum Bearbeiten einer Artikelkategorie │ │ │ ├─ ArticleCategoryList.cshtml # Liste der Artikelkategorien │ │ │ ├─ ArticlesAdd.cshtml # Seite zum Hinzufügen eines Artikels │ │ │ ├─ ArticlesEdt.cshtml # Seite zum Bearbeiten eines Artikels │ │ │ ├─ ArticlesList.cshtml # Artikelliste │ │ ├─ consoles # Seiten für die Konsole │ │ │ ├─ console.cshtml # Konsolenseite │ │ ├─ Login.cshtml # Login-Seite │ │ ├─ LoginOut.cshtml # Logout-Seite │ │ └─ ManageSets # Seiten für Verwaltungseinstellungen │ │ ├─ ManageSetEdt.cshtml # Seite zum Bearbeiten von Verwaltungseinstellungen │ ├─ Shared # Gemeinsame Views und Layouts │ │ ├─ Menu.cshtml # Menü-View │ │ ├─ _indexLayout.cshtml # Layout für die Startseite │ │ ├─ _Layout.cshtml # Standard-Layout │ │ ├─ _ManageIndexLayout.cshtml # Layout für das Verwaltungs-Backend │ │ └─ _ValidationScriptsPartial.cshtml # Teil-View für Validierungsskripte │ ├─ _ViewImports.cshtml # View-Importdatei, definiert Namensräume │ └─ _ViewStart.cshtml # Einstiegsdatei für Views, legt das Layout fest ├─ Tools # Hilfsklassen │ ├─ ApiResponse.cs # API-Antwort-Hilfsklasse - Einheitliches API-Rückgabeformat │ ├─ CBC.cs # Verschlüsselungs-/Entschlüsselungshilfsklasse │ ├─ ConfigurationHelper.cs # Liest Werte aus appsettings.json │ ├─ DataTableToList.cs # Hilfsklasse zur Konvertierung von DataTable in Listen │ ├─ DBHelper.cs # Datenbank-Hilfsklasse │ ├─ JsEncryptHelper.cs # JS-Verschlüsselungs-Hilfsklasse │ └─ Tools.cs # Allgemeine Hilfsklasse ├─ wwwroot # Statische Ressourcen │ ├─ css # CSS-Dateien │ ├─ favicon.ico # Website-Icon │ ├─ images # Bilder │ ├─ js # JavaScript-Dateien │ └─ Uploadfile # Verzeichnis für hochgeladene Dateien ├─ Program.cs # Haupteinstiegspunkt der Anwendung ├─ Properties # Projekteigenschaften │ ├─ launchSettings.json # Startkonfigurationsdatei │ └─ PublishProfiles # Veröffentlichungsprofile │ ├─ FolderProfile.pubxml # Veröffentlichungsprofil für Ordner │ └─ FolderProfile.pubxml.user # Benutzerabhängiges Veröffentlichungsprofil für Ordner ├─ Sunuer Manage Disclaimer (Read Carefully).txt # Haftungsausschluss des Projekts
├─ SunuerManage.csproj # Projektdatei, enthält Projektkonfiguration und Abhängigkeiten ├─ SunuerManage.csproj.user # Benutzerbezogene Projektkonfiguration ├─ SunuerManage.sln # Lösungsdatei, enthält Projektstruktur und Einstellungen



Konfigurationsdatei launchSettings.json



{ "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:32430", //http://localhost:32430,Zeigt an, dass die Anwendung über diese Adresse zugreift. "sslPort": 0 } }, "profiles": { "http": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "http://localhost:5021", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" //Development: Entwicklungsumgebung. Staging: Vorabveröffentlichungsumgebung. Production: Produktionsumgebung. } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }


Konfigurationsdatei appsettings.json

"ConnectionStrings": {
  "DefaultConnection": "Server=nhdSQLEXPRESS;Database=SunuerManage;User Id=sa;Password=123456;MultipleActiveResultSets=true;TrustServerCertificate=True;Max Pool Size=100;Min Pool Size=5;Pooling=true;"
},

Server=nhd/SQLEXPRESS: Legt den zu verwendenden Datenbankserver und die Instanz fest.

Database=SunuerManage: Gibt die Standarddatenbank an, mit der verbunden werden soll.

User Id=sa; Password=123456: Anmeldeinformationen (Benutzername und Passwort) für den Login bei SQL Server.

MultipleActiveResultSets=true: Erlaubt das gleichzeitige Ausführen mehrerer Datenlesevorgänge in derselben Datenbankverbindung (Session). Beispielsweise kann während die eine Abfrage Daten liest, eine weitere Abfrage ausgeführt werden. Insbesondere bei Verwendung von Entity Framework ist das Setzen dieses Parameters auf true wichtig, wenn man in einer Verbindung parallel Daten lesen und andere Operationen ausführen möchte.

TrustServerCertificate=True: Bei Verwendung von TLS/SSL zur Verschlüsselung der Verbindung zu SQL Server wird festgelegt, ob das vom Server bereitgestellte Zertifikat vertraut werden soll. True bedeutet, dass das Zertifikat auch dann als vertrauenswürdig eingestuft wird, wenn es nicht von einer vertrauenswürdigen Zertifizierungsstelle signiert ist oder andere Validierungsprobleme auftreten. Sicherheitshinweis: In Produktionsumgebungen sollten selbstsignierte oder nicht öffentlich vertrauenswürdige Zertifikate vorsichtig behandelt und richtig konfiguriert werden, da sonst ein Sicherheitsrisiko bestehen kann.

Max Pool Size=100; Min Pool Size=5; Pooling=true: Steuert das Verhalten des Datenbank-Verbindungspools (Connection Pool).

Pooling=true: Aktiviert das Connection Pooling, was die Leistung bei häufiger Datenbanknutzung steigert und das ständige Öffnen/Schließen von Verbindungen reduziert.

Max Pool Size=100: Legt fest, wie viele inaktive Verbindungen maximal im Pool behalten werden. Wird dieser Wert überschritten, warten neue Verbindungsanfragen auf das Freigeben einer Verbindung oder es wird ggf. eine Ausnahme ausgelöst, abhängig von der Konfiguration.

Min Pool Size=5: Legt fest, wie viele inaktive Verbindungen mindestens im Pool behalten werden. Bei der ersten Verbindung zur Datenbank werden 5 Verbindungen vorgehalten, um zukünftige Anfragen schneller zu bedienen.