我想构建一个可以在线和离线模式下工作的Web应用程序(SaaS)。用户在离线时需要有限的功能,并且当他再次上线时需要完整的功能访问。我想到了以下几个选项:
让用户下载本地服务器(如Cassini)并设计体系结构以允许Web应用程序中的联机和脱机模式。我不确定它将如何完成,但我相信所有命令都将通过本地服务器进行路由。然后,本地服务器将决定它是访问本地资源还是服务器。 让用户在他的系统上安装应用程序将打败SaaS背后的整个想法。
使用Google Gears - 我刚刚查看了Google文档在离线模式下的工作方式。它在用户的系统上安装Google Gears,它非常简洁快速,并在本地复制所有文件。提供了一个链接以访问脱机版本。这对我来说似乎是一个不错的选择,因为它本身集成了本地服务器,关系数据存储区和工作池,但 Google Gears是否足够成熟以便在生产中使用?
是否有人在此类应用程序上工作/工作。欢迎提示。
编辑@ 1: 我对Silverlight不是很熟悉,是否可以在这种情况下使用它。
EDIT @ 2:以下链接提到SilverLight可用于开发脱机应用程序Offline SilverLight 我正在寻找在开发中使用SilverLight的人的专家意见。用户可以离线工作吗?用户可以在关闭浏览器窗口后重新打开同一个网页吗?
答案 0 :(得分:1)
如果您选择让用户在他们的计算机上安装应用程序,我会考虑开发Windows窗体应用程序而不是Web应用程序,基本上因为这似乎是一个更合理的解决方案。如果您使用ClickOnce部署应用程序,则可以非常轻松地使客户端保持最新状态。
从用户的角度来看,我认为Gears已经成熟。我在其中使用了Gmail,Google日历和Google文档,几乎没有任何问题。我不知道开发人员的工具。使用Google Clusure Library可能会有所帮助,因为它有适用于Google Gears的方法。
根据您需要支持的网络浏览器,您还可以查看HTML 5。 O'Reilly的在线图书使用HTML,CSS和JavaScript构建iPhone应用程序有一章关于making a web app work in offline mode。
答案 1 :(得分:0)
在我看来,“网络应用程序”和“离线模式”有点矛盾。
我已经看到过一些以这种方式使用Silverlight的例子。而且,有一次,我实现了一个以这种方式工作的WinForms智能客户端应用程序。不过,这些天我肯定会关注Silverlight。