如何编写AJAX/ASP.NET web应用程序的脱机版本

如何编写AJAX/ASP.NET web应用程序的脱机版本,asp.net,web-applications,offline,Asp.net,Web Applications,Offline,我们有一个web应用程序,它使用AJAX与ASP.NET web服务进行通信。我们想编写另一个可以脱机使用的版本。我们需要尽可能地重用现有代码。我们应该考虑什么样的方法? 应用程序当前正在使用XmlHttpRequest从服务器获取动态数据。显然,离线版本将无法与服务器对话,但它确实需要与某些东西对话!我确信在客户机上安装IIS或Cassini会奏效,但我希望有一个更简单的解决方案。JavaScript没有其他方式与外部代码通信吗?您想构建一个离线工作的web应用程序吗??这是办不到的 您可以将

我们有一个web应用程序,它使用AJAX与ASP.NET web服务进行通信。我们想编写另一个可以脱机使用的版本。我们需要尽可能地重用现有代码。我们应该考虑什么样的方法?


应用程序当前正在使用XmlHttpRequest从服务器获取动态数据。显然,离线版本将无法与服务器对话,但它确实需要与某些东西对话!我确信在客户机上安装IIS或Cassini会奏效,但我希望有一个更简单的解决方案。JavaScript没有其他方式与外部代码通信吗?

您想构建一个离线工作的web应用程序吗??这是办不到的

您可以将接口代码从不同DLL中的其余代码中分离出来,并创建一个windows应用程序来模拟web应用程序的行为。这样,您就有了两个不同的用户界面,但用于业务规则和数据访问的代码相同


我真的看不到任何其他方式

您想构建一个离线工作的web应用程序吗??这是办不到的

您可以将接口代码从不同DLL中的其余代码中分离出来,并创建一个windows应用程序来模拟web应用程序的行为。这样,您就有了两个不同的用户界面,但用于业务规则和数据访问的代码相同


我真的看不到任何其他方式

其中一种可能性是使用卡西尼号。这是一个web服务器,充当ASP.Net运行时的主机。您可以在Windows应用程序或Windows服务中托管Cassini。在这种情况下,您不必重写web应用程序和web服务


大多数其他解决方案确实需要重写web应用程序和web服务。根据您编写现有应用程序的方式,您可以重复使用或多或少的代码

其中一种可能性是使用卡西尼号。这是一个web服务器,充当ASP.Net运行时的主机。您可以在Windows应用程序或Windows服务中托管Cassini。在这种情况下,您不必重写web应用程序和web服务


大多数其他解决方案确实需要重写web应用程序和web服务。根据您编写现有应用程序的方式,您可以重复使用或多或少的代码

如果您希望创建包的脱机版本,到目前为止最大的问题是需要将您的站点安装到IIS的本地副本中,注册虚拟目录等。。几年前,我曾短暂地追求这一目标,但在挫折中放弃了。这是可以做到的:许多软件供应商(如DevExpress)都这样做,这样您就有了他们演示项目的本地副本。事实上,我能够做到这一点。问题是我的电脑综合症的典型症状。根本无法保证我的大多数最终用户在技术上都能胜任这项工作

因此,我强烈建议您不要走这条路,除非您有非常精通技术的用户和庞大的支持人员

但还有一个非常重要的问题:您是否将所有数据访问代码抽象到DAL?如果没有,那么在管理数据访问方面也有很多工作要做


更新:用户Rine推荐了卡西尼号。我只是想让你知道,我追求卡西尼和另一个第三方网络服务器以及。我认为卡西尼号存在许可证问题,但可能是错误的——已经有一段时间了。但是,我清楚地记得,使用这种方法时遇到了一个又一个障碍,而且几乎没有什么文档可以帮助我解决问题。

如果您希望创建包的脱机版本,到目前为止,您最大的问题是需要将您的站点安装到IIS的本地副本中,注册虚拟目录,等等。。几年前,我曾短暂地追求这一目标,但在挫折中放弃了。这是可以做到的:许多软件供应商(如DevExpress)都这样做,这样您就有了他们演示项目的本地副本。事实上,我能够做到这一点。问题是我的电脑综合症的典型症状。根本无法保证我的大多数最终用户在技术上都能胜任这项工作

因此,我强烈建议您不要走这条路,除非您有非常精通技术的用户和庞大的支持人员

但还有一个非常重要的问题:您是否将所有数据访问代码抽象到DAL?如果没有,那么在管理数据访问方面也有很多工作要做


更新:用户Rine推荐了卡西尼号。我只是想让你知道,我追求卡西尼和另一个第三方网络服务器以及。我认为卡西尼号存在许可证问题,但可能是错误的——已经有一段时间了。然而,我清楚地记得,使用这种方法,我遇到了一个又一个障碍,几乎没有什么文档可以帮助我解决问题。

