我们正在尝试使用所有 Microsoft 技术将旧式客户端服务器应用程序转换为具有同步和离线支持的 N 层应用程序(我们是一个完整的 .Net 和 SQLServer 商店)。我们希望专注于编写业务逻辑而不是花时间在管道上,因此我们将尽可能多地使用现有的微软管道技术。
到目前为止,我们决定使用带有 WinForm/WPF 胖客户端的 SQL Server Compact 版本,服务器上的 SQL Server 2008,Microsoft Sync Framework 来做客户端 SQL DB 和服务器 SQL DB 之间的同步。到现在为止还挺好。
当我们尝试实施“N 层”部分时,麻烦就来了。我们当前的应用程序是相当 SOA。每个数据访问调用都是通过 Web 服务完成的。所以我们自然而然地考虑使用 ADO.Net 数据服务。然后让我们惊喜的是,有一个叫ADO.Net离线数据服务(Astoria Offline),可以让我们通过web服务进行数据访问调用,支持同步,甚至支持离线。突然间,我们开始相信天堂真的是地球上的一个地方。
然后昨天我们负责研究“Astoria Offline”的队友告诉我们“Astoria Offline 已经死了”根据博客文章(http://blogs.msdn.com/astoriateam/archive/2009/03/07/宣布-项目-代号-astoria-offline-alpha-preview.aspx)。我们怀疑他正在崩溃,但不想挑战他。事实上,Astoria Offline 仍处于 pre-alpha 模式,我们需要一个生产解决方案。
那么除了 Astroia Offline 之外,还有其他类似的解决方案可以让我们在 N 层设置中使用 Microsoft Sync Framework 并支持离线模式吗?