同步框架版本升级问题

时间:2010-01-08 18:44:48

标签: c# .net microsoft-sync-framework

对于熟悉Microsoft Sync Framework的人,这个问题适合您。这是关于应用程序版本控制。假设我发布了我的软件版本1.0,并且从1.0版Web服务创建了本地数据库sdf文件,生活会持续一段时间,用户使用该应用程序并将数据放入本地数据库,所有这些,然后我的软件版本2.0出来了,它们是对数据库(架构)的更改,例如新列,新表,无效能力更改等......

如何工作,如果用户在1.0版数据库中有数据并且我发布了新的2.0 Web服务,因为该软件的2.0版本已发布且版本1.0数据库不再能够与2.0同步Web服务,如何从1.0版数据库中获取数据?更重要的是,如何在不丢失任何1.0数据的情况下干净地将每个人更新到版本2.0?

2 个答案:

答案 0 :(得分:1)

在我们的项目中,我们使用WCF上的同步框架,我们支持不同的数据版本。在我们的例子中,我们使用不同的syncServerProviders,具体取决于客户端使用的数据版本。 如果对数据库模式进行了更改,则可以通过手动编写em来配置同步提供程序,以仅选择/更新客户端数据版本支持的列。

答案 1 :(得分:0)

你不能拆掉v1。网络服务(http://example.com/sync/v1.0/)。所有v1客户端都继续与v1 Web服务同步。客户端升级到v2。 sdf通过运行将数据库升级到v2的部署脚本。在安装过程中(CREATE,ALTER,DROP语句)。升级后,客户端将同步到v2服务(http://example.com/sync/v2.0/)。

确认所有客户端升级到v2后,您可以拆除v1。网络服务。如果客户数量未知,您必须依靠业务决策来保留v1多长时间。起来。让服务同时运行2-3个版本以支持旧客户端并不罕见。