[ aleksandarpopov @ 15.02.2006. 13:37 ] @
Pitanje je za iskusnije...
Kada projektujete aplikaciju, koji pristup koristite: da li koristite svoje poslovne klase i kolekcije tipa class Radnik koji ima (lupam) id, ime, prezime i svoje metode.... zatim neke kolekcije za upravljanje sa setovima tih poslovnih klasa uz koriscenje Readera i DataCommand-a za citanje/pisanje u bazu
ili
koristite dataadaptere, datasetove,datatabele (ne mislim na VC#2005! vec na ranije verzije .NET-a) Sta je po vama bolje, svoje klase ili datasetovi, dataadapteri?
Pozdrav....
[ kaan @ 15.02.2006. 17:29 ] @
Pa trebace ti i jedno i drugo :-)

Objektni model bi aplikacija morala imati. Dakle dobar model i API koji ce ostali elementi da koriste.
Za imalo ozbiljniju aplikaciju 3-slojna struktura obavezno. Dakle DataLayer, BusinessLayer i UI. Za manje aplikacije za "jednokratnu" upotrebu, a u cilju brzeg razvoja, ja koristim 2-slojnu arhitekturu.
Datasetove lichno ne volim da koristim za web aplikacije...puno su mi spori...i u glavnom su tu (kod mene) u UI dijelu kada treba da iskombinujem razlicite prikaze.

Eto :-)
Pozdrav
KAAN
[ Fedya @ 15.02.2006. 19:06 ] @
Slazem se za troslojne aplikacije ali se ne slazem po pitanju datasetova. Znaci dblayer ima mogucnos rada sa (uvek tipiziranim) datasetovima dok UI dobija samo entity klase.

Sto se nacina pristupa tice: MS Entrerprise Library pistupa storovanim procedurama odakle se podaci prebacuju u datasetove a nakon toga helper metode pretvaraju datasetove u objekte. UI ima pristup samo klasama ne vidi dblayer ni datasetove.
[ aleksandarpopov @ 15.02.2006. 19:49 ] @
Kada koristite troslojne aplikacije, da li imate neku hijerarhiju klasa za svoje poslovne klase tj. da li krecete od neke osnovne poslovne klase pa iz nje nasledjujete ostale konkretne klase ili .... nesto trece?
Kako bi ta hijerarhija otprilike trebala izgledati (ako nije poslovna tajna :)) ?
Pozdrav....
[ mmix @ 15.02.2006. 20:40 ] @
Hmm, enterprise library, bese neko vreme

Skandalozno ili ne, al to nisam koristio ima bar godina. Narocito sad u novom .NET-u, i sa novim parcijalnim klasama. Po svom obicaju da leva ruka ne zna sta desna radi, MS je opet promenio pravila igre i spojio business i data layer. U principu to im je i bio cilj ranije ali sad su ga doterali do savrsenstva Znam da si pitao za vs2003, ali kad sam vec tu:

Entity je postao tabela u DataSet-u i kao takav se tretira, a integracija tabela sa adapterima u okviru samog dataset-a je dovela do toga da se entity moze lako u okviru iste klase sinhronizovati sa izvorom podataka, dok se ceo business layer moze da se smesti u parcijalni deo klase i opsluzivati UI. A sve to strongly-typed, bez helper klasa. Efektivno to je dovelo do toga da se napusti jedna-tablea-jedan-dataset pristup i da se DataSet-ovi formiraju po UseCase-ovima.
Postoje dve zamerka ovom pristupu; a) dataRow je zakucan, ne moze se naslediti i time u njega ubaciti neka kontrolna logika, vec se to mora raditi iz BL-a. b) Nema apstrakcije niti deljenja kontrolne logike po vertikali (nasledjivanjem tipa Racunovodja je Radnik, itd) vec samo kompozicijom (ako racunovnodja i menadzer dele kotrnolnu logiku onda se ona kreira u posebnoj klasi i instancira u BL-u za racunovodje i za menadzere).

U principu svaki metod ima dobre i lose stvari; mi se drzimo tipiziranih datasetova, i tretiramo generisani DataTable kao entity, cak i u vs2003. Pravimo poseban DAL (Data Access Layer)sa komponenetama natovarenim DataAdapterima i poseban BL koji sinhronizuje UI i DAL. Sve DAL komponente nasledjuju baznu koja nosi konekciju (da bi svi adapteri bili bazirani na istom connection stringu). Sam UI od BL-a dobija tipizirani DataSet, DataTable ili DataRow, u zavisnosti od primene.

Slazem se da je Ent Library brzi, ali od nas se ne trazi resenje koje je 2ms brze, nego resenje koje je lako transferovati, upgradovati i odrzavati.
[ ntadic @ 16.02.2006. 10:54 ] @
Odgovor na ovo pitanje je, kao sto bi rekao dobri Dr Arslanagic :"Zavisi."

Sve ti je to stvar ukusa, samo za svaki konkretan sluchaj treba voditi rachuna o 50 stvari. Najbitnije je naci rjesenje koje se moze najbrze implementirati, i koje ce pri tome, kasnije zadavati najmanje kichmobolje (u kasnijim fazama zivotnog ciklusa)...

Znachi :

* vrijeme - sto krace;
* kichmobolja - sto manja;


[Ovu poruku je menjao ntadic dana 16.02.2006. u 11:56 GMT+1]
[ aleksandarpopov @ 16.02.2006. 17:28 ] @
Hvala na komentarima...zanimalo me je da li uz sve datasetove, dataadaptere, datatabele i ko zna sta :) jos ima smisla praviti troslojnu aplikaciju i objektni model ...
pozdrav...