做过SPS网站的朋友都知道,sps站点的webpart可以用这样的方式来部署:
- 编译c# webpart项目代码,将dll、dwp、xml、manifest.xml文件中声明的其他项目文件打包成CAB文件
- 将此CAB文件复制到SPS网站服务器
- 运行-cmd-键入stsadm -o addwppack -filename cabfilepositon(c:/example.cab) -force -url http://...
- 刷新页面查看效果
做了一年这种工作,我总是觉得这种方法太繁琐,首先每个webpart项目都走这些步骤流程,会带来很多重复性的工作;其次,上载服务器和运行部署命令需要远程登陆到服务器或者亲自在服务器上执行,但是一个门户网站要部署的项目很多,小组成员不可能同时全部登录到门户服务器上执行自己的指令,那么就需要等待其他人部署cab文件完成后,再上去部署,尤其是debug webpart的时候,这一步工作就显得格外的费力,等别人从服务器下来吧,自己的程序就没法调试。
我就总在想有没有这样的工具,通过一个或者几个按钮,直接把编译好的项目打包cab、上载到服务器、运行部署命令呢?
后来干脆,我决定自己开发个小工具来做这些事情。
开发的流程是这样的,
- 考虑到需要服务器自动部署CAB文件,我将整个项目分为客户端和服务器段结构,C/S模式开发。客户端实现功能:查找需要压缩的项目文件(dll、dwp、xml等),压缩CAB,上载服务器,通知服务器需要执行部署命令。服务器端实现功能:接收上载文件、执行部署命令、记录部署日志。
- 把整个部署过程分成几个模块,每个模块定义一个CLASS文件,例如打包cab的操作我定义为MakeCab.cs,上载服务器的操作定义为UpLoad.cs。。。在每个类文件中写相应的操作代码。
- winform窗体设计:客户端
运行效果展示
首先在sps门户服务器运行刚才制作的服务器端程序,点击“开始监听”按钮进行监听,程序运行在线程内,循环监听客户端发来的消息,当有消息发送来时运行部署命令,并记录日志。
然后在本地编译webpart项目程序“projectname",运行刚才制作的自动部署客户端程序,填写项目名称和服务器地址
点击“开始部署”按钮,部署成功后提示“自动部署已经成功”。你可以刷新页面,查看部署后的页面效果。
总体来说,这个小工具封装了查找项目文件、压缩cab、上载文件、运行部署命令等操作,节省了大量的开发时间,提高工作效率。
程序用.net2003开发,无需数据库支持,程序涉及文件查找、压缩、文件读写、c/s模式下上载文件、执行process进程、socket通信、线程管理等c#语言内容。
最后,感谢大家欣赏本文,如果大家对于此工具开发有何建议或者疑问,请EMAIL给我,tjumaster@yahoo.com.cn。