Just nu i M3-nätverket
Gå till innehåll

Skiktad arkitektur med DataSets i .Net


jehander

Rekommendera Poster

Hej!

Skapar en 3-skiktad windowsapplikation i C#.Net. I mitt DAL (DataAccessLayer) har jag en DataManager som det är tänkt ska hantera ett DataSet. Ovan detta har jag ett BLL (BusinessLogicLayer), och överst ett GUI-lager. Tanken är att kommunikationen endast skall gå nedåt i denna hierki, dvs GUIt känner till BLL som i sin tur känner till DAL, men inte tvärtom.

 

I mitt GUI använder jag mig av DataGridView som jag vill binda data till. Enklaste sättet är då att koppla dessa direkt till mitt definierade DataSet.

 

Så till problemet. Väljer jag mitt DS som datakälla för DataGridView får jag en direkt koppling mellan detta Formulär (dvs GUI) och mitt DS (dvs DAL), vilket ju inte är önskvärt. Detta kan man dock kanske ha överseende med då man kan mena att mitt DS inte riktigt tillhör DAL utan endast är en struktur för datatransport i min applikation (vilket det ju i princip kan tolkas som). Värre är dock att mitt DS t.o.m initieras uppe i mitt GUI (i den automatgenererade koden i Form1.InitializeComponent() ) !!! Detta har jag svårt att leva med eftersom det då faktiskt är mitt GUI som får det övergripande ansvaret över mitt DS som i sin tur sköter min datakommunikation (och alltså hör till mitt DAL).

 

Jag har försökt lite olika tricks för att komma runt detta (det enklaste vore ju att i Form1.InitializeComponent inte initiera något nytt DS utan istället hämta et befintligt från ett nedanstående lager i applikationen men eftersom VS.Net2005 skapar denna kod automatiskt går det inte att koda något själv här) utan större framsteg.

 

Alternativt får man skapa och definiera sina DataGridViews helt och hållet programmatiskt men då försvinner mycket av enkelheten i VS.Net2005.

 

Finns det någon som har varit med om liknande problematik i försök att skapa skiktade applikationer? Någon som sitter på förslag/lösningar?

 

TACK på förhand /Anders

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...