2010-12-19 18 views
0

Ich arbeite an einer .net 2.0 Windows-Anwendung. Die Datenzugriffsebene [DAL] führt gespeicherte Prozeduren aus und gibt den Datenreader/Datensatz an die Geschäftsschicht [BL] zurück.DAL/BL Design Frage

Die BL, die sich auf DAL dll bezieht, iteriert durch den Datenleser/Datensatz, liest Spaltenwerte, erstellt Geschäftsobjekte und gibt sie an die UI-Ebene zurück.

Angenommen, ist es in Ordnung, dass die Business-Schicht auf Spalten einer Datenbanktabelle verweist?

Ist dies eine gute Praxis für Schicht-Design?

Wenn ich Business-Objekt von der DAL anstelle von Dataset/Datenreader zurücksende, dann muss mein DAL-Projekt auch auf BL dll verweisen. Also, wird es hier keine zirkuläre Referenz geben? Danke.

+0

mögliches Duplikat von [Data Access Library Return DataSet oder Objekt] (http://stackoverflow.com/questions/398680/data-access-library-return-dataset-or-object) – jgauffin

Antwort

3

Es ist nicht gute Praxis, da Ihre Datenschicht Implementierungsdetails offen legt und somit Informationsverbergung und Kapselung verloren gehen.

Sie sollten Objekte übergeben, die Ihre Daten modellieren.

Zum Beispiel sollten Sie anstelle einer order Datenzeile ein Order Objekt übergeben.