2010-07-04 53 views
0

我正在開發一個桌面應用程序,它需要收集數據(來自用戶)並以安全的方式將其存儲在本地。當互聯網連接可用時,它需要將這些數據與中央數據庫同步。該應用程序是WPF,我想利用WPF的新數據綁定功能。我真的希望這個應用程序是輕量級的,因此沒有正式的業務對象,只是直接綁定到XML文件。然而,我的問題是安全性。我可以看到加密XML文件,這是一個現實的選擇。我想使用XML的另一個原因是與其他應用程序(在桌面上)的接口,這種應用程序發生了很多事情。XML,SQL Server Compact還是其他?

另一方面,有SQL Server Compact,但要使用它,我很可能希望業務對象表示表,並與其他應用程序進行接口,而我需要將數據吐出到XML。安全性很簡單,只需在數據庫中添加一個密碼即可。

你們認爲什麼?有沒有我沒有考慮到的問題,我是否提供了有關我的問題域的足夠信息?

回答

3

我剛剛完成了一個應用程序,完成此操作,即本地數據庫同步到遠程(SQL2008)。我花了很多時間尋找到這一點,終於解決:

  • WPF
  • 的SQL Server CE
  • 實體框架
  • 同步框架( - > SQL Server 2008中使用的變化在我的案件追蹤)

我知道你想要的東西輕量級的 - 但我不得不說,實體框架&綁定採取最痛苦的了數據綁定和構建UI,這樣你就可以集中精力手頭的問題而不是技術。

我會使用WCF綁定到外部應用程序。

+0

所以你直接綁定到對象?你是否必須爲所有想要綁定的東西編寫查找方法?此外,對於類似的應用程序,我們使用的是Sync Framework,由於數據集的一面,我們必須放棄它。你同步多少數據? – 2010-07-04 13:36:17

+0

我的意思是「直接綁定到對象」是,你有N層設置? – 2010-07-04 13:37:55

+0

直接綁定到結構化/分層而不是分層的桌面應用程序的EF對象。 數據同步數量很少。 無法想象它會更容易同步。使用XML。 – 2010-07-04 13:57:23

3

如果你需要一些本地存儲沒有任何大驚小怪,你一定也應該看看SQLite

它有很大的.NET support包括對實體框架的支持,並且基本上是無摩擦的,不需要安裝服務器或類似的東西(只需在應用程序的部署中包含一些DLL- xcopy或其他)。

它還允許您加密整個數據庫文件(* .s3db)以保護其內容。

+0

沒有安裝?這真的有助於分配。我們用這個應用程序服務的用戶在他們的機器上有非常嚴格的組策略,而少一件要安裝的東西會很好。我花了一點時間與SQLite,當我看着谷歌齒輪。這與SQL Server Compact相比如何? – 2010-07-04 13:39:53

+0

@Dylan Vester:好的,對不起 - 我的意思是不需要安裝服務器或任何東西。只需在xcopy部署中包含一些DLL,即可完成。 – 2010-07-04 13:42:16