解決方案的設置之間的通信:BLL和DAL
- DAL(類庫)
- BLL(類庫)
- 通用(類庫(一些常用的功能 - 枚舉,日誌,異常.. 。))
- 應用1(Windows應用程序)
- 應用2(Windows應用程序)
- Web應用程序(Web應用程序)
- ...
比方說,我有一個客戶實體,它是:
- 在SQL服務器
- 一個CustomerDataTable在DAL
- 一個Customer類BLL表
- a BLL.Customer class in all the applications
什麼樣的對象應該BLL和DAL用於通信的 - DataTable
或List<Customer>
(例如)?在第一種情況下,BLL邏輯應該將Customer對象轉換爲DataTable並將其發送給DAL。在secod情況下,DAL層應該知道Customer類,它位於BLL層中。但原始的DLL引用DAL而不是相反...
我應該把所有的類放入單獨的程序集,它被所有其他程序引用(Common,BusinessObjects,...)嗎?在這種情況下,我可以在我的所有項目中使用Customer類。
當我知道時,我應該甚至打擾分離DAL和BLL,只有一個BLL會使用我的DAL。在這種情況下,我可以將它們合併爲一個項目。
PS - 我正在閱讀有關數據表,很多人說,我們不應該使用它們。什麼是更好的選擇?也許是時候讓我學習一些ORM映射工具:)
我喜歡這一個。有一個問題 - 如果我在Model(或Domain,Entities)程序集中有Customer類,那麼這個類是否也有所有的方法,比如GetAllCustomers,GetCustomer(int id)...?還是應該模型只有屬性,方法應該在BLL中? – sventevit 2010-10-17 09:29:17
我會把Customer類作爲一個數據實體,所以只有屬性和沒有像「GetAllCustomers」這樣的方法。該方法我會放入BLL中,使用DAL進行查詢。 – Ami 2010-10-17 09:33:05
在這種情況下,我可以向BLL添加部分類,它們從Model assembly擴展我的基類並添加它們的方法? – sventevit 2010-10-17 09:36:24