- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于项目,我需要更改服务器与客户端之间的通信。
实际上,这是一个WCF服务,驻留在控制台应用程序中,该服务将整个表的内容发送给客户端,并且客户端用新内容替换其所有本地缓存。
客户端应用程序可以脱机工作(我们有一个区域设置缓存,该缓存通过磁盘上的序列化保持不变,并且还有一个事务列表,该列表存储一旦连接就必须发送到服务器的所有更改)。
问题是这种同步现在将在GSM连接上发生,并且发送整个表的内容确实很繁琐。
因此,要么我自己实施所有操作(设置修改日期,存储上次同步日期,仅获取更新的字段,更新我的缓存),要么我可以找到一种标准的方式来做到这一点。我认为专用的图书馆会做得更好,因为他们已经想到了很多我当然没有想到的方案。
同步层耦合度低,因此改变其工作方式并不重要。
我的项目要求是:
最佳答案
过去,我曾将Microsoft Sync Framework用于一个类似的N-Tier偶尔连接的客户端,并且可以正常工作。自从我上次使用它以来,它一直在发展,但是在这里,我看到它可以满足您的要求。
WCF
通过WCF可以正常工作,这就是我们使用它的方式。 (How to: Configure N-Tier Synchronization)
应该具有增量同步
同步服务可以很好地做到这一点,但是您可能需要在同步表中添加时间戳。您的客户端数据库(在我的情况下是SQL Server CE数据库)保存了上次同步时使用的最后一个时间戳,然后它将使用该时间戳获取在下一次同步期间后来更改的所有内容。
可以将更改推送到服务器
再次,我们做到了。有很多挂钩可以在服务器上提供自定义逻辑来验证数据。
离线访问/存储信息
在完全断开连接的情况下可以正常工作(假设用户已经首先同步了他们的数据)。参见Offline Scenarios。
可以进行完全重新同步(损坏的缓存或新计算机)
客户端数据库包含所有同步信息(如果需要,您可以将有关客户端已同步内容的知识放到服务器上)。如果删除本地数据库,则客户端将进行完全同步。
服务器端的数据提供者是Entity Framework
这不是我使用过的方式,但是同步提供程序是完全可定制的。我们本来打算做一个NHibernate,但是问自己为什么要这么做。开箱即用的Sync Services将允许您使用存储过程或直接表查询来推和拉数据。这非常容易设置,并且因为您可能会使用大量数据,所以运行速度非常快,并且数据跨WCF边界也很容易同步(尽管我们确实从xml格式化程序切换到了二进制格式化程序,以获得更好的性能)。
我们发现的原因仅仅是因为我们在服务器上使用了实体,它们在客户端上不一定有意义,因此我们在客户端上有了一套全新的实体。这也意味着我们要删除存储过程中客户端不需要的数据。再次,这非常容易,您无需担心ADO.net。然后,一旦数据在客户端上,我们就使用NHibernate读取和写入本地数据库。
Building Custom Sync Providers for the Microsoft Sync Framework
我需要重用当前的自定义身份验证
如果您指的是WCF自定义身份验证,那么可以,因为我们拥有自己的WCF自定义安全令牌,该令牌工作正常,不会产生任何影响。
奖励:某些类型具有特殊的同步功能(例如,我有一个包含小文件的数据库,但在客户端,文件必须直接放在文件夹中)
简短答案我不知道,因为它们是新框架中的文件同步提供程序,我没有使用过,但是您还有另外两个选择。
SqlCeEngine
指向要加载的数据库文件,因此隔离存储非常理想。 [OperationContract()]
SyncContext GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession);
[OperationContract()]
SyncSchema GetSchema(Collection<string> tableNames, SyncSession syncSession);
[OperationContract()]
SyncServerInfo GetServerInfo(SyncSession syncSession);
SyncTable
),其中另一个同步所有表。
SyncGroup
的概念,这些包含相关的更改,因为它们都是相关的,因此应该以事务方式持久化,即,如果失败,则它们都将失败。您也可以单独同步组,而不必同步所有内容。
SyncParameter
包含可用于过滤返回给客户端的数据的值。
How to: Filter Rows and Columns。
关于.net - 适用于n层架构的良好.Net同步框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993786/
是否可以简化在裸机上运行的这条链: 具有随时间变化的副本数的 StatefulSet 服务 使用 proxy-next-upstream: "error http_502 timeout invali
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我需要为应用程序制定架构。它专为销售产品而设计。 系统每天将接受大约 30-40k 的新产品。它将导致在表 product 中创建新记录。 系统应保留价格历史记录。用户应该能够看到产品 A 的价格在去
我需要一些帮助来理解 PHP 的内部工作原理。 还记得,在过去,我们曾经写过 TSR(Terminate and stay resident)例程(pre-windows 时代)吗?一旦该程序被执行,
1.Nginx 基础架构 nginx 启动后以 daemon 形式在后台运行,后台进程包含一个 master 进程和多个 worker 进程。如下图所示: master与
本文深入探讨了Kubernetes(K8s)的关键方面,包括其架构、容器编排、网络与存储管理、安全与合规、高可用性、灾难恢复以及监控与日志系统。 关注【TechLeadCloud】,
我知道 CNN 的工作原理,包括每一层的用途(Dropout、Pooling 等)。但是,在为新数据集设计 CNN 时,我不知道要使用多少个 Conv-Relu-Pool 层,在最终获得输出之前我应该
在基于 REST 的架构中,资源和方法之间有什么区别。有吗? 最佳答案 资源是您的应用程序定义的东西;它们与物体非常相似。方法是 HTTP 动词之一,例如 GET、POST、PUT、DELETE。它们
我想用 oneOf仅在 xyType 的值上不同的模式属性(property)。我想要其中两个:一个是 xyType设置为 "1"第二个在哪里xyType是 任何其他值 .这可以使用 json 模式完
寻求 PHP 架构师的建议! 我对 PHP 不是很熟悉,但已经接管了一个用该语言编写的大型分析包的维护工作。该架构旨在将报告的数据读取到大型键/值数组中,这些数组通过各种解析模块传递,以提取每个模块已
这些存在吗? 多年来,我一直是大型强类型面向对象语言(Java 和 C#)的奴隶,并且是 Martin Fowler 及其同类的信徒。 Javascript,由于它的松散类型和函数性质,似乎不适合我习
我已经阅读了 Manning 的 Big Data Lambda Architecture ( http://www.manning.com/marz/BD_meap_ch01.pdf ),但仍然无法
在过去的几年里,我做了相当多的 iOS 开发,所以我非常熟悉 iOS 架构和应用程序设计(一切都是一个 ViewController,您可以将其推送、弹出或粘贴到选项卡栏中)。我最近开始探索正确的 M
我有以下应用程序,我在其中循环一些数据并显示它。 {{thing.title}} {{thing.description}}
昨天我和我的伙伴讨论了我正在开发的这个电子购物网站的架构。请注意,我为此使用 ASP.NET。他非常惊讶地发现我没有将添加到购物车的项目保留在 ArrayList 或其他通用列表中,而是使用 LINQ
我正在使用在 tridion 蓝图层次结构中处于较低位置的出版物。从蓝图中较高级别的出版物继承的一些内容和模式不适合我的出版物,并且永远不会被我的出版物使用。 我将跟进添加这些项目的内部团队,并尝试说
我目前已经在 Cassandra 中设计了一个架构,但我想知道是否有更好的方法来做事情。基本上,问题在于大多数(如果不是全部)读取都是动态的。我构建了一个分段系统作为应用程序服务,读取动态自定义查询(
我正在按照 documentation 中给出的 icingaweb UI v 2.0 布局执行在服务器上设置 icinga 的步骤。 。我成功进入设置页面,该页面要求您输入 token ,然后按照步
我必须保存来自不同社交媒体的用户的不同个人资料。例如用户可能有 1 个 Facebook 和 2 个 Twitter 个人资料。如果我保存每个配置文件它作为新文档插入不同的集合中,例如 faceboo
我的团队使用 Puppet 架构,该架构目前可在多个环境(流浪者、暂存、生产)中容纳单个应用程序。 我们现在想要扩展此设置的范围以支持其他应用程序。他们中的许多人将使用我们已经定义的现有模块的子集,而
我是一名优秀的程序员,十分优秀!