2013-05-05 41 views
2

我已經爲其數據庫使用SQL Server的客戶端編寫了相當大的C#Winforms應用程序。這最初是爲內部使用而設計和開發的。他們已經決定,他們希望將這個縮減版本授權給他們的客戶,以及在內部使用完整版本。本地基於文件的SQL Server

儘管截取版本將存儲的一些數據將通過調用web服務發送到我們的服務器,但大多數數據都要求本地存儲。

我的大部分數據庫經驗都使用了SQL Server的安裝。但是,理想情況下,應該將數據存儲在本地基於文件的數據庫中(而不必安裝和配置數據庫服務器)。他們的客戶不太可能在技術上很頭腦,他們只想要一個setup.exe來安裝軟件,而且它只是工作。

我的大部分.NET代碼都使用Linq-to-Sql與數據庫進行通信。

在這種情況下,本地數據庫的最佳選擇是什麼?應該允許我仍然使用現有的Linq代碼?

+1

http://stackoverflow.com/questions/250071/linq-with-sqlite-linqtosql – I4V 2013-05-05 14:49:56

回答

4

從我的觀點,看法的-,你必須在這裏至少有兩個選項:

這兩個數據庫都不需要在目標系統上安裝任何東西,只需在應用程序中部署一個(或多個)DLL。

數據庫是基於文件的。

我有幾個真正的應用程序運行VistaDB非常好。

這是我的優點和缺點:

臨SQL CE:

精讀SQL CE:

  • 沒有意見
  • 幾個DLL文件部署

臨VistaDB的:

  • 的SQL Server兼容語法
  • 視圖,存儲過程等。
  • 100%受控,沒有非託管代碼
  • 一個單個DLL部署
  • 可以由多個用戶(鎖定)
  • Seems to support Linq to SQL(從來沒有使用過自己,雖然)被用來

精讀VistaDB的:

  • 費用的錢比如性能
  • 減從網絡驅動器上運行時的Microsoft Access
  • 有點慢