De pe RONUA am gasit un link despre arhitectura 4-tier.
Cel mai prost din toate vremurile…
Reproduc comentariile de acolo
1. Eu prin arhitectura 4 tier inteleg 3 tier( BD, BO, GUI) + 1 tier de security – dar admit ca pot exista mai multe variante
2. Faptul de a pune in codul functiei comentarii despre ceea ce
intoarce functia si nu in comentariul XML e destul de impopriu (vezi
“If any duplicate recods found, then return 0 that will indicate in the
UI that no records inserted as firstname already exists”)
3.
Problemele de SQL Injection obisnuite (“SELECT * FROM Person WHERE
firstname LIKE ‘%” + person.FirstName + “%’ ) precum si selectarea
tuturor cimpurilor (*) ma fac sa ma gindesc la cineva incepator in SQL
…
4. Faptul ca tine conexiunea la nivel de clasa ( vezi
PersonDAL) precum si faptul ca deschide o noua conexiune in Update fara
sa o mai inchida ( i-as spune sa foloseasca using) ma face sa ma
gindesc la cineva incepator in C#/ADO.NET …( si, mergind inapoi, din
vremea lui ADO ti se spunea: deschide tirziu conexiunea, inchide-o cit
mai repede)
5. In fine, venind la obiect, nu stiu de ce ar fi
nevoie de inca o clasa PersonBAL in ASP.NET care doar redirecteaza
catre PersonDAL.Singurul motiv pe care il vad este acela de a face
arhitectura 4-tier – in acceptia lui.
De
asemenea, ideea de a returna o tabela in functia load in loc de a
returna <Typed Datasets> <List<Person> >
<Colectie_De_Person> mi se pare proasta.Orice schimbare in BD
afecteaza in mod DIRECT GUI – ceea ce este contrar unei arhitecturi
3-tier …cu atit mai mult 4-tier…
Oh, am avut nişte flash-back-uri când am citit tutorialul. Sunt oameni care se gândesc la astfel de soluţii şi le consideră chiar foarte cool. Ba mai mult, aruncă şi un web service între BL şi UI.
Trebuie doar să ştii unde să cauţi