【问题标题】:Best .NET3.5 based strategy for creating disconnected db application用于创建断开连接的数据库应用程序的最佳基于 .NET3.5 的策略
【发布时间】:2009-04-08 14:40:31
【问题描述】:

我的要求是:

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

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

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

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

    那么组,你推荐什么路径?

    非常感谢您的阅读。

  • 【问题讨论】:

    • 什么基础设施(如果有)已经到位? SQL Server 是否已经存在?
    • 您是否考虑过在 SQL Server Express 和 SQL Server 之间进行复制?

    标签: c# database .net-3.5 ado.net


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      看看Microsoft Sync Framework

      介绍 Microsoft Sync 框架——全面的 同步平台使能 协作和离线 应用程序、服务和设备 支持任何数据类型,任何 数据存储,任何传输协议,以及 网络拓扑。

      【讨论】:

      • 嗨,Sacha,感谢您的回答。不过,在我没有任何研究的情况下,给您一个问题:Sync Framework 是否支持 SQL SERVER CE db 的点对点同步?
      • 是的,阅读这篇文章了解更多信息。 dotnet.org.za/calmyourself/archive/2009/04/02/…
      • 实际上,Sacha,您所指的链接:它不是显示服务器-CE 同步,而不是点对点同步。请原谅,如果我错了,我是新手。
      【解决方案3】:

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

      欲了解更多信息,try here

      听起来您正在研究合并复制方案。

      【讨论】:

      • 没有亚当,绝对没有基础设施,可以这么说,已经到位。到目前为止,我们正在使用 Foxpro,并手动复制文件。确实非常糟糕的解决方案... :) 请不要评判我。
      • 在这种情况下,请使用 sacha 的回答中描述的同步框架。祝你好运!这里没有判断;)
      【解决方案4】:

      Microsoft 有一个他们称之为 Occasionally Connected Client 的模式。

      【讨论】:

        【解决方案5】:

        致 OP:

        我要在 Sync 框架前端给您的一个警告是在整个版本中升级数据库架构。我在我正在开发的project 上使用它,并且正在启动“2.0”规范,出于各种原因我决定将其删除。

        我强烈建议您花点时间考虑一下您希望如何处理架构更改,并决定这是否是您想要的方式。对我来说,这是为了让系统启动并运行,但现在我正在处理噩梦,我正在成为 NIH 方案的受害者。

        我对 2.0 的展望是继续将 SqlCE 用于客户端,将 SQL Server 2008 用于 COR...但是基于大量使用反射和一组“DTO”对象来推出我自己的 Sync Fx。

        【讨论】:

        • 自从我计划一个新项目以来,我完全改变了我的方法。我没有使用 RDBMS,而是使用 db4objects。它内置了 db4odb4o 复制。
        • 是的,像 SQL Server 这样的 RBDMS 也具有复制功能。当您尝试部署给不了解 kb 是知识库的缩写还是指的是 kb 数据的非技术用户时,就会出现问题。我无法想象让办公室经理启动交易处理器,然后向他们提供 SQL Server 手册以使同步为他们的团队工作……这似乎是不可能的。
        猜你喜欢
        • 1970-01-01
        • 2011-07-04
        • 1970-01-01
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多