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

时间:2010-01-20 18:32:03

标签: c# .net sql-server replication occasionallyconnected

我将建立一个内部的,偶尔连接的应用程序(OCA)。您建议我采用哪些技术。

以下是我的参数:

  1. .NET Shop( 3.5sp1
  2. C#代码背后( winform,wpf,silverlight
  3. SQL Server后端( 2005或可能 2008待批准
  4. Solo Developer
  5. Solo SQL管理员
  6. 低科技最终用户
  7. 5个分支机构的低带宽
  8. 这是一个LOB应用程序,但不是POS。
  9. 大多数用户都有将笔记本电脑带到会员主页
  10. 此应用程序的数据存储在5个单独的数据库中,但在一个SQL实例中。
  11. 我正在寻找有关选择路径的具体建议。合并复制或Sync Framework数据库同步提供程序?订阅服务器上的SQL Express或SQL CE?我可以为DAL使用LINQ to SQL吗?

    Silverlight'离线/不在浏览器应用中'Example Here,可行吗?

    这是我的第一份大型商业应用程序,欢迎任何有经验的评论。


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

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


    补充问题;如果我可以使用SQL 2008,Sync Framework真的只是一个可行的选择吗?由于改变跟踪等原因,这似乎是这样......想法?

6 个答案:

答案 0 :(得分:4)

一旦解决了变更检测和数据移动的问题,其他一切都是微不足道的。换句话说,像WPF,Silverlight,Forms甚至WCF这样的技术都与您的主要问题正交,您的选择应该基于您的个人喜好和经验。要破解的真正难点是断开连接和同步变化。这留下了两个开箱即用的途径:Synch Framework或Replication。

对于您的场景,我会说,定义Synch Framework。与所有形式的复制一样,合并复制适用于与间接断开连接的系统。最重要的复制只能在静态名称上运行。从各种热点和ISP连接的笔记本电脑有一个讨厌的习惯,即每次连接都要更改FQ名称。只有在使用VPN排序并且VPN通常是主要支持问题时,复制才能克服这个问题。复制不是为OCA系统的高移动性而设计的。

Synch Framework几乎会强迫您使用SQL 2008后端,因为需要Change Data CaptureChange Tracking,这两者都是SQL 2008的唯一功能。

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

答案 1 :(得分:2)

就个人而言,我会说:

  • .NET 3.5
  • WCF数据服务(用于客户端应用程序和数据之间的通信)
  • SQL Server 2k5 / 2k8(无论哪个可以使用)
  • Silverlight w / Out of Browser Functionality
  • VistaDB(在客户端本地存储数据,直到您可以推送到服务器)

答案 2 :(得分:1)

如果要在离线时创建内容而未连接,并且在连接时更新数据库,请使用 unique-identifier 作为密钥。

这比使用自动增量键

更容易

答案 3 :(得分:1)

在处理偶尔连接的应用程序之后,我建议您查看SQL Server CE以获取客户端计算机,并使用Sync Services来处理连接。 Here is a good tutorial.

答案 4 :(得分:1)

你可以从头开始创造这些东西,似乎。

然而,这似乎与CRM应用程序非常相似,如果您能够找到一个企业软件包来执行此操作而无需从头开始,而是修改其中一个配置以满足您的业务规则,那就不会让我感到惊讶。

在以前的生活中,我是一个名为Siebel的配置开发人员,可能接近你所寻找的东西。他们甚至还有一个名为Siebel Remote的内置同步工具。

这可能比从头开始自己滚动更便宜。

答案 5 :(得分:1)

我为葡萄酒销售代表写了一份订单计划。 Here is the video.客户端软件使用click-once安装。这也安装SQL Server Express并加载数据库。我使用Microsoft Sync Framework将本地数据库与服务器上的数据库同步(请参阅视频的最后一部分。)

  • 现在有了强大的客户端,我认为没有任何理由不使用SQL Server Express,它是免费的,限制为4GB。

  • SQL CE有太多限制 - 没有存储过程是主要过程。

  • 您需要在任何地方使用GUID作为主键 - 请参阅新的NewSequentialID()。

  • 我喜欢点击一次,这是一个很大的节省时间。

我很期待Silverlight,但是没有时间去研究它。如果现在这样做,我不确定我是否会使用Silverlight。

说完这一切之后,对于没有经验的人来说,这不是一个项目。所以我也会得到一些非常有经验的帮助。