做为程序员,我们经常要面对的是对开发模式的选择,比如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选项,这个选项卡如下图所示:
其中,默认是采用启动应用程序时检查更新的选项的。当然,你也可以选择,是在应用程序连接上网时自动检查是否有更新的版本,或者是选择当应用程序启动后,以后台进程的方式,自动检查是否有新的版本。