我有一个应用程序,它使用SQL Enterprise将所有数据存储在4个不同的数据库中.我需要建立为我的用户"离线"工作的能力.我完成了这个Merge Replication到SQL Express每个人的本地安装.这个"作品"但感觉就像大锤的方法.
例如,当任何单个用户只能与100个左右进行交互时,我正在将所有14000个人复制到每个数据库.这甚至没有计算出它们在与中央数据库的连接之间永远不会与5个以上的交互.
我正在寻找的是提示,指针,也许是一个关于Sync Framework 2(带数据库)的精彩教程.第一手资料说明了什么对你有用,为什么也会受到欢迎.我还没有找到一个清晰简洁的(更不用说当前的)教程Sync Framework.
我的具体是MS SQL Server 2005或2008年,任何版本.任何.Net版本(3.5或4).当前数据层都是LinqToSQL.目前没有任何Sprocs使用.
到目前为止,我的想法是仅同步每个工作人员分配的案例量和相关数据.理想情况下,我们会直接选择"签入/签出"格式,选择他们计划访问的成员,然后同步必要的数据.
作为奖励,有人可以告诉我这被称为什么?我偶尔会遇到"偶尔连接",但这似乎不准确.把它们称为"偶尔DIS连接"会更准确吗?
.net sql-server occasionallyconnected disconnected microsoft-sync-framework
问题:
两名员工(A&B)同时离线,同时编辑客户#123,比如版本#20,当离线继续进行更改时......
场景:
1 - 两名员工编辑客户#123并对一个或多个相同的属性进行更改.
2 - 两名员工编辑客户#123但不要做出相同的更改(他们互相交叉而不接触).
......然后他们都回到网上,第一名员工A追加,从而将客户更改为版本#21,然后将员工B更改为版本#20
问题:
我们在方案1中保留了哪些变化?
我们可以在方案2中进行合并吗?
语境:
1 - CQRS +事件采购风格系统
2 - 使用事件源Db作为队列
3 - 读模型的最终一致性
4 - RESTful API

编辑-1:到目前为止基于答案的澄清:
为了执行精细的粒度合并,我需要为一个表单中的每个字段设置一个命令?

在上面,ChangeName,ChangeSupplier,ChangeDescription等的细粒度命令,每个都有自己的时间戳,允许自动合并事件A和B都更新ChangedName?
编辑-2:根据特定事件存储的使用进行跟进:
好像我会利用@GetEventStore来保持我的事件流的持久性.
他们使用乐观并发如下:
流中的每个事件都将流版本增加1
写入可以指定预期版本,在编写器上使用ES-ExpectedVersion标头
-1指定流不应该已存在
0及以上指定流版本
如果流不在版本中,写入将失败,您要么使用新的预期版本号重试,要么重新处理该行为并确定如果您选择它就行.
如果未指定ES预期版本,则禁用乐观并发控制
在这种情况下,Optimistic Concurrency不仅基于消息ID,还基于事件#
domain-driven-design occasionallyconnected cqrs event-sourcing get-event-store
我正在寻找Microsoft Sync Framework上的资源.虽然MSDN和谷歌搜索给了我简要的概述,但我想要一些演示和演示.
Live Mesh是否基于Sync Framework?
我将构建一个内部的,偶尔连接的应用程序(OCA).你建议我采用什么技术?
这是我的参数:
我正在寻找有关选择路径的具体建议.合并复制或Sync Framework数据库同步提供程序?订阅服务器上的SQL Express或SQL CE?我可以为DAL使用LINQ to SQL吗?
是Silverlight'离线/退出浏览器应用' 示例在这里,可行吗?
这是我的第一个LARGE商业应用程序,因此欢迎任何经验丰富的评论.
根据要求,这里有一些关于数据类型的附加信息.我的用户是护士和社会工作者,他们去会员家中为他们创建"计划"或"健康评估评论".这些是药物清单或当前"提供者"列表.实现成员目标的步骤或当前/过去诊断的列表.像这样的东西.
还有典型的会员姓名,地址,电话号码等.这主要是一个便于报告的数据存储和检索应用程序.很少"处理"发生,护士和社会工作者在指定成员的团队中工作,所以我通常几乎没有交叉或潜在的数据冲突.护士和SW也负责MCP的不同领域(会员中心计划)
附加问题; 如果我可以使用SQL 2008,Sync Framework真的只是一个可行的选择吗?似乎是由于变化跟踪等等......思想?