我将建立一个内部的,偶尔连接的应用程序(OCA)。您建议我采用哪些技术。
以下是我的参数:
我正在寻找有关选择路径的具体建议。合并复制或Sync Framework数据库同步提供程序?订阅服务器上的SQL Express或SQL CE?我可以为DAL使用LINQ to SQL吗?
Silverlight'离线/不在浏览器应用中'Example Here,可行吗?
这是我的第一份大型商业应用程序,欢迎任何有经验的评论。
根据要求,这里有一些关于数据类型的其他信息。我的用户是护士和社会工作者,他们去会员家中为他们创建“计划”或“健康评估评论”。这些是药物清单或当前“提供者”列表。实现成员目标的步骤或当前/过去诊断的列表。这样的事情。
也是典型的会员姓名,地址,电话号码等。这主要是一个便于报告的数据存储和检索应用程序。很少“处理”发生,护士和社会工作者在指定成员的团队中工作,所以我通常几乎没有交叉或潜在的数据冲突。护士和SW也负责MCP的不同领域(会员中心计划)
补充问题;如果我可以使用SQL 2008,Sync Framework真的只是一个可行的选择吗?由于改变跟踪等原因,这似乎是这样......想法?
答案 0 :(得分:4)
一旦解决了变更检测和数据移动的问题,其他一切都是微不足道的。换句话说,像WPF,Silverlight,Forms甚至WCF这样的技术都与您的主要问题正交,您的选择应该基于您的个人喜好和经验。要破解的真正难点是断开连接和同步变化。这留下了两个开箱即用的途径:Synch Framework或Replication。
对于您的场景,我会说,定义Synch Framework。与所有形式的复制一样,合并复制适用于与间接断开连接的系统。最重要的复制只能在静态名称上运行。从各种热点和ISP连接的笔记本电脑有一个讨厌的习惯,即每次连接都要更改FQ名称。只有在使用VPN排序并且VPN通常是主要支持问题时,复制才能克服这个问题。复制不是为OCA系统的高移动性而设计的。
Synch Framework几乎会强迫您使用SQL 2008后端,因为需要Change Data Capture或Change Tracking,这两者都是SQL 2008的唯一功能。
您仍然需要解决许多难题(身份验证,版本控制和升级,数据冲突解决策略,保护客户端数据以防意外丢失等)
答案 1 :(得分:2)
就个人而言,我会说:
答案 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。
说完这一切之后,对于没有经验的人来说,这不是一个项目。所以我也会得到一些非常有经验的帮助。