技术开发 频道

.NET Framework中的无接触部署

  从 Form Load 事件中的辅助线程开始:

  ·使用后台辅助线程生成 Web 服务调用,以提高第一次窗体加载过程中应用程序的总体响应速度。        

  ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf GetTasksWebServiceBackground))

  有关如何在后台线程中更新 Windows 窗体的详细信息,请访问知识库文章 Q318604“Populate DataGrid on Background Thread with Data Binding by Using Visual Basic .NET”,网址为 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q318604。

  在 Windows 窗体运行的同时,编写一个作用于 XML Web Service 调用的后台线程。

  Private Sub GetTasksWebServiceBackground(ByVal data As Object)调用 Web 服务。        
  Dim ws As localhost.Service1
= New localhost.Service1()
  m_ds
= ws.GetTasks()更新 Windows 窗体数据网格。                    
  Dim mi As New MethodInvoker(AddressOf UpdateDataGridForm)        
  Dim ia As IAsyncResult
= BeginInvoke(mi)        
  Cursor
= Cursors.Default    End Sub

  为了说明如何将应用程序部署到 Web 服务器上,我们将任务管理应用程序部署到 Tasks Web Service Web 文件夹中。首先将生成文件夹更改为 TaskMgmtWS Web Service IIS 虚拟目录。方法是打开“TaskManagement Property Pages”(TaskManagement 属性页)对话框,然后将输出路径设置为“..\TaskMgmtWS\”。

  将生成结果路径设置为 Web 服务器后,可以通过简单的重新编译来部署此应用程序。应用程序生成后,我们可打开 Internet Explorer 并浏览到应用程序 http://localhost/TaskMgmtWS/TaskManagement.exe。请注意,安装了 .NET Framework 的 Internet Explorer 不会要求您保存该应用程序,而是尝试运行该程序。如果要从 Web 页下载应用程序,可以使用“file://”协议处理程序。

  应用程序现已通过 HTTP 下载并安装到程序集下载缓存中。运行该应用程序之前,将检查安全策略以确保应用程序拥有执行其操作的权限。

  上面介绍了如何通过 Web 服务器运行该应用程序,下面就让我们更改该应用程序,看看对它进行升级有多么容易。选择 DataGrid,可以使用 Auto Format(自动套用格式)属性快速更改背景样式。

  然后重新生成应用程序,以更新 Web 服务器上的 .exe 文件。最妙的是当用户请求返回到 Windows 窗体时,应用程序代码将自动更新。.NET Framework 将自动检查程序集的时间戳,查看是需要再次下载该程序集,还是只需通过用户的程序集下载缓存来运行该程序集。

0
相关文章