构建OCA的工具(偶尔连接的应用程序)

Ref*_*din 9 .net c# sql-server replication occasionallyconnected

我将构建一个内部的,偶尔连接的应用程序(OCA).你建议我采用什么技术?

这是我的参数:

  1. .NET Shop(3.5sp1)
  2. 代码背后的C#(winform,wpf,silverlight)
  3. SQL Server后端(2005年或可能 2008年待批准)
  4. 独奏开发者
  5. 独奏SQL管理员
  6. 低技术最终用户
  7. 5个分支机构的低带宽
  8. 这是一个LOB应用程序,但不是POS.
  9. 大多数用户都有笔记本电脑,他们带到会员家
  10. 此应用程序的数据存储在5个单独的数据库中,但在一个SQL实例中.

我正在寻找有关选择路径的具体建议.合并复制或Sync Framework数据库同步提供程序?订阅服务器上的SQL Express或SQL CE?我可以为DAL使用LINQ to SQL吗?

是Silverlight'离线/退出浏览器应用' 示例在这里,可行吗?

这是我的第一个LARGE商业应用程序,因此欢迎任何经验丰富的评论.


根据要求,这里有一些关于数据类型的附加信息.我的用户是护士和社会工作者,他们去会员家中为他们创建"计划"或"健康评估评论".这些是药物清单或当前"提供者"列表.实现成员目标的步骤或当前/过去诊断的列表.像这样的东西.

还有典型的会员姓名,地址,电话号码等.这主要是一个便于报告的数据存储和检索应用程序.很少"处理"发生,护士和社会工作者在指定成员的团队中工作,所以我通常几乎没有交叉或潜在的数据冲突.护士和SW也负责MCP的不同领域(会员中心计划)


附加问题; 如果我可以使用SQL 2008,Sync Framework真的只是一个可行的选择吗?似乎是由于变化跟踪等等......思想?

Rem*_*anu 4

一旦解决了变更检测和数据移动的问题,其他一切都变得微不足道。换句话说,WPF、Silverlight、Forms 甚至 WCF 等技术都与您的主要问题正交,您的选择应该基于您的个人喜好和经验。真正难以解决的难题是离线工作和同步变更。这就留下了两个现成的途径:同步框架或复制。

我想说,对于您的场景,绝对是Synch Framework。与所有形式的复制一样,合并复制是为持续连接但间歇性断开连接的系统而设计的。最关键的是,复制只能通过静态名称进行。从各种热点和 ISP 连接的笔记本电脑有一个坏习惯,即每次连接时都会更改 FQ 名称。只有使用某种 VPN 时,复制才能克服这个问题,而 VPN 通常是一个主要的支持问题。复制并不是为 OCA 系统的高移动性而设计的。

同步框架几乎会迫使您使用 SQL 2008 后端,因为需要更改数据捕获更改跟踪,这两者都是 SQL 2008 独有的功能。

您仍然有很多难题需要解决(身份验证、版本控制和升级、数据冲突解决策略、保护客户端上的数据以防意外媒体丢失等)