ASP.NET MVC3 - 3-Tier-design - Transaktion Kontroll-und business-Schicht-design Fragen

Ich bin der Gestaltung eines ASP.NET MVC3-Anwendung, und ich möchte eine klare Trennung der Interessen in einem 3-Schicht-Architektur. Ich bin mit Fluent NHibernate als ORM, die Repository-pattern für die Arbeit mit den Entitäten zugeordnet, die von NHibernate. Ich möchte hinzufügen, eine richtige business-Schicht mit einer Unit Of Work pattern, halten die MVC-Teil nur für die Präsentation (durch die Verwendung von ViewModels, die Karte, um die nHibernate Unternehmen über die business-Schicht). Dieser Artikel beschreibt die kombinierte 3-tier und MVC-Architekturen schön.

Gemäß dieser MVC + - Einheit von Arbeit + repository Artikel sehe ich nicht eine klare Unterscheidung von ein business-Schicht. Die Einheit von Arbeit, Klasse präsentiert, stark typisierte Getter für jedes repository-Typ, der schaut, geeignet für eine business-Schicht. Jedoch, es stellt eine Methode zum Speichern, die ich denke, würde übersetzen, um BeginTransaction und CommitTransaction Methoden mit nHibernate. Dies wirft einige Fragen auf:

1) Ist die Offenlegung der Transaktion die Kontrolle zu MVC-eine gute Idee? Auf welcher Stufe sollte die Transaktion Kontrolle passieren? Mir scheint, dass MVC sollten nicht verantwortlich für Transaktionen, aber wie kann man das vermeiden?

2) Sollte es werden einige automatische Weg, um Transaktionen? Das ActionFilter Umsetzung ist semi-automatisch, aber die transaction control ist eindeutig in der MVC-Abschnitt, der nicht der business-Schicht.

3) Ist das UnitOfWork-Klasse das gleiche wie ein business-Schicht-Klasse?

- wenn dem so ist, bedeutet das, wir können fügen Sie benutzerdefinierte business-logic-Methoden in es?

- wenn nicht, wickeln wir die Einheit der Arbeit mit einigen anderen Klasse(N) enthält, die business-logic-Methoden?

Ich Schätze irgendwelche Ideen oder Beispiele. Danke.

InformationsquelleAutor Alex | 2011-10-14
Schreibe einen Kommentar