我们有一个大的数据管理网站使用的几个属性。我们的一些客户有停机时间(他们在一两个小时内无法上网)。我们希望我们的站点支持离线数据查看和库存管理(典型的数据搜索和添加/删除),当用户联机时,我们可以将更改同步回中央数据库。客户使用多个平台,如Windows、iOS等。
我们一直在研究几种不同的选择,以下是主要的选择-
开发HTML5支持的脱机web应用程序。开发一种“后备”机制,并与应用程序缓存中的数据进行交互,如本文所述(http://www.htmlgoodies.com/html5/tutorials/introduction-to-offline-web-应用程序-使用-)
开发基于桌面的跨平台解决方案。我还记得那个很受欢迎的老单曲。这里有一篇文章(您对跨平台应用(包括网)有什么建议?跨平台应用程序-包括-web)和另一篇文章(跨平台开发的技术选择(桌面和手机)?平台开发-桌面和电话?rq=1)
我意识到桌面解决方案可能很难维护,并导致一些兼容性问题和需求测试环境。
HTML5能处理中到高层次的复杂性和数据流吗?还是更好地依靠基于桌面的应用来获得更好的可伸缩性和性能?
发布于 2013-10-22 18:42:52
如果您可以忽略Management和客户的期望,以及您的团队现有的技能集和现有代码,我将使用桌面解决方案。事实上,完全抛弃浏览器系统,将其全部从桌面上完成。
长期而言,用C#或Java这样的语言编写的桌面应用程序比用HTML和Javascript编写的大型web系统要容易得多。除非人们需要使用普通的机器(就像他们刚刚在公共图书馆坐下来的那样)使用普通的浏览器来访问你的站点,否则我会把这个系统变成一个应用程序。
(也就是说,如果你能忽略.)
发布于 2013-10-22 19:06:08
定义“更好”。这个词在不同的时间对不同的人来说意味着不同的东西。
如果您或您的团队精通Javascript和HTML/CSS,我建议HTML5 (特别是如果您的用户不能总是安装应用程序)。我觉得JS是一个非常有效和易于管理的语言,如果你正确地理解如何使用它。
如果你或你的团队对Mono等人更精通,我就会这样做。不过,我认为在Mono中实现离线模式和同步要比使用HTML5 5‘S API的JS要复杂一些。
脱机模式方法都非常相似,因为您必须在本地跟踪数据,并且能够成功地将数据从本地模式同步到远程模式,同时有效地(最好是自动地)解决diff/merge问题。
发布于 2013-10-23 08:36:52
如果你要去HTML5,我已经开发了一个项目来做这件事!
它使用版本控制的原则来检测冲突,并且通常很好地考虑了关于工作原理和原则的良好文档,即使您不使用它,也会很有帮助,还有一个非常技术性的演示。
我刚刚在一个分支中添加了一个MongoDB服务器组件,很快就会集成到主服务器中。
您可以看到项目论GitHub
哑光
https://softwareengineering.stackexchange.com/questions/215251
复制相似问题