做为程序员,我们经常要面对的是对开发模式的选择,比如C/S模式和b/s模式。现在,很多人都似乎比较喜欢选择B/S模式进行web的开发,这其中的原因是很多的。但其中一点很重要的原因,那就是因为B/S开发的话,部署非常之容易,因为这样很容易实现"瘦客户端",客户端只需要使用浏览器就可以运行应用了。但B/S模式下开发的WEB应用,也有其不足之处,主要是由于功能实现起来,是没办法和传统的C/S模式下的winform应用相比的,很多winform下要实现的优秀功能,在Web上都很难实现,或者说有的根本没办法实现。但传统的winform,在部署上也有自己的困难之处,如果客户端多的话,每次部署和版本升级都十分麻烦。
在.net 2.0里,微软新推出了一项叫clickonce(一次点击)的应用程序部署技术,可以很好的解决上面的这个矛盾。在vs.net 2005 beat 2中,已经整合了clickonce的技术,使到用户可以很方便地部署WINFORM开发的程序,很容易地管理其升级部署。本文,将一步步介绍在vs.net 2005中,如何使用clickonce技术来部署windows应用程序。
clickonce能带给我们什么 首先,通过clickonce技术,我们可以实现如下的部署方式:
1) 在设计完winform程序后,可以选择将程序发布到如下的存贮位置:文件系统,本地的Web服务器,FTP站点,远程Web站点。
2) 当应用程序部署到相应的位置后,用户可以通过浏览器浏览一个叫publish.htm的文件,点击下载的链接,将应用程序下载到本机安装。这个publish.htm是部署应用程序的一个入口文件,在下文会继续讨论。
3) 当用户安装完程序后,会自动产生快捷方式到桌面,并且在控制面版的增加删除中会找到该程序。
4) 当用户启动程序时,系统可以首先去检查服务端是否有新的程序版本,如果有的话,则会自动连接服务端,查看是否有新的版本,如果有新的版本的话,则自动下载新的版本到本机并安装
一个简单的clickonce程序部署的例子 首先,我们打开visual studio 2005 beta 2,用C#建立一个叫clickoncedemo的windows应用程序。之后拖放一个按钮到窗体中,在该按钮的click事件中写入如下代码:
private void btnClick_Click(object sender, EventArgs e)
{
MessageBox.Show(System.Reflection.Assembly.GetExecutingAssembly().Location);
}
当运行上面的程序,系统会输出当前应用程序所在的位置,如下图所示:
接下来,我们可以对其进行发布了。我们首先看下在vs.net 2005中,其中的发布选项卡是怎么样的。鼠标右击clickoncedemo工程,选其中的"properties"属性菜单,如下图所示
上图是项目的属性页,其中有许多选项。我们着重介绍其中的"publish"发布选项卡的配置。在最上面的"publish location"选项框中,允许你指定将项目发布的位置。可以点旁边的"…"按钮,进一步浏览确定发布的位置,如下图:
这里,我们可以设定项目要发布的位置,比如文件系统,本地服务器,FTP站点,远程站点等。
接着,我们在"install mode and setting"选项组中,可以点选"Prerequisites..."按钮,这里可以设置要运行该应用程序时,需要额外安装的库文件或其他必须的文件,如下图所示。默认必须安装的是.net framework 2.0。
同时,我们可以选择"install mode and setting"选项卡中的update选项,这个选项卡如下图所示:
其中,默认是采用启动应用程序时检查更新的选项的。当然,你也可以选择,是在应用程序连接上网时自动检查是否有更新的版本,或者是选择当应用程序启动后,以后台进程的方式,自动检查是否有新的版本。
最后,我们选择"installl mode and setting"选项卡中的"options"选项卡,如下图,填入一些关于应用程序的信息。
最后,我们已经设置完毕,可以开始进行部署了。我们使用其中的"publish wizard"发布向导进行发布。首先选定要发布的位置,如下图所示:
点"NEXT"后,出现如下图,这里,可以选择你的应用是在离线或是可以同时运行在离线和在线状态下的
当应用是可以在在线或者离线状态下都可以运行时,发布成功后,应用程序可以在桌面出现快捷方式。当应用程序只能在在线状态下运行时,应用程序只能通过发布页面通过浏览器执行。
最后再选NEXT后,就成功完成了发布了,系统并自动打开IE浏览器,转到publish的页面。我们先来看下,在该应用程序发布到的目的目录下,我们会发现有如下图的文件。
现在我们可以看到我们已经成功将clickoncedemo应用程序发布到当前IIS的根目录下了(d:\inetpub\wwwroot\clickoncedemo),版本是1.0.0.0,并且带了dotnetframework的安装包。而通过浏览器,可以看到如下的安装部署窗口:
此时,按INSTALL CLICKONCEDEMO的链接,就可以进行安装了,IE会打开如下窗口以提示你,目前正在下载一个应用程序安装
此时,选INSTALL就可以进行安装了。
总结 在vs.net 2005中,对winform应用程序的安装部署更加方便了,是采用了所谓的smartclient的方式实现的,使的winform的应用程序也可以通过IE进行部署,并且可以很容易的获得应用程序最新的版本。