如果您希望web应用程序脱机运行,您可以
将Web服务器IIS for ASP绑定到本地主机127.0.0.1地址。之后,您可以通过在web浏览器中键入与联机相同的方式来访问web应用程序。

如果希望web应用程序脱机运行,则需要绑定到本地主机127.0.0.1地址的web服务器IIS for ASP。之后,您可以通过在web浏览器中键入与联机相同的方式来访问web应用程序。

如果您的AJAX依赖于XMLHttpRequest,您可以:

通过XMLHttpRequest生成XML的静态版本,然后放入磁盘上的文件夹中。 重写XMLHttpRequest URL,使其指向磁盘上的文件。 重写XMLHttpRequest,这样他们就不会检查状态。文件://协议的状态总是0。 所有JScript都在file://页面和http://页面上工作

当然,这不是开发静态页面的最佳方式,但它可能会为您节省一些重写时间。

如果您的AJAX依赖于XMLHttpRequest,您可以:

通过XMLHttpRequest生成XML的静态版本,然后放入磁盘上的文件夹中。 重写XMLHttpRequest URL,使其指向磁盘上的文件。 重写XMLHttpRequest,这样他们就不会检查状态。文件://协议的状态总是0。 所有JScript都在file://页面和http://页面上工作


当然,这不是开发静态页面的最佳方式,但它可以为您节省一些重写时间。

现在有很多离线web应用程序。它只是从AJAX发展而来

例如:

WoaS wiki在一根棍子上/stickwiki,整洁的wiki

谷歌文档和Gmail将离线


在脱机模式下运行这些Web应用程序不需要Web服务器。只需将所需的数据、脚本以XML的形式存储在客户端。

现在有很多离线web应用程序。它只是从AJAX发展而来

例如:

WoaS wiki在一根棍子上/stickwiki,整洁的wiki

谷歌文档和Gmail将离线


在脱机模式下运行这些Web应用程序不需要Web服务器。只需将所需的数据、脚本以XML形式存储在客户端。

您是否考虑过HTML5与应用程序缓存和脱机存储一起使用?

您是否考虑过HTML5与应用程序缓存和脱机存储一起使用?

我没有遇到过任何专门为asp.net构建的框架,比如PHP或RoR。
下面是Steven的一篇好文章,让您开始了解HTML 5和ASP.Net

我还没有遇到任何专门为ASP.Net构建的框架,比如PHP或RoR的框架。 下面是Steven的一篇好文章,帮助您开始使用HTML5和ASP.Net

显然,离线版本将无法与服务器对话,但它确实需要与某些东西对话

输入HTML5 LocalStorage。它的工作原理类似于数据库,使您能够将数据放在客户机上。事实上,您必须用javascript重新编写部分代码并将其传输到客户端,但这样它就可以脱机工作了

本地存储的工作原理如下: -Setter:window.localStorage.setItemKEY,值 -Getter:window.localStorage.getItemKEY -删除:window.localStorage.removitemkey

要使主页脱机工作,需要创建清单。这用于在客户端上存储完整的站点。有关舱单的更多信息,请参阅此文档:

显然,离线版本将无法与服务器对话,但它确实需要与某些东西对话

输入HTML5 LocalStorage。它的工作原理类似于数据库,使您能够将数据放在客户机上。事实上,您必须用javascript重新编写部分代码并将其传输到客户端,但这样它就可以脱机工作了

本地存储的工作原理如下: -Setter:window.localStorage.setItemKEY,值 -Getter:window.localStorage.getItemKEY -删除:window.localStorage.removitemkey

要使主页脱机工作,需要创建清单。这用于在客户端上存储完整的站点。有关舱单的更多信息,请参阅此文档:

不确定你在找什么。AJAX本身意味着您将要与web服务器通信。离线是指你不想与服务器通信,还是只想让它在内部运行而不是在互联网上运行?他可能只是说它有很多整洁的Javascript和DHTML。不确定你在找什么。AJAX本身意味着您将要与web服务器通信。离线是指你不想与服务器通信,还是只想让它在内部运行而不是在互联网上运行?他可能只是指它有很多整洁的Javascript,DHTML.VS在开发过程中使用ASP.Net Dev Web服务器在本地运行Web应用。我相信这个web服务器是基于Cassini的。有关本地ASP.Net web服务的详细信息,请参阅。在开发过程中,VS使用ASP.Net开发人员web服务器在本地运行web应用。我相信这个web服务器是基于Cassini的。有关本地ASP.Net web服务的详细信息,请参阅
“我见过DOJO做的。。虽然我不确定细节是否足以回答这个问题,但我已经看到DOJO已经完成了。。虽然我不确定细节是否足以回答这个问题