Sync Framework 2.0

Sync Framework 是一个功能完善的同步平台,实现了应用程序、服务和设备的协作和脱机访问。Sync Framework 提供了一些可支持在脱机状态下漫游、共享数据和获取数据的技术和工具。通过使用 Sync Framework,开发人员可以构建同步生态系统,通过在任意网络上使用任意协议,将任意应用程序与任意存储区中的数据集成在一起。

本文档涵盖所有 Sync Framework 组件,包括以下组件:

  • 核心组件
  • 数据库同步提供程序(在以前的版本中称为 Sync Services for ADO.NET)
  • 文件同步提供程序(在以前的版本中称为 Sync Services for File Systems)
  • Web 馈送同步组件(在以前的版本中称为 Sync Services for FeedSync)

Sync Framework 文档提供简介以及一组帮助主题和参考主题,帮助您快速了解 Sync Framework 并在实际工作中使用它。帮助主题包含示例代码,其他示例可从 Sync Framework SDK 和 Code Gallery(代码库)中获得。

在核心组件中:

1、简单提供程序:减少了开发提供程序所需的工作量;当数据源具有很少与同步相关的功能(如变更跟踪)时,更是如此。其目标是使开发人员不必成为同步专家就可以编写提供程序。简单提供程序所需的大多数代码限于负责与数据源交互的那些代码。简单提供程序支持许多复杂的同步方案,例如筛选、并发和约束冲突处理以及基于定位点的枚举。

2、灵活的筛选:变更单位筛选器和自定义筛选器已添加到自定义提供程序组件中。通过这些筛选器以及来自 Sync Framework 1.0 的项筛选器,使您可以通过最有用的方式筛选数据。筛选器协商使得源提供程序和目标提供程序能够协商在同步会话中使用的筛选器。变更单位筛选器使提供程序能够指定:在它支持的副本存储同步同步作用域中的所有项时,该副本将存储每一项的简化的表示形式。例如,在某一项是联系人时,设备可以只存储该联系人的姓名和电话号码,而在 PC 上存储的则是完整联系人信息。自定义筛选器使您能够通过最合适的方式定义筛选器,包括在项数据变更时允许项移入或移出筛选器的筛选器。例如,某一介质存储设备只存储评价为三星或更高级别的歌曲。如果对某个歌曲的评价从四星更改为二星,则该歌曲将移出筛选器。通过筛选器协商,目标提供程序可以指定源提供程序在变更枚举期间要使用的筛选器;源提供程序可以接受或拒绝筛选器。如果源提供程序不支持请求的筛选器,则目标提供程序可以选择接收所有数据并自己执行筛选操作。

3、改进的冲突处理:支持更多的冲突解决方案,例如报告约束冲突、管理记录的冲突和通过使用后写入者入选策略解决冲突。约束冲突指违反有关项或变更单位的约束(如文件夹的关系或文件系统中同名数据的位置)的冲突。Sync Framework 包括有助于解决约束冲突和将解决方法应用到目标副本的组件。冲突记录功能通过帮助管理日志(例如删除废弃的冲突)的 Sync Framework 组件得到了增强。后写入者入选冲突解决策略可用于通过保存最近进行的变更而不管变更是在何处进行的,解决并发冲突(在这种冲突中,项由多个副本更新)。Sync Framework 通过使应用程序能够检索对源副本和目标副本进行变更的时间,支持这一策略。然后,应用程序可比较这两个时间,并且应用最后的变更。

4、提供程序之间的数据转换:在一些方案中,同步提供程序同步相同类型的数据(如销售数据),但是每个提供程序所需的数据格式不同。为了解决此问题,Sync Framework 允许您实现接口,用于将数据转换为每个提供程序所需的格式。除了可以用于任何类型的自定义提供程序的数据转换 API 之外,Sync Framework 还包括专门用于文件同步提供程序的转换 API。

5、变更应用服务:增加了 Sync Framework 的变更应用方组件的灵活性和用途。通过执行与标准变更应用方相同的操作,但采用更具体的方法,变更应用服务使目标提供程序能够只使用它需要的功能。

6、跟踪:允许您跟踪几个组件的执行情况,这在应用程序调试期间很有用。此下载提供 .tmf 文件,这些文件可用于查看跟踪、刷新记录器和设置二进制跟踪文件的格式。有关如何跟踪 Sync Framework 执行的详细信息,请参阅随 Sync Framework SDK 一起安装的文档中的“跟踪 Sync Framework 组件”。

