我正在开发一个桌面应用程序,需要收集数据(来自用户)并以安全的方式在本地存储。当互联网连接可用时,它需要将此数据与中央数据库同步。该应用程序是WPF,我想利用WPF的新数据绑定功能。我真的希望这个应用程序是轻量级的,因此没有正式的业务对象,只是直接绑定到XML文件。然而,我的问题是安全性。我可以看到加密XML文件,这是一个现实的选择。我想使用XML的另一个原因是与其他应用程序(在桌面上)进行交互,对于这种类型的应用程序,这种应用程序发生了很多。
另一方面,有SQL Server Compact,但要使用它,我很可能希望业务对象代表表,并且要与其他应用程序接口,我还需要将数据吐出到XML。安全性很简单,只需在数据库中添加密码即可。
你们觉得怎么样?是否有一些我没有考虑的事项,我是否提供了有关我的问题域的足够信息?
答案 0 :(得分:3)
如果你需要一些本地存储而不用大惊小怪,你一定要看SQLite。
它有很好的.NET support,包括对Entity Framework的支持,基本上是无摩擦的,不需要安装服务器或类似的东西(只需在应用程序的部署中包含一些DLL - xcopy或其他)。
它还允许您加密整个数据库文件(* .s3db)以保护其内容。
答案 1 :(得分:3)
我刚刚完成了一个完全正确的应用程序,即同步到远程的本地数据库(SQL2008)。我花了很多时间研究这个并最终确定:
我意识到你想要一些轻量级的东西 - 但我不得不说实体框架&绑定消除了数据绑定和构建UI的大部分痛苦,因此您可以专注于手头的问题而不是技术。
我会使用WCF绑定到外部应用程序。