我们公司在美国和加拿大部分地区的每一次灾难性事件中都有人员。一个例子是他们在卡特里娜飓风事件发生后立即非常普遍。
我们正在构建一个应用程序来改进他们在可能是 ASP.NET 或 WPF 的领域中的工作,并且断开连接要求使我们相信它将是一个 WPF 应用程序。我们的员工需要能够创造他们的工作,提供所有的保险和测量数据,并将其保存在数据库中,无论互联网是否可用。
我们试图解决的问题是,在发生灾难性事件时,即使互联网不可用,我们的员工也需要能够使用我们的新应用程序。(他们在卡特里娜飓风中离线了 3 天)
有没有其他人必须解决这样的要求,并就他们如何在小尺寸设备上运行,同时保存数据就好像它们仍然连接到后端服务和数据库一样提出建议?我们还必须将安全性纳入其中,并且做得足够好,以便他们输入的数据可以毫无问题地加载到连接的数据库中。
我们的长期目标是还为 Android 和 iPad 平板设备以及笔记本电脑提供此应用程序。我们最初对 ASP.NET 的渴望是它为我们提供了一个直接用于平板电脑环境的应用程序。在他们拥有的旧应用程序中,他们运行本地服务器,在平板电脑上运行远程连接并通过终端服务器运行应用程序。不漂亮。不漂亮。
我觉得这是一个严肃的问题,不是主观的,所以希望这不会被删除。
我们当前在服务器端的架构是具有存储库模式的实体框架、用于满足返回复合数据传输对象的 CRUD 请求的 WCF 服务以及供客户端使用的代理。
我有兴趣听取其他开发人员的意见和这个设计难题。
添加到讨论中的其他信息
提供了很多好资料!!!我肯定要看看 Microsoft Sync。对于断开连接的数据库,我将只在初始数据库中放置列表(枚举)。工作,如果需要,我们称之为干书的项目,将为我们正在帮助的每个客户添加。(尽管我希望在我们清洁和烘干房屋时互联网能够恢复)一旦我们有了稳定的链接,这些表格就会填充回主机。在卡特里娜飓风的情况下,我们的办公室也失去了互联网连接,这意味着办公室几天也没有提供通信救济。
昨晚我意识到我们的客户端代理是一切正常工作的关键!客户端仍然不知道它是在线还是离线,并将同步过程留在该库中。我们正在发现我们今天谈论的数据量。我还想明确一点,ASP.NET 是一种喜欢的东西,但一个胖客户端(实际上是带有 XAML 的 WPF)可能最终成为我们的最终状态。
现在 - 进行多次更新。断开连接的工作将由一个特许经营权进入各个家庭。事实上,我们的总部向特定活动派遣特定的特许经营权。所以我们减少了多人更新记录问题的可能性(如果有的话)。原因是他们正在为每项工作(人的家庭/办公室/企业)创建记录,并且只有一个专营权会处理它。当然,这也意味着如果他们断开连接数天,那么创建工作的设备(记录谁、在哪里、条件、保险公司等)也是唯一知道工作的设备。但这可以忍受。事实上,我们也许能够在集线器上同步特许经营设备。
我期待听到更多关于您如何实现断开连接的环境的故事。
谢谢!!!
关注微软的新技术
我被指示观看 TechEd 2012 的视频,并认为我可能有答案。演讲是关于使用 ASP.NET 和 MVC4 以及 2 个库来实现断开连接的行为。起初我认为它会很棒,但随着它的继续,它让我有点担心。
首先,使用 javascript 后端来支持断开连接的 I/O 不会产生信心。作为一名编译器专家(以及编写两种解释性语言的人),我真的不喜欢依赖于解释性 javascript 的关键业务模型。和脚本!可能是我,但这只是让我不寒而栗。
然后他们展示了他们的“伟大”(???)编程模型,让您的 ViewModel 仅作为 javascript 存在。我不喜欢用记事本编写的应用程序(asp.net 和 javascript),也可能(因为缺少智能感知)。
无意冒犯任何 asp 爱好者,但是一个编写良好的经过语法和类型检查的 C# 程序让我对软件更有信心,而不是希望和祈祷类名称空间已正确键入而没有任何交叉检查手段的东西。我已经看到了太多小时的调试,以寻找一个最终出现在一个巨大的命名空间中的错误,并且在它的名称中转置了 ie。我将我的想法与团队中的其他高级开发人员擦肩而过,我们都对这项技术达成了共识。
但我们继续看。(我觉得这更像是一本日记而不是一个问题):)