Ik ben me nu aan het verdiepen in de PetShop (versie 4.0). Wat me opvalt is het grote aantal projecten dat in de solution zit. Als ik de repeater met categorieen op de homepage terug probeer te leiden naar de database dan kom ik heel wat code tegen:
De repeater krijgt een IList<CategoryInfo> van de class BLL.Category. Deze krijgt op zijn beurt een IList<CategoryInfo> van de class SQLServerDAL.Category (geinstantieerd middels een statische methode van de class DALFactory.DataAccess).
Die class gebruikt DBUtility.SQLHelper, een aangepaste Data Access Application Block (kant en klaar spul van MS uit de Enterprise Library) om Categorien uit de database te halen en maakt daar de in het begin genoemde IList<CategoryInfo> van, zo'n verzameling bevat dus classes Model.CategoryInfo.
Nou, als ik dat goed beschreven heb, dan heb ik de theorie redelijk helder (volgens mij wel). Maar het wordt er niet makkelijker op. Kortom, een bespreking van de PetShop 4.0 lijkt mij erg interessant omdat ik nog geen ervaring heb met bouwen van applicaties op deze manier.
Bijvoorbeeld:
Hoe kun je dit geheel vereenvoudigen zodat het makkelijk te overzien is? BLL en Model kunnen volgens mij samengevoegd worden, dus i.p.v. BLL.Category en Model.CategoryInfo één class Category?
En hoe gaat de DAL eruit zien? Die SQLHelper is reuzehandig, dat scheelt veel code, maar die hele factory kan toch weg als je niet verwacht een andere DB te gaan gebruiken? Dus dan wordt de SQLServerDAL gewoon dé DAL.
En hoe zit het nu met het heen en weer sturen van gegevens tussen lagen? Ik lees regelmatig in weblogs dat je DataSets naar je BLL kan sturen, en ik lees ook regelmatig dat je dat juist niet moet doen. Wat is nu verstandig/sneller/veiliger?
De repeater krijgt een IList<CategoryInfo> van de class BLL.Category. Deze krijgt op zijn beurt een IList<CategoryInfo> van de class SQLServerDAL.Category (geinstantieerd middels een statische methode van de class DALFactory.DataAccess).
Die class gebruikt DBUtility.SQLHelper, een aangepaste Data Access Application Block (kant en klaar spul van MS uit de Enterprise Library) om Categorien uit de database te halen en maakt daar de in het begin genoemde IList<CategoryInfo> van, zo'n verzameling bevat dus classes Model.CategoryInfo.
Nou, als ik dat goed beschreven heb, dan heb ik de theorie redelijk helder (volgens mij wel). Maar het wordt er niet makkelijker op. Kortom, een bespreking van de PetShop 4.0 lijkt mij erg interessant omdat ik nog geen ervaring heb met bouwen van applicaties op deze manier.
Bijvoorbeeld:
Hoe kun je dit geheel vereenvoudigen zodat het makkelijk te overzien is? BLL en Model kunnen volgens mij samengevoegd worden, dus i.p.v. BLL.Category en Model.CategoryInfo één class Category?
En hoe gaat de DAL eruit zien? Die SQLHelper is reuzehandig, dat scheelt veel code, maar die hele factory kan toch weg als je niet verwacht een andere DB te gaan gebruiken? Dus dan wordt de SQLServerDAL gewoon dé DAL.
En hoe zit het nu met het heen en weer sturen van gegevens tussen lagen? Ik lees regelmatig in weblogs dat je DataSets naar je BLL kan sturen, en ik lees ook regelmatig dat je dat juist niet moet doen. Wat is nu verstandig/sneller/veiliger?