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.