我正在开发一个 ASP.NET 网站。用户在线时可以打开网页并处理数据。但我想让他们能够在离线时工作,并在他们再次在线时提交更改。离线应用程序必须非常易于运行,我不想为此开发单独的 Windows 应用程序。
所以我想构建一个可执行文件,它在启动时首先启动本地 IIS,然后在用户浏览器中打开我网站的启动页面(本地可用)。
当然,如果这个可执行文件可以与我的网站文件、IIS 和 SQL Server Express 一起安装在用户系统上,那就太好了。
好的,我重新阅读了您的问题,发现您将在所有客户端系统上安装本地 IIS 和本地数据库。
那么解决方案就很简单了。
申请表(主要形式)
同步模块:
数据库同步模块在定时器/单独的线程中运行,并在后台将本地数据库与在线数据库同步。它将任何未保存的更改发送到服务器,并将任何丢失的数据从服务器下载到本地数据库。您需要控制此模块的速度,以免用户在浏览其他网站或流畅使用应用程序等方面遇到困难。它应该缓慢而稳定,并且一次只发送/请求小块数据。
在离线模式下,它只是定期检查在线连接。一旦可以找到互联网连接,就会通知用户。如果他们允许,它会切换到在线模式。否则,用户将继续离线工作,直到应用程序关闭并再次启动。
在在线模式下,同步模块与在线数据库同步数据。这不会影响用户,因为他们没有连接到这个数据库。相反,它们连接到在线网站和数据库。
简化这种方法需要努力,但最终很容易实现。
这不仅仅是一项任务。这将是一系列同步工作的任务。
您的 Windows 应用程序执行以下操作:
您的服务器执行以下操作: