Avatar billede 2AA Nybegynder
20. januar 2010 - 23:18 Der er 9 kommentarer og
1 løsning

DAL / BLL hvorfor?

Hej,

Kan nogle forklare fornuften i DAL/BLL? Hvorfor skal man bruge det? -kan nemlig ikke rigtig se pointen i det.!

-tak! ;-)
Avatar billede arne_v Ekspert
20. januar 2010 - 23:27 #1
Det er generelt godt at opdele sin applikation i lag.

Fordele:
* et lag kan genbruges af et nyt hoejere lag
* et lag kan aendres internt uden at paavirke andre lag saalaenge interfacet er uaendret
* generelt er det nemmere at finde noget fordi et lag er mindre end den samlede applikation

PL, BLL og DAL er en af mange mulige lag opdelinger. Den mest almindelige opdaeling.
Avatar billede nidyahou Praktikant
20. januar 2010 - 23:43 #2
derudover er det jo af sikkerhedsmæssige grunde også godt med et DAL fordi injections ikke burde være mulige som jeg forstår det.
Avatar billede 2AA Nybegynder
20. januar 2010 - 23:56 #3
Hi arne

forstår bare ikke hvorfor man skal skrive mere kode. Når man har det stående i sidens codebehind? -Er det simpelhen kun tænkt, som opdeling af lag. For at gøre det mere overskuligt?
Avatar billede arne_v Ekspert
21. januar 2010 - 01:08 #4
Både din .aspx og .aspx.cs er en del af PL, hvis du bruger en traditionel 3 lags model.
Avatar billede arne_v Ekspert
21. januar 2010 - 01:11 #5
Principielt kan man godt skrive et DAL som er sårbart overfor SQL injection.

I praksis ses det sjældent, fordi når man er negyndt at strukturere tingene, så falder det naturligt også at bruge parameters eller en ORM i sit DAL.
Avatar billede 2AA Nybegynder
21. januar 2010 - 23:33 #6
det hjalp lidt! svar arne_v!
Avatar billede arne_v Ekspert
21. januar 2010 - 23:35 #7
OK
Avatar billede janus_007 Nybegynder
21. januar 2010 - 23:44 #8
Jeg går udfra du med BLL og DAL mener opdelte assemblies og altså ikke blot en arkitektur?
Jeg mener ikke der er nogle grunde til at bruge lagdelte applikationer medmindre vi snakker store systemer. Ofte kan det komplicere langt mere end det gavner, jeg har mange gange set systemer starte op med både den ene og anden "hvis... hvis.... hvis...." for til sidst at ende med noget langt mere simpelt.
Der findes også mange kritikere til netop den traditionelle n-layer, http://jeffreypalermo.com/blog/the-onion-architecture-part-3/

2AA nu siger du sidens code behind, du skal huske at overholde retningslinjer for klasser og unit of work mv. altså god skik for hvordan en applikation opbygges.

Hvis du eks.vis udvikler i .NET så er det nye DAL jo blevet til en datamodel, den kan bruges direkte i eks.vis en serviceklasse som din asp.cs kan anvende :)

Jeg tror også den traditionelle 3-lags model ofte implementeres "fordi det plejer vi", men om det er smart - tjaa... det kan hurtigt blive en lang diskussion som allerede findes i 1000 versioner på nettet :)
Avatar billede 2AA Nybegynder
22. januar 2010 - 01:54 #9
tak janus_007, det var en fin kommentar! ;-)
Avatar billede arne_v Ekspert
22. januar 2010 - 04:41 #10
En lag opdeling vil afspejle sig i både source kode og deployment enheder. Men source koden er langt den vigtigste, da det er der arbejdet ligger ved adskillese.

Opdeling i lag giver mening for stort set alle virkelige programmer. Sådan nogen skal videreudvikles og genbruges - ofte i rigtigt mange år.

Jeff Palermo er ikke imod lag. Han har bare fundet en anden måde at tegne lag på. Og så har han nogle meninger om hvordan interfacet mellem lagene skal være - nemlig brug af interfaces og IoC framework. Det sidste er ret nyt i .NET verdenen, men har altså været brugt i 5-10 år i andre sammenhænge.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester