3-Schichten Architektur

25/06/2009 - 14:43 von Peter Krause | Report spam
Hallo,
ich will die 3-Schichten Architektur in meinem
Programm (SQL-Server und WindowsForms)
anwenden.
Dazu habe ich drei Projekte (Schichten) erzeugt:
Machine.Data
Machine.Business
Machine.UI

Zwischen den Schichten sollen Schnittstellen den
Datenaustausch vornehmen. Und genau da liegt
mein Problem.

1. Wieviele Schnittstellen benötige ich?
- eine für jede Schicht(IUI, IBusiness, IData)?

2. Der User will sich an die Datenbank anmelden:
- Wie greift das Click-Ereignis vom Machine.UI
auf die Methode Connect in der Klasse SqlDataBase
von der Schicht Machine.Data zu? Über drei
Schnittstellen: IUI > IIBusiness > IData ?
Gibt es dafür ein Beispiel im Internet?

3. Der User will sich alle Maschinen im DataGridView
anzeigen lassen. Wie ist da der Ablauf über die Schnittstellen,
denn in diesem fall werden auch Daten wieder angezeigt?

Hat jemend Links, welche in einfacher Form dies erklàren?


Peter
 

Lesen sie die antworten

#1 Peter Fleischer
25/06/2009 - 15:18 | Warnen spam
"Peter Krause" schrieb im Newsbeitrag
news:

ich will die 3-Schichten Architektur in meinem
Programm (SQL-Server und WindowsForms)
anwenden.
Dazu habe ich drei Projekte (Schichten) erzeugt:
Machine.Data
Machine.Business
Machine.UI

Zwischen den Schichten sollen Schnittstellen den
Datenaustausch vornehmen. Und genau da liegt
mein Problem.

1. Wieviele Schnittstellen benötige ich?
- eine für jede Schicht(IUI, IBusiness, IData)?



Hi Peter,
einfacher und übersichtlicher ist es, wenn du für die Zusammenarbeit von UI
und Business (BL) einen Satz von Interfaces deklarierst und zwischen BL und
Data (DAL) auch einen Satz von Interfaces deklarierst. Um zu klàren, welche
und wie viele Interfaces zu deklarieren sind, solltest du zuerst horizontale
Prozesse definieren, z.B. Stammdatenverwaltung, Bewegungsdatenerfassung,
Auswertungen. Für jeden diesen Prozess benötigst du zwischen einem
Schichtenpaar jeweils einen "Satz von Interfaces", die ggf. von einem
Basis-Interface erben, im einfahcsten Fall nur ein Interface.

2. Der User will sich an die Datenbank anmelden:
- Wie greift das Click-Ereignis vom Machine.UI
auf die Methode Connect in der Klasse SqlDataBase
von der Schicht Machine.Data zu?



Überhaupt nicht. Das Klick-Ereignis löst einen Prozess aus. Das könnte
beispielsweise eine Anforderung zur Anzeige von Daten sein. Diese
Anforderung wird einsprechend Interface vom BL bedient. Was der BL macht,
ist dem UI egal, Hauptsache die im Prozess definierte Funktionalitàt wird
erfüllt.

Über drei
Schnittstellen: IUI > IIBusiness > IData ?



Der BL wiederum bekommt eine Anforderung (z.B. zur Bereitstellung von Daten
entsprechend Interface) und stellt diese Daten zusammen, indem ggf.
verschiedenen Tabellen und Dateien abfragt werden und zusàtzliche Infos
berechnet wird.

Gibt es dafür ein Beispiel im Internet?



Suche mal nach "n-tier".

3. Der User will sich alle Maschinen im DataGridView
anzeigen lassen. Wie ist da der Ablauf über die Schnittstellen,
denn in diesem fall werden auch Daten wieder angezeigt?



Der UI fragt beim BL nach einer Menge von Datenobjekten und, nachdem diese
bereitgestellt wurden, bindet er sie für die Anzeige.

Der BL bekommt die Anfrage und holt sich die Daten (z.B. mittels DataReader
oder über das Füllen eines DataTable-Objektes), mappt die ggf. in die
Business-Objekt und stellt die Menge (z.B. Liste) mit den angeforderten
Business-Objekten dem UI bereit.


Viele Grüsse
Peter

Ähnliche fragen