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 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

Gradle 10分钟上手指南

java的源码构建工具,大致经历了 ant -> maven -> gradle 这个过程,每一次进步,都是在解决之前的工具所带来的问题,简单来说: 1. an...

20410
来自专栏逸鹏说道

Win10 UWP应用发布流程

简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变。 这篇博文记录了我们发布一款...

2515
来自专栏图像识别与深度学习

Android Studio

2798
来自专栏黑白安全

iOS安全基础之钥匙串与哈希

本文最初是由Chris Lowe编写的,后来经过Ryan Ackermann(ios系统开发者)的修改,已经可以针对最新的Xcode 9.2,Swift 4,i...

1052
来自专栏风口上的猪的文章

.NET面试题系列[16] - 多线程概念(1)

这篇文章主要是各个百科中的一些摘抄,简述了进程和线程的来源,为什么出现了进程和线程。

1862
来自专栏程序你好

一个微服务架构的简单示例

3903
来自专栏从零开始学自动化测试

Appium+python自动化9-SDK Manager

前言 SDK Manager到有哪些东西是必须安装的呢? 一、SDK Manager 1.双击打开SDK Manager界面 ? 2.Tools里面前三个是必须...

3106
来自专栏张高兴的博客

张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用

2012
来自专栏草根专栏

使用 Moq 测试.NET Core - Why Moq?

在一个项目里, 我们经常需要把某一部分程序独立出来以便我们可以对这部分进行测试. 这就要求我们不要考虑项目其余部分的复杂性, 我们只想关注需要被测试的那部分. ...

1513
来自专栏FreeBuf

打开文件夹就运行?COM劫持利用新姿势

*本文原创作者:菠菜,本文属FreeBuf原创奖励计划,未经许可禁止转载 打开文件夹就能运行指定的程序?这不是天方夜谭,而是在现实世界中确实存在的。利用本文探讨...

2368

扫码关注云+社区

领取腾讯云代金券