2012-12-09 4 views
5

ich viele Artikel sprechen über 3 Ebenen-Architektur in C#, aber ich sehe, dass:Wie 3 Ebenen-Architektur in C# implementieren

  • Fast Bussiness Logic Layer (BLL) als Objektzuordnung in der Datenbank entsprechenden Tabelle verwenden . Dieses BLL-Objekt hat einige Methoden wie diese:

    + GetData(): zurückgeben;

    + Update(this);

    + Insert(this);

    + Delete(this);

  • Dieses BLL-Objekt ruft die entsprechende DAL (Data Access Layer) auf, die zur entsprechenden Tabelle der Datenbank ausgeführt wird.

  • Ich denke, wenn wir mit den oben genannten Methoden, können wir nur eine Aufzeichnung und aktualisieren. Aber wenn wir viele Datensätze haben und sie in einen Datensatz einfügen möchten, können wir alle geänderten Datensätze aktualisieren ? Müssen wir die Schleife für alle Datensätze verwenden, um das zu tun?
  • Darüber hinaus wird in der Datenbank gibt es viele Tabellen miteinander in Beziehung, so wie können wir sie in Dataset, Beziehungen und hinzuzufügen, zu aktualisieren, löschen Datensätze wie BindingSource Verwendung mit einem Combobox und einem DataGridView? Und wie können wir Code in dieser Situation trennen?

Antwort

3

Es gibt 2 cooles Projekt über drei Ebenen-Architektur in C#.

3-tier architecture in C# und Three Layer Architecture in C# .NET. Beide Projekte sind einzigartig für Sie.

enter image description here

enter image description here

+1

Vielen Dank. Ich habe 2 Beispiele gelesen, ich kann etwas eine grundlegende 3 Schichten Architektur verstehen. Aber sie bieten nur ein einfaches Beispiel mit einem Objekt (Benutzer). Wenn wir 'DataSet' verwenden, um alle Datensätze anzuzeigen, wie können wir alle Datensätze aktualisieren, die auf 'DataSet' geändert wurden, alle Datensätze in Schleife, nicht wahr? Und wenn wir viele Objekte haben, die miteinander in Beziehung stehen, ist das die beste Art, Daten anzuzeigen und sie zusammen zu aktualisieren! Können Sie mir komplexere Beispiele geben? –

+1

Beide erwähnten Artikel lassen die Business-Logik-Schicht von der Dal-Schicht abhängig sein. Das ist nicht der richtige Weg. Ihr Geschäftsmodell (auch bekannt als Domänenmodell) sollte das Zentrum Ihrer Anwendung sein, der Rest verweist auf die IT. Ein guter Name dafür ist das Zwiebelmodell. Google es, es lohnt sich! – Maarten

+2

Zwiebel-Architektur - http://jeffreypalermo.com/blog/the-onion-architecture-part-1/ – Maarten

11

die oben beschreiben eine sehr einfache Architektur eines 3-Schichten-Modell.

  1. DAL (Data Access Layer) interagiert direkt mit der Datenbank, so dass alle SQL-Operationen nur innerhalb der DAL ausgeführt werden.
  2. BLL (Business Logic Layer) funktioniert wie ein Vermittler zwischen DAL und dem Presentation Tire.
  3. Es ist keine direkte Kommunikation zwischen DAL und Presentation Layer möglich.
  4. Obwohl es keine physische Präsenz des Schicht-Einheit ist, sondern Entity kapselt alle Informationen/Daten und leitet sie von einer Schicht zur anderen.
  5. So die alle Datenbankobjektnamen und das Datenbank-Schema in der DAL beschränkt, die auf die Anwendung eine zusätzliche Sicherheitsschicht gibt werden.
  6. Da Geschäftsregeln/Logiken innerhalb BLL definiert werden, wird kein Update auf die Geschäftslogik der DAL auswirken und die Präsentationsschicht

enter image description here

Dieses Diagramm beschreibt eine tatsächliche Implementierung einer 3-Tier Modell.

  1. Der Datenzugriffsdienst und der Datenbankserver können in einem einzelnen Server gehostet werden.
  2. Meistens SQL Server 2000/2005/2008 oder Oracle kann auf Windows 2000/2003 Server gehostet werden.
  3. Business Server macht den gesamten Vorgang über Web Service/Remoting/WCF verfügbar.
  4. Ein hoch konfigurierter Server mit Windows 2000/2003 kann zum Hosten des Business Service verwendet werden, andernfalls kann auch Microsoft BizTalk Server verwendet werden.
  5. Präsentationsebene oder der Client Verbraucht den auf dem Business Server bereitgestellten Service mithilfe des Proxy über http: // pipeline.
  6. Der Client kann ein beliebiger eigenständiger Computer sein, auf dem die Anwendung installiert wird, wenn eine Desktop-Anwendung (Win-Form oder Konsolenanwendung) oder ein Browser zum Ausführen der Webanwendung installiert ist.
  7. Daten/Informationen werden von einer Entität gekapselt und über ein Netzwerk von einem Ort zu einem anderen übertragen, gefolgt von dem gesamten Netzwerkprotokoll.
+0

Vielen Dank! Ich habe mehr über 3 Ebenen und 3-Schicht-Architektur verstanden. Beispiel: In einer Tabelle werden Benutzerinformationen gespeichert, sodass jeder Benutzer eine Entität zugeordnet hat. Wenn wir alle Benutzer in eine datagridview zeigen und alle Benutzer, die Informationen geändert haben, aktualisieren möchten, müssen wir jede Entity, die jeder Zeile entspricht (using loop), um sie zu aktualisieren, kapseln? Welches ist der beste Weg. Danken. Entschuldigung wegen meines schlechten Englisch –

+0

Das größte "falsche Schicht" Problem, das ich im Laufe der Jahre gesehen habe, ist Business-Logik in der UI-Schicht. Eine gute Faustregel lautet: "Wenn ich 2 Präsentationsebenen hätte, müsste ich den Code, den ich schreibe, duplizieren?" Wenn ja, verschieben Sie es in die Business-Schicht. – granadaCoder

Verwandte Themen