代码之家  ›  专栏  ›  技术社区  ›  Chris W

在Windows桌面应用程序和Windows Mobile客户端应用程序之间同步数据

  •  5
  • Chris W  · 技术社区  · 14 年前

    我需要快速制作一个原型/概念验证应用程序,以便在接下来的几天内将其演示给某人,这样我就没有时间像平时那样充分地研究这个问题了。设置是一个在笔记本电脑上运行的非常简单的数据库应用程序-将永远只有一个用户更新两个表,所以我正在考虑用SQL Compact来构建一个基本的win-forms应用程序。Visual Studio的自动生成的数据网格编辑屏幕可以进行一些自定义。第二个方面是添加一个Windows Mobile客户端应用程序,该应用程序可以从存储在笔记本电脑上的两个表中提取数据,编辑一些数据并在将更改发送回数据库的笔记本电脑副本之前插入一些额外的行。

    我还没有做过任何WinMo开发,所以对我来说最好的方法是什么。当WinMo设备通过USB连接到笔记本电脑时,在两个数据库之间同步数据是否足够容易?

    到目前为止,我看到的大多数示例似乎都在使用IIS将SQL Compact与SQL标准同步,这看起来有点过分了。要同步的数据量非常小,如果在连接设备时方便从笔记本电脑应用程序查询/更新Compact DB,我可以轻松编写一些手动同步代码。

    编辑:

    我看到过一个简单快捷的解决方案是使用rapi——当设备连接时,将数据库复制到笔记本电脑上,连接并执行必要的魔法,然后将其复制回设备。这种方法有什么问题吗?这是一个笔记本电脑用户和一个移动设备用户同步,所以它是相当基本的东西。在任何一次同步中,更新的数量都可能少于10条记录。

    1 回复  |  直到 14 年前
        1
  •  5
  •   ctacke    14 年前

    看一看 Microsoft's Sync Framework . 有一些例子 synchronizing SQLCE 以及 contact data . 这个 Sync Developer Center page 也有大量的信息。

    尝试手动操作并不是很有趣。这听起来很简单,但是一旦你涉及到碰撞检测、优先级、事务、有保证的交付和其他东西的装载,你会发现它并不像你想象的那么简单。

    编辑

    如果您的场景真的像您所说的那样简单(即,它不是真正的同步,而是数据拷贝),那么是的, RAPI is probably the easiest mechanism 如果 ActiveSync存在,可作为解决方案的一部分接受。这很好,因为你不必写传输基础设施,如果盒子里的东西不够,你可以一直写 custom RAPI extensions .