Frage

Ich bin ein Designdokument und die Leute in meinem Team zu schreiben sind bereit, den Schritt von ASP.NET Web Form zu ASP.NET MVC zu tun. Das ist großartig, aber ich habe eine harte Zeit zu verstehen, wie MVC workswith in einem 3-Tier (Data Layer, Business Layer und Presentation Layer) Architektur. Können wir einen Teil der Darstellungsschicht das Model, View und Controller sagen, dass sind? Ist das Modell Teil des Business Layer?

Kurz gesagt, wie MVC und 3-Tier-Architektur zusammenarbeiten können? Danke für die Hilfe!

War es hilfreich?

Lösung

halte ich ASP.Net MVC in der Präsentationsschicht sein. Die „Model“ Klassen verwendet es sind wirklich Modelle Ansicht, die die Datenstrukturen von Ihren Ansichten benötigt beschreiben. Alle Ihre Geschäftslogik und Datenzugriff sollte von Ihrem MVC-Modelle und Controller getrennt bleiben.

Auch die allgemeine „Best Practice“ für MVC ist der Controller-Code so einfach wie möglich zu halten, was in der Regel bedeutet, dass einige für Anwendungsdienst in Ihre Business-Schicht die Griffe der Heben schwerer Lasten einzuführen.

Andere Tipps

Die Präsentationsschicht ist Ihre Ansicht.

Die Data Layer ist Ihr Modell (empfehlen bei den Repository-Mustern suchen).

Die Business-Schicht bleibt, was es ist.

Der Controller kann die Business-Schicht für die Funktionalität aufrufe, wenn das Objekt geladen wird, oder das Modell kann die Business-Schicht für die Funktionalität nennen, wenn ein bestimmtes Ansichtsmodell angefordert wird, aber ansonsten bleibt es gleich.

Die Steuerung sollte nicht expansive Geschäftslogik in er hat - setzen, dass in seinem eigenen Selbstversorger-DLL

.

Das ist ziemlich subjektiv. Do, was macht Sinn für Ihr Team.

kann MVC ziemlich flexibel sein und so gut wie kein MVC-Framework, in allen Sprachen, tut Dinge, die gleiche Art und Weise. Auch in dem .net Raum. FubuMVC, Spring.net und MS MVC tun all die Dinge auf leicht unterschiedliche Weise.

Zu allererst Sie nicht zu MVC zu ändern, nur weil ... Wenn Sie etwas haben, das ich Sie brauchen nicht denken, funktioniert.

Aber Sie Frage, das Modell in der MVC-Muster ist jede Art von Klasse, die Ihr Unternehmen Problem darstellt, Wich jede Art von Berechnung sein kann, Geschäftsregeln oder Datenzugriffsklassen. Im MVC-Framework gibt es einen Ordner als eine Möglichkeit, eine Lösung für Sie zu schlagen, so dass Sie Ihre Modellklassen in dort setzen können, aber Sie müssen nicht, können Sie verschiedene Projekte erstellen, damit Ihre Unternehmen Probleme lösen, und das ist Ihr Modell. Also hier können Sie andere prasseln definieren, dass Sie für instante, können Sie das Repository-Muster und implemente verwenden, die mit NHibernate oder Entity Framework.

Die Ansichten sind nur Web-Seiten zu zeigen und erhalten Informationen zu und von dem Benutzer.

Und die Steuerung ist der Eingang zu Ihrer Anwendung, die Klassen, die die Anforderungen empfangen werden, rufen Sie die notwendigen Modelle und Umleitung auf die angegebene Ansicht.

Hope Ich half könnte.

N-Tier mit MVC funktioniert gut. Folgen Sie einfach SOLID Prinzip und einige andere, und Sie werden in der Lage Ihre Anwendung zu halten lose gekoppelt und Zusammenhalt.

Ich würde sagen, dass die Bücher auf MVC 3 Lesen und beobachten pluralsight.com Videos Ihre größten Ressourcen sind. Sie können nicht mit gehen „tun, was für Ihr Team funktioniert.“ Wenn etwa Arbeitskollegen namens Johnny und Timmy eine Reihe von Logik in einen Controller, nur weil die kurzfristig Frist Eile, dass „Werke für Ihr Team“ setzen wollen, dass es nicht richtig macht / gut / smart.

Ich habe so viele schlechten Artikel im Internet gefunden, dass es unheimlich ist, wie viele Menschen nach unten einer dunklen Straße des Elends geführt zu werden. Folgen Sie den Pfad glücklich. Verwenden Sie für Stackoverflow Meinung wie die Kunst, aber Scheck mit Msdn Artikel, mvc Bücher und pluralsight.com

Ich weiß, es ist nur ein Wikipedia-Link, aber es gibt einige Informationen hier in Bezug auf n-Tier gegen MVC-Architektur.

Ein „Tier“ ist eine Einheit der Bereitstellung, während ein „Layer“ in MVC eine logische Trennung von Verantwortung innerhalb Code ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top