从ASP.NET网站创建独立的Windows应用程序

时间:2012-05-16 08:21:15

标签: asp.net windows web

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

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

当然,如果可以将这个可执行文件与我的网站文件,IIS和SQL Server Express一起安装在用户的系统上,那将会很棒。

2 个答案:

答案 0 :(得分:1)

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

那么解决方案非常简单。

应用程序(主要表单)

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

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

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

    在线模式下,同步模块会将数据同步到&来自在线数据库。这不会影响用户,因为它们未连接到此数据库。相反,它们连接到在线网站和数据库。

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

答案 1 :(得分:0)

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

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

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

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

  • 每当收到文件时,请检查其有效性和完整性。如果发现正确,请将其放在特定文件夹中。
  • 服务器上的服务会监视该文件夹,只要在那里找到任何文件,就会处理文件
  • 服务在处理后将文件移动到另一个文件夹(备份)。