基于.NET3.5的最佳策略,用于创建断开连接的db应用

我的要求是:

  • 相对较小的数据库:25-30个表,每个表4-5k行。
  • 4-5个用户在他们的笔记本电脑上拥有自己的本地数据库副本。 在需要时或在一天结束时同步。
  • 免费解决方案,正在为NFP ogranization进行此设置。

    我在过去几天一直在研究各种选择。 最后我考虑缩小到数据集,同时将它们序列化为XML,但似乎这不是一个好主意(我以前的问题的答案强烈建议。)

    所以我现在的问题是我应该采用什么方法(数据库和访问技术)? 我想使用c#和一种易于使用的技术来访问我的数据库并在一天结束时同步它。

    根据这个链接:http://msdn.microsoft.com/en-us/library/8fxztkff.aspx,MS建议两种不同的方法。 我很惊讶他们在这里没有提到LINQ。

    那么小组,你推荐什么样的路径?

    非常感谢阅读。

  • 添加 – >新建 – >“本地数据库缓存”。 这应该提供您需要的所有同步(通过ADO.NET Sync Framework),默认情况下由SQL CE运行(IIRC),这是(我相信)免费。

    看看Microsoft Sync Framework 。

    介绍Microsoft Sync Framework – 一个全面的同步平台,支持应用程序,服务和设备的协作和离线,支持任何数据类型,任何数据存储,任何传输协议和网络拓扑。

    如果已有SQL Server(标准版或更高版本),则可以使用SQL Server复制服务将数据库的本地副本同步到用户计算机上的SQL Express或SQL Server Compact实例(这两者都是免费的) 。

    有关更多信息,请尝试此处 。

    听起来您正在考虑合并复制方案。

    微软有一种模式,他们称之为偶尔连接客户端 。

    对OP:

    我将在Sync框架前面给你的一个警告是在整个版本中升级数据库模式。 我正在我正在开发的项目中使用它,并且我正在启动“2.0”规范,我已经决定将其删除,原因有多种。

    我非常建议您花点时间了解在进展过程中如何处理模式更改,并确定这是否是您想要的方式。 对我来说,这是让系统启动并运行,但现在我正在处理噩梦,我正在成为NIH情景的受害者。

    我对2.0的看法是继续为客户端使用SqlCE,为SQL使用SQL Server 2008 …但是基于大量使用reflection和一组“DTO”对象来滚动我自己的Sync Fx。