ASP.NET Web 应用程序中的脱机模式

Posted

技术标签:

【中文标题】ASP.NET Web 应用程序中的脱机模式【英文标题】:Offline mode in ASP.NET Web Application 【发布时间】:2010-12-30 18:09:53 【问题描述】:

我想构建一个可以在联机和脱机模式下工作的 Web 应用程序 (SaaS)。用户在离线时需要有限的功能,而当他再次在线时需要完整的功能访问。我想到了以下选项:

    让用户下载本地服务器,例如 Cassini,并设计一种架构以允许 Web 应用程序中的在线和离线模式。我不确定它将如何完成,但我相信所有命令都将通过此本地服务器进行路由。然后本地服务器将决定是访问本地资源还是访问服务器。 让用户在他的系统上安装应用程序会破坏 SaaS 背后的整个想法。

    使用 Google Gears - 我刚刚检查了 Google 文档在离线模式下的工作方式。它在用户的系统上安装了 Google Gears,非常简洁和快速,并将所有文件复制到本地。提供了访问离线版本的链接。这对我来说似乎是一个不错的选择,因为它本身集成了本地服务器、关系数据存储和工作池,但是 Google Gears 是否成熟到可以在生产中使用?

有没有人工作过/正在开发这样的应用程序。欢迎提出想法。

编辑@1: 我对 Silverlight 不是很熟悉,不知道它是否可以用在这样的场景中。

编辑@2:以下链接提到SilverLight可用于开发离线应用程序Offline SilverLight 我正在寻找在他们的开发中使用 SilverLight 的人的专家 cmet。用户可以离线工作吗?用户可以在关闭浏览器窗口后重新打开同一个网页吗?

【问题讨论】:

如果你说让用户在他的系统上安装应用程序会破坏 SaaS 背后的整个理念,那么 Google Gears 怎么能不击败 SaaS? @Dave:我提到它安装起来非常简洁和快速。如果我要求用户在他的机器上安装一个网络服务器和一个本地数据库,那么情况就不同了 【参考方案1】:

如果您选择让用户在他们的计算机上安装应用程序,我会考虑开发 Windows 窗体应用程序而不是 Web 应用程序,主要是因为这似乎是一个更合乎逻辑的解决方案。如果您使用 ClickOnce 部署应用程序,那么让客户端保持最新状态非常容易。

从用户的角度来看,我认为 Gears 是成熟的。我在其中使用 Gmail、Google 日历和 Google Docs,几乎没有任何问题。我不知道开发人员工具。使用 Google Clusure Library 可能会有所帮助,因为它具有特定于 Google Gears 的方法。

根据您需要支持的网络浏览器,您还可以查看html 5。 O'Reilly 的在线书籍使用 HTML、CSS 和 javascript 构建 iPhone 应用程序有一章是关于 making a web app work in offline mode。

【讨论】:

【参考方案2】:

在我看来,“网络应用”和“离线模式”有点矛盾。

不过,我已经看到了一些以这种方式使用 Silverlight 的示例。而且,有一次,我实现了一个以这种方式工作的 WinForms 智能客户端应用程序。不过,这些天来,我肯定会研究 Silverlight。

【讨论】:

以上是关于ASP.NET Web 应用程序中的脱机模式的主要内容,如果未能解决你的问题,请参考以下文章

显示从 ASP.NET MVC 中的命令行进程获取的数据

以发布模式发布 asp.net web 应用程序

在调试模式下发布了一个 asp.net Web 应用程序?

为啥 Azure Web 角色上的 IIS 需要如此频繁地重新编译 ASP.NET 应用程序?

asp.net web服务应用程序问题 高手速进 c#

如何为我的 ASP.NET Web 应用程序引用 App_Data 文件夹中的 Sqlite db 文件?