我需要在接下来的几天内将一个非常快速的原型/概念验证应用程序演示给某人演示,这样我就可以像平时一样充分研究这个。该设置是一个在笔记本电脑上运行的非常简单的数据库应用程序 - 只会是一个用户更新几个表,所以我正在考虑针对SQL Compact敲击一个基本的Win Forms应用程序。 Visual Studio的自动生成的数据网格编辑屏幕可以很好地进行一些自定义。第二个方面是添加一个Windows Mobile客户端应用程序,该应用程序可以从存储在笔记本电脑上的两个表中提取数据,编辑一些数据并插入一些额外的行,然后再将更改发送回数据库的笔记本电脑副本。
我没有做任何WinMo开发,所以对我来说最好的方法是什么。当WinMo设备通过USB连接到笔记本电脑时,在两个数据库之间同步数据是否容易?
到目前为止我看过的大多数示例似乎都是使用IIS将SQL Compact与SQL Standard同步,这似乎有点矫枉过正。要同步的数据量非常小,如果在设备连接时我很容易从笔记本电脑应用程序查询/更新Compact DB,我可以轻松编写一些手动同步代码。
编辑:
我已经看到提到快速简单的解决方案是使用RAPI - 当设备连接时将数据库复制到笔记本电脑,连接并执行必要的魔术,然后将其复制回设备。这种方法有什么问题吗?这是一个笔记本电脑用户,只有一个移动设备用户可以同步,所以这是非常基本的东西。在任何单个同步中,更新量可能少于10个记录。
答案 0 :(得分:5)
看看Microsoft's Sync Framework。有synchronizing SQLCE以及contact data的示例。 Sync Developer Center page也有大量信息。
尝试手动执行此操作并不好玩。这听起来很容易,但是一旦你进入碰撞检测,优先级,交易,保证交付和其他东西的负载,你会发现它真的不像你想象的那么简单。
修改强>
如果你的场景真的像你说的那么简单(即它不是真正的同步,而是数据副本)那么是,RAPI is probably the easiest mechanism 如果 ActiveSync存在并且可以作为解决方案。这很好,因为你不必编写传输基础设施,如果框中的内容不够,你可以随时写custom RAPI extensions。