Frage

Ich lese das Buch Pro ASP NET MVC Framework, und ich bin wirklich verwirrt, eine Menge Dinge.Ich habe versucht zu tun, einige der Forschung, aber ich finde, dass bei so vielen verschiedenen Ansätze und Konzepte, die sich zurzeit bei mir, es ist nur alles noch schlimmer machen.
Also habe ich ein paar Fragen:

  1. Ich weiß, MVC soll Aufteilung der Funktionalität in die drei wichtigsten Dinge:Model -> Controller -> View.Ist das MVC-einen anderen Ansatz als die drei-tier-Architektur?Oder bin ich immer noch sein sollte zu denken creating a Data Access Layer and Business Logic Layer, in meinem Projekt?

  2. Was sind Repositorien?Es ist, was wirkt, wie meine Daten Access Layer?Wo/Wie kann Repositories passen in die MVC?

  3. Das Buch spricht über die Verwendung von LINQ to SQL zur Interaktion mit der Datenbank, aber noch heißt es, dass LINQ to SQL nicht unterstützt werden in die Zukunft, und dass Microsoft fallen wird es für das Entity Framework.Wo ist der Entity Framework passen in die MVC-und wie ich mit Ihr zu interagieren?

Vielen Dank im Voraus für Eure Hilfe!
Matt

War es hilfreich?

Lösung

  1. MVC ist meist ein Muster für die Präsentationsschicht, und es konzentriert sich auf die Interaktion zwischen der Ansicht und den Controller. Das Modell kann darin gesehen werden, die Komponenten der Anwendung, die für die Aufrechterhaltung der staatlichen verantwortlich sind, einschließlich Persistenz.

    In einer einfachen Anwendung kann das Modell nur ein LINQ to SQL-Modell sein. In einer großen Unternehmen Anwendung könnte das Modell eine Datenzugriffsschicht, Business-Schicht enthalten, und eine Domäne Schicht. Die ASP.NET MVC schränkt Sie nicht, wie die M umgesetzt werden sollte.

  2. Die Repository Muster ist eine Möglichkeit, die Persistenz Teil des M zu implementieren href="http://www.martinfowler.com/eaaCatalog/activeRecord.html". Die Active ist eine andere. Welches Muster zu wählen, hängt von der Komplexität der Anwendung und Ihren Vorlieben.

    Hier finden Sie aktuelle Schritt 3 des NerdDinner Tutorial, in dem sie eine einfache erstellen Repository mit Linq to SQL.

  3. Linq to SQL nicht tot sein. Microsoft wird nach wie vor den Kern verbessern und die Kundenanforderungen hinzufügen, wo es Sinn macht, aber Entity Framework würde der primäre Fokus sein. Werfen Sie einen Blick auf diesen Beitrag für LINQ zu SQL ändert .NET 4.0 .

    in

    kann das EF verwendet werden ist eine ähnliche Art und Weise wie LINQ to SQL, aber es ist auch flexibler, so dass es auf andere Weise genutzt werden kann. Zum Beispiel EF4 wird mehr oder weniger Unterstützung Ausdauer der eigenen POCO-Objekte in einer Domain Driven Design.

Andere Tipps

Ja, ich denke, MVC, ist ein anderer Ansatz als "die" 3-tier-Architektur, denke ich, dass Sie hier gemeint (der Architektur, wo Sie vor allem 3 Projekte DAL, BL, und, UI).Die Haupt-Idee hinter MVC ist die Trennung von Bedenken zwischen einzelnen Komponenten (Modell, Ansicht und Controller).Die Steuerung ist die Komponente, die verantwortlich für den Umgang mit der Benutzer-Anforderungen, und in den meisten Fällen ist es Unternehmen mit der "Modell" - Komponente, um die gewünschte Ansicht, wie eine Antwort an den Benutzer Anforderung.Der Unterschied zwischen dieser und der traditionelle 3-tier-Architektur ist, dass der DAL und der BL sind jetzt gruppiert und benannt, die Modell-und ja, Sie müssen noch zum erstellen dieser Komponenten.
Was sind Repositorien?
Martin Fowler erwähnt die definition eines repository "Vermittelt zwischen der domain und data-mapping-Ebenen mit einer Sammlung-wie Schnittstelle für den Zugriff auf Domänen-Objekte" Repositories sind Teil der data access layer, die Sie nicht auf Daten zugreifen, die durch Sie selbst, Sie vermitteln zwischen der Domäne und dem Datenmapping-Unternehmen, und natürlich sollten Sie in Ihrem Modell-Ordner/Projekt.

