From 846364351ef78e344358a6cc3f88154bb849bd8f Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Wed, 6 Mar 2024 16:41:13 +0100 Subject: [PATCH] Update README.md for internal software clarification --- README.md | 62 ++++++++++++++++++------------------------------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index ea1dea3..300c91a 100644 --- a/README.md +++ b/README.md @@ -1,49 +1,27 @@ -# DigitalData.Core Bibliothek +# DigitalData Core Bibliothek -Die `DigitalData.Core` Bibliothek bietet eine Reihe von Diensten, Repositories und Hilfsklassen zur Unterstützung der Entwicklung sauberer Architektur in .NET-Anwendungen. Diese Bibliothek umfasst Implementierungen für CRUD-Operationen, Active Directory-Dienste und Ausnahmebehandlung. +## Überblick +Die DigitalData Core Bibliothek implementiert das Konzept der *Clean Architecture* für die Entwicklung von skalierbaren und wartbaren Anwendungen. Diese Bibliothek bietet eine strukturierte Grundlage, um CRUD (Create, Read, Update, Delete) Operationen effizient über eine REST-API zu verwalten. -## Komponenten +## Clean Architecture +*Clean Architecture* ist ein spezifischer Begriff, der eine Software-Entwurfsphilosophie beschreibt, bei der die Geschäftslogik und die Benutzerinteraktion von externen Agenten wie Datenbanken und Frameworks getrennt wird. Diese Entwurfsphilosophie unterstützt die Erstellung von Systemen, die unabhängig von UIs, Frameworks, Datenbanken sind und sich durch einfache Testbarkeit, Wartbarkeit und die Möglichkeit zur Erweiterung auszeichnen. -### CRUD-Operationen +## CRUD Controller +Der CRUD Controller dient als zentraler Einstiegspunkt für CRUD-Operationen innerhalb der REST-API und interagiert direkt mit dem Service Layer, um Geschäftslogikanforderungen zu erfüllen. Er nutzt Data Transfer Objects (DTOs), um Daten zwischen Client und Server zu übertragen, und sorgt für eine klare Trennung zwischen der API-Schicht und der Geschäftslogik. -- `ICRUDRepository`: Definiert einen Vertrag für CRUD-Operationen auf einer Entität des Typs `TEntity` mit dem Identifikator des Typs `TId`. +### Funktionen des CRUD Controllers +- **Erstellen (Create):** Ermöglicht das Hinzufügen neuer Einträge zu einer Datenquelle. +- **Lesen (Read):** Ermöglicht das Abfragen von Einträgen aus einer Datenquelle, entweder durch Einzelabfragen oder das Abrufen aller Einträge. +- **Aktualisieren (Update):** Ermöglicht das Aktualisieren bestehender Einträge in einer Datenquelle. +- **Löschen (Delete):** Ermöglicht das Entfernen von Einträgen aus einer Datenquelle. -- `CRUDRepository`: Bietet eine generische Implementierung für CRUD-Operationen innerhalb eines gegebenen `DbContext`. +## Verwendung +Die Bibliothek ist so gestaltet, dass sie leicht in bestehende .NET-Anwendungen integriert werden kann. Sie setzt auf bewährte Praktiken und etablierte Design-Patterns, um die Entwicklung von RESTful APIs zu vereinfachen und zu standardisieren. -- `ICRUDService`: Definiert einen Vertrag für CRUD-Operationen auf der Dienstebene unter Verwendung von Datenübertragungsobjekten (DTOs). +### Voraussetzungen +- .NET 6 oder höher +- Erfahrung mit RESTful API Design +- Grundkenntnisse in Entity Framework Core und AutoMapper -- `CRUDService`: Bietet generische CRUD-Operationen für einen bestimmten Entitätstyp. - -### Active Directory-Dienste - -- `ADService`: Ermöglicht die Interaktion mit dem Active Directory, um Suchvorgänge durchzuführen und Daten in Objekte des Typs `T` zu lesen. - -- `ADFilterAttribute`: Spezifiziert die Filterabfrage für Active Directory (AD)-Operationen. Dieses Attribut kann auf Klassen angewendet werden, um benutzerdefinierte Filterabfragen während AD-Operationen zu definieren. - -### Ausnahmebehandlung - -- `MappingResultNullException`: Repräsentiert Fehler, die während der Zuordnung auftreten, wenn das Ergebnis unerwartet `null` ist. Diese Ausnahme wird speziell verwendet, um anzugeben, dass eine AutoMapper-Zuordnungsoperation ein `null`-Objekt ergab. - -### Hilfsklassen - -- `AttrHelper`: Bietet Hilfsmethoden zum Arbeiten mit Attributen. - -### API-Controller - -- `CRUDControllerBase`: Eine Basiskontrollerklasse, die generische CRUD-Operationen für einen bestimmten Entitätstyp bereitstellt. - -- `ADControllerBase`: Ein Basiskontroller für die Interaktion mit dem Active Directory-Dienst. - -## Anwendung - -Diese Bibliothek ist für Entwickler konzipiert, die saubere Architekturprinzipien in ihren .NET-Anwendungen implementieren möchten. Sie bietet eine robuste Grundlage für die Entwicklung von Repositories, Diensten und API-Controllern mit Fokus auf Wartbarkeit, Testbarkeit und Erweiterbarkeit. - -## Hinweise - -- Die Verwendung von `IMapper` und `IServiceResult` ermöglicht eine flexible Datenübertragung und Fehlerbehandlung. - -- Die Implementierung der Active Directory-Dienste setzt voraus, dass die Anwendung auf der Windows-Plattform ausgeführt wird, aufgrund der Verwendung von `DirectorySearcher`. - -- Die Ausnahmebehandlungsklassen helfen bei der Identifizierung von Konfigurations- oder Datenquelleproblemen, die während der Automapper-Zuordnung auftreten können. - -Für weitere Details zur Implementierung und Nutzung dieser Bibliothek, prüfen Sie die Dokumentation und Beispiele im Code. \ No newline at end of file +## Fazit +Die DigitalData Core Bibliothek ist eine interne Softwarelösung der Digital Data Firma, entworfen, um die Entwicklung nach den Prinzipien der Clean Architecture zu unterstützen. Mit dem CRUD-Controller erleichtert sie die Umsetzung von Create, Read, Update und Delete-Operationen innerhalb der firmeneigenen Anwendungen und trägt zur Einhaltung hoher Standards in Wartbarkeit und Testbarkeit bei. \ No newline at end of file