我們正在創建與MS SQL Server的一個WinForms .NET4應用程序,我們兩個方案之間作出決定:遠程數據庫的良好做法
1)WinForms應用程序直接連接到MS SQL服務器。
2)使用3層體系結構並在兩者之間插入WebServices。
問題:
1)它是一個很好的做法,是對外打開SQL連接到「世界」?
2)你會推薦哪種情況。應用程序是面向數據的,非常簡單,沒有規劃任何其他客戶端,只有WinForms。
在此先感謝。
James
我們正在創建與MS SQL Server的一個WinForms .NET4應用程序,我們兩個方案之間作出決定:遠程數據庫的良好做法
1)WinForms應用程序直接連接到MS SQL服務器。
2)使用3層體系結構並在兩者之間插入WebServices。
問題:
1)它是一個很好的做法,是對外打開SQL連接到「世界」?
2)你會推薦哪種情況。應用程序是面向數據的,非常簡單,沒有規劃任何其他客戶端,只有WinForms。
在此先感謝。
James
肯定會選擇具有Web服務層的選項。這允許您:
當你說「很簡單,沒有規劃任何其他客戶端」,我會採取與一粒鹽,應用不斷生長,變身爲人們意識到他們可以做什麼和別的什麼,他們可以包括。您需要將其改爲「它最初將成爲一個簡單的小應用程序」。
在這個時候,WebServices對您來說可能會有些過火,但是如果您遵循一個很好的n層體系結構,他們將很容易在稍後的日期添加,而重構最少。
至於向世界展示SQL - 這不是一個好的做法。您可以很好地保護它,並確保應用程序使用的登錄(或者如果用戶擁有自己的登錄名)具有最小權限 - 只需運行存儲過程或在他們需要訪問的表上執行CRUD語句。但是,如果在暴露於世界的時候搞砸了安全性,那麼親你的SQL Server及其數據再見。這本身就是一個複雜的主題,所以你最好在有問題時發佈個別問題。