Wird Linq zu SQL veraltet?
KEINE und das gleiche Buch heißt so, auch Damien Guard ( Entwickler bei der ADO.NET team) erwähnt in einem seiner blog-posts, die Linq-zu-SQL enthalten .NET 4.0.

Wie interagieren Sie mit EF?
Wie Sie mit Linq to SQL.Wie Linq to SQL, Entity Framework, werden Ihre Zuordnung von Entitäten, und befinden sich in der Modell-Projekt als gut.
Hoffe, das hilft!

Ich denke, man über diese Dinge ein wenig verwirrt sind, und sie sind verwirrend, also lasst uns langsam über sie gehen.

  1. N-Tiered Architektur und MVC ist unterschiedlich, aber miteinander verflochten. N-Tier in der Regel spricht über Trennung von Data Access, Business-Logik und die Benutzeroberfläche. einige Leute können jedoch argumentieren, dass es völlig getrennt BLLs von der Benutzeroberfläche nicht möglich ist; MVC-Adressen, die in einer solchen Art und Weise, dass es einen entsprechenden Controller zu Ihrem BLL sprechen, und auf Ihre Ansicht, im Gegensatz Ihre Ansicht Gespräch direkt auf Ihrem BLL zu haben.

  2. Ja, Repositories, das ist ein Ansatz, eine DAL mit . Es gibt viele Möglichkeiten, dies zu tun, und Sie sollten sich nicht beschränken, was in dem Buch besprochen wird.

  3. Das Buch nur verwendet LINQ to SQL ASP.NET MVC auf den schnellsten Weg zu zeigen, aber es ist nicht der einzige Weg, Stop über LINQ Denken für eine Minute auf SQL. ASP.NET MVC verwendet werden kann, ob Sie ein ORM wie NHibernate verwenden, oder Sie verwenden Ebene ADO.NET + DAL Fabrik oder was auch immer - was Sie nicht gehen zu können, verwenden diejenigen ASP.NET ObjectDataSources sind, die Sie per Drag & Drop mit Ihrer Benutzeroberfläche.

Wie für Entity Framework, Brad Abrams schrieb eine schöne Anleitung auf wie Entity Framework mit ASP.NET MVC verwenden, das sollte Ihre letzte Frage abdecken.

HTH

  1. Ja, Sie müssen noch Datenzugriff und Business-Logik Schichten selbst erstellen. Manche mögen argumentieren, dass die Controller-Schicht die Business-Logik, aber ich persönlich bevorzuge die Trennung zwischen realer Business-Logik (z Preisberechnung) von Bildschirm Business-Logik (z Ereignishandler für die Schaltfläche „OK“). Sie werden dann diese aus der Controller-Klasse aufrufen. Die Controller-Klasse steuert die Logik für Ihren Bildschirm und verwaltet die Übersetzung von Daten / Business-Logik-Schicht auf den Bildschirm Wert.

  2. die ASP.NET MVC-Framework stellt keine Beschränkung auf das „Modell“ Schicht, was bedeutet, können Sie verwenden, was Sie wollen mit NHibernate, LINQ to SQL oder Entity Framework. Ich verwende LINQ to SQL, weil es einfach ist.

  3. Nicht sicher, nie das Buch gelesen. Ich habe gerade Scott Hanselman NerdDinner Projekt von Codeplex heruntergeladen und als Leitfaden für ASP.NET MVC-Websites zu schreiben.

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