在数据库提供程序中:

新的数据库提供程序(SQL Server 和 SQL Server Compact):使中心辐射型和对等同步可用于 SQL Server、SQL Server Express 和 SQL Server Compact。Sync Framework 自动创建与每个数据库进行通信所需的所有命令。您不必像使用其他提供程序那样编写同步查询。这些提供程序支持:灵活的初始化选项;基于数据大小的变更批处理;以及维护任务,例如元数据清除和服务器数据库还原。

可靠的基于内存的批处理:先前的 Sync Framework 和 Sync Services for ADO.NET 版本提供了一种方法供开发人员定义自己的批处理逻辑,但此方法存在许多限制,包括复杂性大大增加、干扰过多、内存不足问题和使用限制。Sync Framework 2.0 通过提供一个更完善和更可靠的批处理 API 解决了上述所有问题。开发人员不再必须自行编写批处理逻辑,因为 Sync Framework 基于 API 中的若干属性将变更划分为批。现在按照内存占用量(而不是同步的行数)来定义批,这已消除了大多数常见方案的内存不足问题。

设置和管理 API:先前仅通过 Visual Studio 工具公开的设置和初始化活动现在已添加到数据库提供程序 API 中。这包括通过添加 Sync Framework 要求的变更跟踪表和触发器来设置现有数据库的功能。它还包括以空数据库开始、创建用户架构和基于已设置的其他服务器或客户端数据库设置架构的功能。

性能改进:此版本中的新数据库提供程序已在大型扩展方案中经过彻底测试,在此类方案中,单个服务器支持数以千计的客户端以及数百个并发同步操作。这一测试大大改进了内部性能,使 Sync Framework 数据库提供程序与其他 Microsoft 技术(如远程数据访问 (RDA))的执行效果相媲美,同时提供了大量与端对端解决方案(如合并复制)相当的功能。

Microsoft Sync Framework 2.0 Software Development Kit (SDK)下载:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 开源.NET企业级应用系统 OpenVista

      看到倡议研究mono,我一直也在关注、跟踪Mono的发展,就是在项目中没有使用过。以前我介绍过一个iFolder Novell开源文件服务器.下面就来介...

    张善友
  • 代码生成新选择-T4模板引擎

    在博客堂看到ASP.NET MVC中的T4模板, 之前我也写过一篇文本模板转换工具箱T4。 T4(Text Template Transformation To...

    张善友
  • 使用Windbg和SoS扩展调试分析.NET程序

    在博客堂的不是我舍不得 - High CPU in GC(都是+=惹的祸,为啥不用StringBuilder呢?)、 不是我舍不得 - .NET里面的Out O...

    张善友
  • 关于发布IOS的方法(本人亲身经历折腾很久终于成功)

    前情提要:这位.NET程序员兄弟使用Smobiler开发了一个APP,尽管Smobiler云平台已经最大限度的简化了iOS应用的打包操作,但仍绕不开苹果公司强制...

    Amanda.li
  • 数组完全乱序

    但是sort并不是真正意义上的乱序,一些元素间并没有机会相互比较(也就没有了随机交换的可能性),所有数组元素在大概率上还停留在自己初始位置。

    OBKoro1
  • 这本IF逐年攀升的4分以上SCI,审稿居然快到平均只要15天!

    “那个杂志审稿快是快,声望也挺不错,但是发文量那么少,我又不一定能中呀!有没有又快又好中的同类杂志?”

    百味科研芝士
  • 第21问:我有个 SQL 文件要回放,又怕压死业务

    现在我们假设要把这个 dump 文件,回放到一个数据库中,并且现在数据库正在承担很重的业务,我们不希望业务受到太大影响。

    爱可生开源社区
  • python+pytest单元测试框架之介绍

    pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。pytest...

    用户6367961
  • iPhone X之后,面部识别的未来何在?

       远在1811年,第一次工业革命的发源地英国有这样一群纺织工人,历史上称他们为“勒德分子”,他们认为机器铁定会砸掉自己的饭碗,于是搬起家伙,捣毁工厂的机器,...

    数据星河
  • Beego没gin配置静态页面方便

    https://github.com/Tencent/bk-cmdb/blob/master/src/web_server/service/service.go

    landv

扫码关注云+社区

领取腾讯云代金券