概述
在二開(族庫、算量等)或者大部分管理軟件的開發中,多數系統架構是基於數據庫設計的,那麼怎麼設計數據訪問層呢?
一、設計框架
圖中分成三塊:
1、左邊的xxxServices爲app公開訪問數據接口;
2、中間紅色部分爲底層操作數據庫接口,通過依賴注入的方式給xxxServices使用;
3、xxx DAL爲底層操作數據庫接口的具體實現,可能是SQL Server的實現,可能是用於程序開發的的Fake數據提供的實現,也可能是阿里雲、騰訊雲等雲服務器的數據訪問的實現等;
二、導出DAL代碼
1、使用“PowerDesigner”設計數據表和它們之間的關係;
2、使用“PowerDesigner”導出SQL腳本,比如SQL Server腳本,在SQL Server 數據庫管理工具中運行即可把所有表都創建出來;
3、使用“動軟代碼生成器”連接數據庫,導出Model、DAL和DLL層代碼,它的腳本挺有意思的,在<# ... #>間直接寫C#代碼。軟件本身提供了默認腳本,可使用直接導出代碼看看效果;
4、測試、使用。默認腳本一般不會符合自己要求,可根據導出代碼修改腳本。
二、代碼實現
三、總結
關於數據訪問層,一些第三方工具完全可以實現快速搭建,比如EF、Nhibernate等等,大家可嘗試下。自己設計、實現架構意在更加深刻理解其設計理念,使用第三方工具可能會更快、更穩健,畢竟數據訪問層的設計邏輯可以固化了,不過筆者沒用過。。
上述系統設計詳解見“Microsoft .NET企業級應用架構設計”一書;
對於一些簡單的應用場景是否需要這麼複雜的設計,比如,程序只需要訪問數據庫中一張表、三兩字段即可,你讓我搞這麼大堆代碼,是否合適?
本人的看法是:怎麼簡單怎麼來。不過,在多數情況,碼代碼是枯燥了,if else寫到吐、Ctrl + C/V把鍵盤都按褪色了 - -#,那麼何不找點有意思的事情做做,比如架構設計與實現?
下載地址:https://download.csdn.net/download/w051108/14021892