1
我一直在使用一種分層方法將我的WinForm應用程序本文以下內容:http://msdn.microsoft.com/en-us/library/vstudio/bb384570.aspx我們爲什麼要將DataSet代碼與DataAccess代碼分開?
在這篇文章中,建議創建兩個單獨的類庫,一個類型化的DataSet類,一個用於數據訪問。我認爲這兩個實體在邏輯上相當耦合,所以爲什麼要將它們分開?
我一直在使用一種分層方法將我的WinForm應用程序本文以下內容:http://msdn.microsoft.com/en-us/library/vstudio/bb384570.aspx我們爲什麼要將DataSet代碼與DataAccess代碼分開?
在這篇文章中,建議創建兩個單獨的類庫,一個類型化的DataSet類,一個用於數據訪問。我認爲這兩個實體在邏輯上相當耦合,所以爲什麼要將它們分開?
您希望能夠引用強類型數據模型,而不引用任何低級數據訪問API。你的消費代碼不應該知道你的數據模型來自哪裏。你可能想在你的UI層使用你的數據模型。你的UI層只需要知道模型,而不是模型如何填充數據。
除了使數據層易於替換外,此方法還允許您編寫單元測試而不涉及數據庫。例如,您可以創建一個簡單的模型來提供數據併爲測試目的填充數據類。 – Kell
非常真實。我不想將單元測試帶入其中,但這是一個很好的觀點。 –
單元測試是易於替換的數據層中最常見的獎勵,但值得記住其他好處。我認爲很多開發人員低估了在不重寫大量代碼的情況下切換到不同的數據存儲方法的有用性。您可以從MSSQL服務器轉移到僅支持Oracle的服務器,或者您可以創建使用本地存儲或XML文件的脫機版本,或者您喜歡的任何其他版本。 – anaximander