Frage

Ich versuche Asp.net Mvc zu lernen, so versuche ich, aus dieser Tutorial.

Sie sprechen über das Repository-Muster und wie ist es einfach, anstatt direkt von nur anrufen Linq zu Sql zu einer anderen Datenzugriffstechnologie zu ändern.

LINQ innerhalb einer Controller-Klasse SQL macht es schwierig, Datenzugriffstechnologien in der Zukunft zu wechseln. Zum Beispiel können entscheiden, ob Sie mit Microsoft LINQ wechseln, um mit dem Microsoft Entity Framework als Datenzugriffstechnologie auf SQL. In diesem Fall müssten Sie jeden Controller neu zu schreiben, die die Datenbank in Ihrer Anwendung zugreift.

Hinweis: Ich habe nie wirklich verstanden, wie eine Schnittstelle vor dem Lesen dieses Tutorial gearbeitet und es ist immer noch nicht zu 100% klar. Ich sehe es jetzt als eine Art ‚Vorlage‘ für eine Klasse.

Nach der erfolgreichen LINQ to SQL verwenden dachte ich, es wäre schön, Ado.net Entity Framework auszuprobieren, da ich viel darüber gelesen haben. Sie sagten, dass das Repository-Muster verwenden würde es einfach zu wechseln, so dachte ich, ich würde das testen.

Meine Frage lautet: Was soll ich zu Ado.net EF ändern tun

?

Das ist, was ich denke, ich tun soll.

  • Fügen Sie die Movie.edmx Datei und konfigurieren (mein Film Tabelle hinzufügen).
  • Schreiben Sie eine neue Klasse basierend auf der IMovieRepository und es vielleicht MovieEFRepository nennen.
  • Ändern Sie den Parameter im Controller Konstruktor MovieEFRepository. Dies ist das erste, was ich da im Tutorial seltsam finde sie sagen, dass das Repository nicht verwendet werden Sie alle Controller ändern erzwingen, wenn Sie zu einer anderen Datenquelle ändern. Nicht muss ich sowieso jeden Controller ändern, da ich die MovieRepository Klasse bin Angabe?
  • Die letzte Anpassung Ich glaube, ich tun müssen, um die Ansicht zu ändern. Weil es die Produktklasse verwendet, die durch die LINQ to SQL-Designer erstellt wurde. Ich bin nicht sicher, wie ich werde, dies zu tun. Ich denke, ich sollte einen Gegenstand benutzt haben, die nicht abhängig von der dbml Datei war?

Verzeih mir, wenn ich eine etwas vereinfachte Ansicht von Asp.net Mvc haben. Ich bin Webdesignerin mit viel Interesse für Asp.net webdevelopment.

War es hilfreich?

Lösung

Sie könnten Ihr Repository wegen Einspritzung entkoppelt, nicht, wenn Sie nur die Beispiele gefolgt wegen

public MoviesController() : this(new **MovieRepository**())

ich Ihnen empfehlen, über IOC zu lesen, ist einfach und sehr interessant, können Sie ioc Container wie Schloss windsor verwenden und.

Damit Ihr contoller nur einen Konstruktor haben, das mit der Schnittstelle und wird nicht geändert werden müssen.

Mit Ihren Einheiten können Sie das gleiche zu tun, dass mit den Controllern, eine Schnittstelle für jede Entität erstellen und das IOK Muster verwenden, mit tha werden Sie nur Ihre Konfigurationsdatei für Ihre IoC-Container ändern.

Wenn Sie nicht über diese Dinge tun, die rechte Seite, müssen Sie alle ändern Sie gesagt hat.

Ich hoffe, dass die Hilfe! traurig über mein Englisch!

Andere Tipps

So nach ein paar Tagen des Lesens und viel googeln habe ich es zu arbeiten. Zuerst habe ich versucht, um herauszufinden, was IoC (Inversion of Control) tatsächlich gemeint.

Eine der ersten Seiten fand ich eine Website mit einem Screencast über Unity war. Das ist ein DI / IoC-Framework für .Net.

es Betrachtet man nun das ist eigentlich ein sehr gutes Screencasts und Beispiel dafür, wie einfach es ist, die Einheit und IoC / DI zu verwenden. Zu der Zeit habe ich es nicht ganz verstehen, so dass ich auf ging und hielt googeln.

Eine Website, die ich lief weiter in war derjenige von Martin Fowler.

Für mich eine Person, die eine Codierung Anfänger dieser Website ist ein wenig zu abstrakt. Auch dies klingt vielleicht komisch, aber die Schrift, Zeilenhöhe und Typographie auf dieser Website war wirklich schrecklich, das machte es noch schwerer zu lesen.

Die nächste Website war ich über Windsor Castle lesen, da Alfredo Fernández sagte, es ist einfach zu benutzen.

Die Dokumentation war nicht schlecht, aber ich hatte einige Probleme Umwandlung ihrer „Getting Started“ einfaches Beispiel zu meinem Asp.net Mvc-Anwendung. Ebenfalls Teil 2 und 3 fehlten aus ihrem Anfang.

Danach ich auf der Suche nach dem verschiedenen Frameworks gestartet, um zu sehen, ob ich ein wirklich einfaches Beispiel finden kann. Wenn ich nur an dem ersten Screencasts sehe wieder hätte ich es viel früher fest, aber irgendwie verlor ich Spur davon.

Ich hatte eine Menge Probleme mit XML-Konfigurationsdateien und ich konnte nicht scheinen, sie zu arbeiten. Ich habe versucht, Windsor, Struktur Karte und Spring.net aber ich habe mich immer mit den XML-Dateien stecken.

So entschied ich mich auf die Asp.net Mvc-Website zu gehen, weil das ist, wo ich das Lernen über Asp.net Mvc gestartet. Ich fand die ersten Screencasts und Präsentationen MIX09 sehr klar und es verstand das meiste, was über die Menschen sprechen. Ich hatte an dem zweiten Screencasts von Rob Conery stecken, wenn die Fassade Anwendung zu bauen. Da ich nun ein wenig mehr über Repository und IOC / DI wusste ich dachte, es wäre eine gute Idee zu sein, wieder zu starten beobachten Rob Conery des Screencasts. In einem der Screencasts er über das Hochladen alle Proben auf Codeplex spricht.

ging ich auf Codeplex und fand heraus, Sie können die Quelldatei Konsultierts ohne sie herunterzuladen. Ich habe versucht, herauszufinden, wie Rob Conery IOC / DI mit seinen Repositories behandelt. So war ich froh, dass er zu sehen war Structure Map, sondern in eine XML-Konfigurationsdatei des Verwendens er eine Bootstrap-Klasse, die alle Schnittstellen zu ihren konkreten Klasse registriert.

mit meiner Webapplikation Nach dem Versuch, endlich konnte ich Struktur Karte bekommen in meiner Anwendung zu arbeiten (Hooray).

Er zeigte mir auch, wie die Abhängigkeit von meiner Produktklasse zu beheben, die von Linq zu Sql kommt. Er schafft ein zusätzliches Objekt, das dann durch „neues Produkt wählen {}“ aufgerufen wird, in den Linq Abfragen.

Wow, diese Antwort ist ein wenig länger als geplant, aber ich hoffe, dass dies andere Menschen wie mir hilft, die sehr Anfänger sind bei der Codierung und Asp.net Mvc.

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