24. januar 2004 - 21:24Der er
9 kommentarer og 2 løsninger
Design spørgsmål ang. database adgang
Jeg skal til at lave nogle sider i ASP.NET hvor der er en del aktivitet i databasen. Hvordan bør jeg designe mit system, bør jeg lave en fælles klasse der står for alt tilgang til databasen, og hvis ja hvordan kunne en sådan klasse så se ud?
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det vigtigste for performance ved web applikationer og database adgang er at bruge en database connection pool.
Og det er indbygget i .NET, så det skal du ikke tænke på.
Så er der kode genbrugs aspektet. Hvis du skal bruge den samme kode mange steder, så er det selvfølgelig smart at lave en utility klasse som kan bruges alle steder.
Forudsat at du virkeligt sparer noget kode. Der er ikke mange pointe i at spare N linier med brug af MS klasser med N linier med kald af dine klasser.
jeg har selv et data-library jeg har lavet med de mest gengsæ funktioner... det kan ikke lave alverdens avancerede gejl, men de mest benyttede ting klarer den snildt.
Da jeg har lavet det så det virker med forskellige slags databaser er det baseret på et interface, samt en factory-class til at returnere den rigtige klasse der svarer til den database man bruger. For at simplifisere error-handling har jeg også lavet min egen DataStoreException der bliver kastet hvis nogle af database-handlingerne fejler.
arne_v>> tja.. det ved jeg nu ikke... måske ikke det store i besparelse af linjer kode, jeg slipper for det trivielle med at oprette en connection, åbne og lukke den samt try-catch... jeg vil også mene at risikoen for at lave fejl er noget mindre.
Jeg så bare pointen som at developere kunne unit teste mod f.eks. en Access database og så kunne koden uden ændringer deployes op mod SQLServer eller Oracle.
kommer helt an på hvordan dine lag er bygget op... om du henter data'erne direkte fra præsentationslaget, eller om du har noge business-logic inde også. Hvis det første er tilfældet er datareadere og datatables nok det mest brugte.
Jeg har leget lidt med Microsoft Application Blocks for .NET. Den kunne jeg godt se nogle fordele i at bruge, den spare min i hvertifal for noget kode.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.