ddd-repositories

___ qstnhdr ___ Real World ASP.NET MVC-Repositorys ___ qstntxt ___

In der realen Welt können Controller möglicherweise Daten aus einer Vielzahl von Datenbanktabellen und anderen Datenspeichern verwenden. Zum Beispiel:

%Vor%

Also:

  1. Soll ich für jede Tabelle ein Repository verwenden?

  2. Ich denke, hier kommt das Konzept der aggregates ins Spiel? Sollte ich ein Repository pro Aggregat haben?

  3. Fügen Sie dem Konstruktor des Controllers so viele Repositories hinzu wie nötig?

  4. Ist das ein Zeichen, dass mein Design falsch ist?

HINWEIS:

Die IMember-Schnittstelle stellt im Wesentlichen ein Hilfsobjekt dar, das dem Mitgliedschaftsanbieter ein schönes Gesicht gibt. Dh, es bringt den ganzen Code an einen Ort. Zum Beispiel:

%Vor%

Ein Problem dabei ist, diese Art von Ausgabe sicher zwischenzuspeichern. Ich kann eine neue Frage fühlen.

BEARBEITEN:

Ich benutze Ninject für DI und bin ziemlich auf der ganzen DI, DDD und TDD Sache verkauft. Naja, so ungefähr. Ich versuche auch ein Pragmatiker zu sein ...

    
___ tag123repositorymattern ___ Das Repository-Muster bietet eine Möglichkeit, eine Isolierung zwischen der Datenzugriffsebene Ihrer Anwendung und der Business-Schicht bereitzustellen ___ tag123aspnetmvc ___ Das ASP.NET MVC Framework ist ein Open-Source-Webanwendungsframework und Tooling, das eine auf Webanwendungen basierende Version des Model-View-Controller (MVC) -Musters implementiert und auf einer ASP.NET-Technologiegrundlage aufbaut. ___ tag123repository ___ Kann sich auf den Datenspeicher eines Versionskontrollsystems beziehen, das den gesamten Verlauf eines Projekts enthält, oder auf ein Objekt, das Daten zwischen der Business-Schicht einer Anwendung und ihrem Datenspeicher überträgt. ___ answer4269880 ___

Das hängt davon ab, wie "Domain Driven Design" sein wird. Weißt du, was eine Aggregatwurzel ist? Meistens wird ein generisch typisiertes Repository ausreichen, das all Ihre grundlegenden CRUD-Daten verarbeiten kann. Es ist nur dann wichtig, wenn Sie beginnen, dicke Modelle mit Kontext und Grenzen zu haben.

    
___ tag123ddrepositories ___ Ein Repository ist ein Mechanismus zum Einkapseln von Speicher-, Abruf- und Suchverhalten, der eine Sammlung von Objekten emuliert. ___ tag123multiplerepositories ___ hilf uns dieses Wiki zu bearbeiten ___ answer4269895 ___
  

%code% Soll ich für jede Tabelle ein Repository verwenden?

Wahrscheinlich nicht. Wenn Sie ein Repository pro Tabelle haben, machen Sie im Wesentlichen Active Record. Ich persönlich bevorzuge es auch, diese Klassen nicht als "Repository" zu bezeichnen, da das Konzept von Domain Driven Design "Repository" und das "Repository", das mit Linq2SQL, SubSonic, häufig verwendet wird, verworren sind usw. und viele MVC Tutorials.

  

%code% Ich denke, hier kommt das Konzept der Agregates ins Spiel? Sollte ich ein Repository pro Aggregat haben?

Ja und ja. Wenn du diese Route gehen willst.

  

'3.' Füge ich einfach so viele Repositories zum Konstruktor des Controllers hinzu?

Ich lasse meine Controller meine Repositories nicht direkt berühren. Und ich lasse meine Ansichten meine Domainklassen auch nicht direkt berühren.

Stattdessen haben meine Controller Abfrageklassen, die für die Rückgabe von Ansichtsmodellen verantwortlich sind. Die Abfrageklassen verweisen auf alle Repositorys (oder andere Datenquellen), die sie zum Kompilieren des Ansichtsmodells benötigen.

    
___ answer4269991 ___

Nun @ awrigley, hier ist mein Rat:

F: Sollte ich für jede Tabelle ein Repository verwenden?

A: Nein, wie Sie in Frage 2 erwähnt haben, verwenden Sie ein Repository pro Aggregat und führen Sie die Operationen nur für das aggregierte Root-Verzeichnis aus.

