2

我正在开发一个 ASP.NET 网站。用户在线时可以打开网页并处理数据。但我想让他们能够在离线时工作,并在他们再次在线时提交更改。离线应用程序必须非常易于运行,我不想为此开发单独的 Windows 应用程序。

所以我想构建一个可执行文件,它在启动时首先启动本地 IIS,然后在用户浏览器中打开我网站的启动页面(本地可用)。

当然,如果这个可执行文件可以与我的网站文件、IIS 和 SQL Server Express 一起安装在用户系统上,那就太好了。

4

2 回答 2

1

好的,我重新阅读了您的问题,发现您将在所有客户端系统上安装本地 IIS 和本地数据库。

那么解决方案就很简单了。

申请表(主要形式)

  1. 创建一个 Windows 窗体应用程序。
  2. 在窗体上放置一个 WebBrowser 控件和一个 StatusStrip 控件。
  3. 添加两个名为 LocalStartUrl 和 OnlineStartUrl 的字符串资源,其中包含本地和在线网站主页/启动页面的地址。
  4. 在 Form_Load 上,检查在线 Internet 连接并相应地在 webbrowser 控件中启动 LocalStartUrl 或 OnlineStartUrl。您可以显示消息框并使用状态栏来通知用户。

同步模块:

数据库同步模块在定时器/单独的线程中运行,并在后台将本地数据库与在线数据库同步。它将任何未保存的更改发送到服务器,并将任何丢失的数据从服务器下载到本地数据库。您需要控制此模块的速度,以免用户在浏览其他网站或流畅使用应用程序等方面遇到困难。它应该缓慢而稳定,并且一次只发送/请求小块数据。

在离线模式下,它只是定期检查在线连接。一旦可以找到互联网连接,就会通知用户。如果他们允许,它会切换到在线模式。否则,用户将继续离线工作,直到应用程序关闭并再次启动。

在在线模式下,同步模块与在线数据库同步数据。这不会影响用户,因为他们没有连接到这个数据库。相反,它们连接到在线网站和数据库。

简化这种方法需要努力,但最终很容易实现。

于 2012-05-16T21:48:24.267 回答
0

这不仅仅是一项任务。这将是一系列同步工作的任务。

您的 Windows 应用程序执行以下操作:

  • 将离线更改写入磁盘文件/数据库等。
  • 定期检查您的网站/ftp 站点的在线可用性。
  • 只要发现网站可用,并且有一些缓存更改,请将文件提交到网站/ftp 站点。

您的服务器执行以下操作:

  • 每当收到文件时,请检查其有效性和完整性。如果发现正确,请将其放在特定文件夹中。
  • 您服务器上的服务会监视该文件夹,并在其中找到任何文件后立即处理该文件
  • 该服务在处理后将文件移动到另一个文件夹(备份)。
于 2012-05-16T12:27:15.717 回答