4 Stimmen

Was ist ein gutes Lesemodell für eine ASP.NET MVC-Anwendung mit CQRS?

Ich bin auf der Suche nach einer ASP.NET MVC-Anwendung zu entwickeln, die die Fähigkeit haben sollte, auf Azure in der Zukunft ausgeführt werden. Die App wird das CQRS-Design-Pattern verwenden, das für mich ziemlich neu ist. Das Schreibmodell wird NHibernate mit Mappings verwenden. Ich bin mir nicht sicher, welche Art von Datenbank ich für das Lesemodell verwenden soll. Das Lesemodell sollte die folgenden Eigenschaften haben:

  • Es muss nicht SQL-basiert sein, kann es aber sein. NHibernate könnte auch hier verwendet werden, um einfache Zuordnungen View-Modell -> Tabelle zu erstellen, ohne Fremdschlüssel. Als Datenprovider könnte SQL CE oder eine SQLite-Datenbank im Speicher verwendet werden. Dies gibt auch ein wenig mehr Flexibilität bei der Abfrage der Daten.

  • Es könnte einfach ein Objekt serialisiert / deserialisiert werden, das die View Model-Objekte so speichert, wie sie sind. Es sollte dies einfach zu bedienen und könnte Dinge wie Azure Blob-Speicher in der Zukunft nutzen. Gibt es irgendwelche guten Frameworks, die dies in einer guten Weise zu behandeln?

Ich würde mich freuen, wenn ich von einigen Leuten, die diese Art von Anwendungen bereits entwickelt haben, Feedback bekommen könnte.

3voto

Rinat Abdullin Punkte 22138

Wir verwenden Blob-Speicher für CQRS-Ansichten, die den ASP.NET MVC 2-Web-Client (und auch den Desktop-Client) sichern. Einige weitere Details Dies ist in der Produktion und ist eine große Verbesserung gegenüber der vorherigen Version von Views (NHibernate über SQL Azure)

Es kann auch einfache Indizierungen und Abfragen durchführen. Für komplexere Szenarien erwäge ich die Verwendung einer Teilmenge der Tabellenspeicherfunktionalität (nur für wirklich große Sätze, die nicht partitioniert werden können).

3voto

Roy Dictus Punkte 31481

Für das Lesemodell verwenden wir SQL Server 2008 R2 mit WCF Data Services darauf. Der WCF-Datendienst wird dann so konfiguriert, dass er nur Lesezugriff zulässt. Die Daten in der SQL Server 2008 R2-Datenbank bestehen aus einer Tabelle pro Entität, auf der spezielle Ansichten erstellt werden.

Die ASP.NET MVC-Anwendung greift nicht direkt auf die Entitäten zu, sondern fragt nur die Ansichten ab.

Ein Szenario wie dieses lässt sich gut indizieren, und die Ansichten bieten Ihnen höchste Flexibilität.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X