F: Füge ich einfach so viele Repositories hinzu, wie ich für den Konstruktor des Controllers benötige?

A: Ich schätze, Sie verwenden IoC und Konstruktor-Injection, also, stellen Sie in diesem Fall sicher, dass Sie nur echte Abhängigkeiten übergeben. dieser Beitrag kann Ihnen bei der Entscheidung zu diesem Thema helfen.

(pst! der leere Fang ist keine nette Sache !!);)

Prost!

    
___
2
Antworten

DDD-Repository und Factory

In meiner Anwendung ein paar Schichten. In diesem Thema wird der Schwerpunkt auf Domänen- und Infrastruktur-Ebenen liegen. Ich habe das Repository-Interface ClientRepositoryInterface im Domain-Layer. Und ich habe die Implementierung dieser Sc...
21.07.2015, 00:14
4
Antworten

Generisches Repository und gespeicherte Prozeduren verwenden

Ich arbeite an einer bestehenden Anwendung, die zuerst das generische Repomuster und die EF6-Datenbank verwendet. Ich rufe einen gespeicherten Prozess auf, der einen komplexen Typ zurückgibt, der keine vorhandene Entität in meinen Entitätsmodell...
15.01.2015, 22:20
1
Antwort

Gibt es eine Diskrepanz zwischen Domain-Driven Design-Repositories und Spring Data-Repositories?

DDD gibt Repository pro Aggregat an, aber wenn wir Spring Data JPA berücksichtigen, können wir die Vorteile nur nutzen, wenn wir die Schnittstelle pro Entität deklarieren. Wie kann diese Impedanzabweichung aufgelöst werden? Ich hoffe, Reposit...
23.07.2016, 06:11
2
Antworten

Versuchen Sie Catch in Repository

Keines der Beispiele, die ich für Repository-Muster betrachtet habe, beinhaltet jede Art von Fehlerbehandlung. Warum ist das? Sag zum Beispiel, ich habe das: %Vor% Eine Instanz, in der wir eine Einschränkung verletzen. Ich fange die DbUpdate...
06.04.2011, 03:32
4
Antworten

Wo gehören alle "Bulk" -Operationen in DDD?

In DDD ist eines der Schlüsselkonzepte das Repository, mit dem Sie Entitäten (oder Aggregatwurzeln) abrufen und dann speichern können, nachdem sie aktualisiert wurden. Nehmen wir an, wir müssen eine "Bulk" -Operation mit Entitäten durchführen...
18.02.2009, 17:45
4
Antworten

Wie ändert man das Design, so dass Entitäten keine Injektionen verwenden?

Ich habe gelesen und bin zu der Erkenntnis gekommen, dass Entitäten (Datenobjekte - für JPA oder Serialisierung) mit Injektionen in ihnen eine schlechte Idee sind. Hier ist mein aktuelles Design (alle geeigneten Felder haben Getter und Setter, u...
06.09.2017, 04:13
2
Antworten

Implementierung des domänengesteuerten Design-Repositorys in der Infrastrukturschicht

Ich habe eine Frage zu den Abhängigkeiten der DDD-Schichtarchitektur. Wenn sich die Repository-Implementierung in der Infrastrukturschicht befindet, bedeutet dies, dass die Infrastrukturschicht eine Abhängigkeit vom Domänen-Layer hat, da Entität...
15.09.2013, 05:36
6
Antworten

Wie halten Sie Ihre Komponententests einfach und isoliert und garantieren trotzdem DDD-Invarianten?

DDD empfiehlt, dass die Domänenobjekte jederzeit in einem gültigen Zustand sein sollten. Aggregatwurzeln sind dafür verantwortlich, die Invarianten und Fabriken für das Zusammenstellen von Objekten mit allen erforderlichen Teilen zu garantieren,...
14.05.2010, 10:33
2
Antworten

Können DTOs verschachtelte DTOs haben?

Ich habe das folgende Domänenmodell: %Vor% Mein Dienst hat den folgenden Code: %Vor% Mein Dienst ruft eine Wiedergabeliste und Titel aus der Datenbank ab und löst dann für jeden Titel in der Wiedergabeliste eine Abfrage aus, um zusätzlic...
29.06.2011, 16:35
3
Antworten

Real World ASP.NET MVC-Repositorys

In der realen Welt können Controller möglicherweise Daten aus einer Vielzahl von Datenbanktabellen und anderen Datenspeichern verwenden. Zum Beispiel: %Vor% Also: Soll ich für jede Tabelle ein Repository verwenden? Ich denke, hier k...
24.11.2010, 17:18