2016-06-05 20 views
6

Kürzlich lernte ich über ORM (Object Relational Mapping) und die 3-Tier-Architektur-Stil (Präsentation, Geschäft und Datenpersistenz). Wenn ich richtig verstehe, kann ich die Datenpersistenzschicht in DTO und DAO-Schicht trennen.Was ist der Unterschied zwischen DAL, DTO und DAO in einem 3-Tier Architektur Stil mit MVC

Ich möchte gerne verstehen, wie die folgenden Teile in einer Datenpersistenzschicht zusammenarbeiten.

  • DAL (Access Layer Data)
  • DTO (Data Transfer Object)
  • DAO (Data Access Object)

In einem Hinzu kommt, dass ich gelernt, dass

In größeren Anwendungen ist MVC nur die Darstellungsebene einer N-Tier-Architektur.

habe ich wirklich verwirrt, wie es zum Beispiel in einer 3-Tier-Architektur-Stil sogar möglich sein kann, wo die MVC die nur eine Präsentationsebene ist, und die DTO, DAO, DAL ist nur ein Teil der Daten Persistenzschicht . Ich bin total verloren.

Ich würde mich freuen, wenn mir jemand die Wahrheit sagen würde, wie es zusammen funktioniert.

Bitte schließen Sie diese Frage nicht, weil die vielen verschiedenen Ausdrücke, ich sah es überall diese Dinge sind im Grunde in großen Anwendungen miteinander verwandt und ich kann mir nicht vorstellen, wie es funktioniert.

Ich freue mich über jede Antwort!

Antwort

6

Lets mit Zweck jedem Start: -

DTO

Data Transfer Objects. Diese werden normalerweise verwendet, um Daten vom Controller zum Client (JS) zu übertragen. Der Begriff wird auch für POCOs/POJOs von wenigen verwendet, die tatsächlich die aus der Datenbank abgerufenen Daten enthält.

DAO

Data Access Object ist eine der Entwurfsmuster verwendet DAL zu implementieren. Dies erstellt und führt Abfragen auf der Datenbank aus und ordnet das Ergebnis POCO/POJO unter Verwendung verschiedener anderer Muster einschließlich "Abfrageobjekt", "Data Mapper" usw. zu. Die DAO-Ebene könnte weiter unter Verwendung des "Repository" -Musters erweitert werden.

DAL

Data Access Layer abstrahiert Ihre Datenbankaktivitäten mit DAO/Repository/POCO usw. ORMs Ihnen helfen, Ihre DAL zu bauen, aber es könnte auch ohne sie umgesetzt werden.

MVC

Model-View-Control ist ein Muster, das verwendet wird, Ansicht (Darstellung) von Geschäftslogik zu trennen. Für MVC spielt es keine Rolle, ob DAL implementiert ist oder nicht.Wenn DAL nicht implementiert ist, geht die Datenbanklogik einfach in Ihr Modell ein, was kein guter Ansatz ist.

In größeren Anwendungen MVC ist die Präsentationsstufe nur einer N-Tier Architektur.

Modelle verbrauchen die meisten Ihrer Geschäftslogik wie oben angegeben. Wenn in der N-Tier-Anwendung die Geschäftslogik für die Wiederverwendbarkeit über Anwendungen/Plattformen hinweg vollständig getrennt ist, werden Modelle in MVC als anämische Modelle bezeichnet. Wenn BI in dieser Anwendung in Ihrer Anwendung nicht erneut verwendet werden muss, können Sie Model verwenden, um es zu speichern. Keine Verwirrung, oder?

Ich würde mich freuen, wenn mir jemand die Wahrheit darüber sagen würde, wie es funktioniert zusammen.

Alle MV * -Muster definieren nur die Idee/das Konzept; Sie definieren die Implementierung nicht. MV * -Muster konzentrieren sich hauptsächlich auf die Trennung der Sicht von BI. Konzentriere dich darauf.

Weitere Informationen zu verschiedenen Objekten, die Daten enthalten, finden Sie unter this.

+0

Vielen Dank für Ihre Antwort! Jetzt ist es definitiv besser, aber ich habe immer noch ein bisschen verwirrt. Kannst du bestätigen, dass ich es richtig verstanden habe? Also, mit dem ORM (was ist wie eine Brücke zwischen der OO-Welt und den relationalen Datenbanken) kann ich DAL bauen. Die DAL besteht aus DTO und DAO, was mir hilft, skalierte Anwendung zu erstellen, sonst geht es einfach zum Modell und es ist eine schlechte Übung. Bin ich richtig? –

+1

Sie haben es richtig ... :) –

+0

Huurraaay, danke! :) –