I've been trying to improve on TBH for a while now, I have changed the DB to postgresql and the DB schema so that an article table is divided into three separate tables. Its been a slow process and I've learned a great deal from this book.
My question starts from the changing the database schema for article. Within ArticleDetails for the DAL which as a wrapper, but I found that implementing all the fields within the ArticleDetails makes my program run slower, so I created separate wrappers called ArticleList, ArticleEdit and ArticleDetails. There seems to be alot of way around this, but I'm looking for a best solution, so I can have one ArticleProvider, that uses three separate Article wrappers, that handles each of these wrappers within separate BLL/Article.cs (ArticleEdit.cs, ArticleList.cs etc)
The problem I'm having is that within the AddEditArticle.aspx, you use an ObjectDataSource which uses TypeName="TT.TBH.BLL.Articles.Article" but since separating the tables, and the logic, I can't not use the Article.cs, because getting the list and updating and inserting is within three separate business logic. Or I can use one business logic for the CRUD features, but will need three separate wrappers. Hmm, it seems to me that the logic is all joined together so that one table holds one feature, IE Article table, Fourm & post table, etc.
Is there another example of a more modular design? Could someone who has separated the DB tell me how they solved this problem? I'll keep trying and I do like the architecture itself, especially the use of DataAccess to be able to use different DBs.
Breaking it down:
DAL/ArticleProvider - ArticleDetails,