我们正在尝试使用微软的所有技术将旧的客户端服务器应用程序转换为具有同步和离线支持的N层应用程序(我们是一个完全的.Net和SQLServer商店)。我们希望专注于编写业务逻辑,而不是将时间花在探测上,因此我们将尽可能多地使用现有的Microsoft探测技术。
到目前为止,我们决定使用带有WinForm/WPF胖客户端的SQL server Compact edition,服务器上的SQL Server 2008,Microsoft Sync Framework来实现客户端SQL DB和服务器SQL DB之间的同步。到目前一切尚好。
当我们尝试实现"N层“部分时,麻烦就来了。我们当前的应用程序是非常面向服务的。每个数据访问调用都是通过web服务完成的。因此,我们自然而然地在考虑使用ADO.Net数据服务。然后,让我们感到惊喜的是,有一种叫做ADO.Net数据服务离线(Astoria )的东西,它允许我们通过web服务进行数据访问调用,支持同步,甚至支持离线。突然,我们开始相信天堂真的是地球上的一个地方。
昨天,我们负责研究"Astoria Offline“的队友根据博客文章( http://blogs.msdn.com/astoriateam/archive/2009/03/07/announcing-project-codename-astoria-offline-alpha-preview.aspx )告诉我们"Astoria Offline已经死了”。我们怀疑他在吸食毒品,但又不想挑战他。事实上,Astoria Offline仍处于pre-alpha模式,我们需要一个生产解决方案。
那么,除了Astroia Offline之外,有没有其他类似的解决方案允许我们在也支持脱机模式的N层设置中使用Microsoft Sync Framework?
发布于 2010-02-18 01:57:04
如果您正在考虑ADO.NEt数据服务,那么您可能会发现ADO.NET同步服务非常适合您。这取决于您尝试创建的senario。或者,远程数据访问可能更适合。
您可能希望选择同步服务:1.支持冲突解决。2.在服务器和客户端上进行更改跟踪,以便仅交换数据差异。3.在即将发布的同步框架v2中实现对等同步。4.与SQL Server以外的数据库同步。5.最适合在台式机或笔记本电脑上运行的SSCE。
如果您的主键使用GUID而不是Identity列,RDA可能会为您提供更好的性能。2.用户不会覆盖彼此的数据,因此您不需要解决冲突。“最后胜出”的规则对你是有效的。3.虽然您希望将索引下推,但您并不关心本地SSCE数据库是否应用了引用完整性约束。4.您希望将上载到SQL Server的更改包装在一个事务中,以便应用所有更改或不应用任何更改。5.客户端上的更改跟踪已经足够好了,重新下载更新后的服务器表不会花费太长时间。6.开发人员不介意编写一些同步代码。7.能够通过IIS直接对SQL Server执行SQL和存储过程。8.您正在下载只读数据。
如果你还需要什么,尽管喊出来。
https://stackoverflow.com/questions/1827795
复制相似问题