繁体   English   中英

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

[英]Tools for Building an OCA (Occasionally Connected Application)

我将构建一个内部的,偶尔连接的应用程序(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真的只是一个可行的选择吗? 似乎是由于变化跟踪等等......思想?

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

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

由于需要更改数据捕获更改跟踪 ,Synch Framework将极大地迫使您使用SQL 2008后端,这两者都是SQL 2008唯一的功能。

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

就个人而言,我会说:

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

如果您在脱机时创建内容而未连接,并且在连接时更新数据库,则使用unique-identifier作为密钥。

这比使用自动增量键更容易

在处理偶尔连接的应用程序之后,我建议您查看SQL Server CE以获取客户端计算机,并使用Sync Services来处理连接。 这是一个很好的教程。

看起来你可以从头开始创造这些东西。

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM