4 Stimmen

ASP.Net MVC und N-Tier

Grüße,

Ich entschuldige mich im Voraus dafür, dass ich nicht gründlich genug recherchiert habe, um die Frage selbst zu beantworten, aber ich kann mir vorstellen, dass ich dafür einige Zeit brauchen würde, und ich würde es lieber jetzt wissen, bevor ich mehr Zeit in das Lernen investiere. Ich konnte bei meiner ersten Recherche nichts finden

Warum ASP.Net MVC verwenden, wenn Sie bereits eine mehrschichtige Architektur (Datenschicht, Logikschicht, Präsentationsschicht) verwenden? Abgesehen von der Tatsache, dass der Controller mehr Leistung hat als die Logikschicht.

Liege ich richtig, wenn ich denke, dass ich nHibernate und alle meine Datenzugriffsklassen, Entitäten und Mappings im Modellteil des MVC verwenden kann?

Wenn Sie Controller verwenden, ist es am besten, einen Großteil der Logik in einer separaten Klasse zu trennen, damit ich sie von mehreren Controllern aus aufrufen kann? Oder kann ich sie von den Controllern selbst aufrufen, in Anbetracht der Tatsache, dass ich nicht möchte, dass alle von ihnen Actions, nur normale Methoden sind.

Danke

8voto

gius Punkte 8855

MVC soll N-Tier nicht ersetzen, sondern ist eine Möglichkeit, die Präsentationsschicht zu organisieren.

Ich würde nicht sagen, dass der Controller leistungsfähiger ist als die Logikebene. Stattdessen sollte der Controller (als Teil der Präsentationsschicht) immer noch die Logikschicht aufrufen.

Controller sollten nur Daten für Views vorbereiten und Aktionen von Views verarbeiten. Sie sollten weiterhin Ihre BLL verwenden.

3voto

Matt Hinze Punkte 13498

Ja, NHibernate-Entitäten können (und sollten) an die Views übergeben werden.

Das wird Sie in einige Schwierigkeiten bringen. Sie sollten abgeflachte, nullsichere DTOs, auch bekannt als View Models, verwenden.

0 Stimmen

...mein Fehler. Ich meinte POCO-Entitäten (als Datenträger) und nicht NHibernate-Entitäten.

0 Stimmen

Ähm, NHibernate Entitäten können und sollten POCOs sein

0 Stimmen

Aber Sie können sie zum Bearbeiten der Datenbank (Speichern, Löschen usw.) aus der Ansicht heraus verwenden, was nicht gut ist. - Oder gibt es das erwähnte Problem irgendwo anders?

2voto

rodbv Punkte 5104

Damien, vielleicht sollten Sie diese 2 Beiträge lesen:

Der fette Controller

Eine architektonische Sicht auf das ASP.NET MVC Framework

1voto

En. Punkte 71

N-Tier ist eine architektonisches Muster um die Wiederverwendung, die Trennung von Belangen und die Skalierbarkeit der Schlüsselbereiche Ihrer Anwendung zu ermöglichen. Die Nicht-UI-Schichten (Business, Data, Facade etc.) sollten Unit-getestet und UI-agnostisch sein.

Die UI-Schicht ist nur eine dieser Schichten, sei es Silverlight, ASP.NET MVC, Webformulare usw.

MVC ist, wie MVP, ein Entwurfsmuster die eine bessere Testbarkeit des UI-Layers ermöglicht. ASP.Net MVC ist ein Out-of-the-Box-Framework, das dieses Muster unterstützt und durchsetzt. Das Muster war schon lange vor diesem Framework bekannt und in Gebrauch.

Aber dies ist einfach eine UI-Schicht Wahl, es sollte keine Interaktion mit Datenbanken, Dienstleistungen usw. in den Controllern sein, sie steuern den Zustand der Ansicht mit dem Modell, sollte nicht die Geschäftslogik, peresistence, Transaktionen usw. steuern.

0voto

Turnkey Punkte 8958

Um Ihre Frage zu beantworten, warum verwenden, wenn Sie bereits gehen Multi-Tier ist, dass es für mehr organisiert und Suchmaschinen-freundliche URL's macht. Außerdem ist es mehr ein Standardmuster als die anderen Muster in ASP.Net. Das macht es entwicklerfreundlicher für diejenigen, die MVC bereits auf anderen Plattformen verwenden.

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