首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

SharePoint 2010 一种快捷的开发调度方式

2013-04-12 
SharePoint 2010 一种快捷的开发部署方式我们都知道,通过Visual Studio开发SharePoint项目的话,Visual Stu

SharePoint 2010 一种快捷的开发部署方式

我们都知道,通过Visual Studio开发SharePoint项目的话,Visual Studio默认是将编译后的DLL文件部署到GAC,为了下文描述方便暂称之为GAC部署。

这种模式很简单,不需要额外的配置,只需右键点击项目选择Deploy就可以将代码部署到SharePoint环境,Visual Studio会自动将DLL复制到GAC。

但是,SharePoint为了提高性能,从GAC里加载代码后,会将之缓存到内存里,以避免频繁加载。当我们准备将下一个版本的代码部署到GAC时,必须回收应用程序池或者重启IIS来清除之前的缓存,让SharePoint从GAC里加载最新的代码版本。

Visual Studio会自动帮我们回收或重启IIS,问题在于,我们的开发环境性能通常都很一般,不论是公司还是私人的电脑,预算都有限,不可能为了一台开发用的机器投入太多的金钱,而且开发机器上总是有杂七杂八的东西,这就导致了回收/重启时间会很长,以笔者机器为例,8G内存,双核处理器,重启时间是2分钟4分钟不等,虽然我们可以利用这等闲暇去上个厕所或者喝杯茶,但是经常为了几个小小的代码改动而接二连三的重启、等待,花费的总时间是非常可观的。

 

下面笔者介绍另一种部署,简称之为Bin部署吧,这种部署需要先配置下Visual Studio以及web.config,不需要回收、重启IIS,编译代码后,只需要刷新页面,仅仅只需5秒钟左右即可看到最新的结果。

在应用这种部署之前一些你必须知道的事情:

    Bin部署应该仅仅用于开发环境,为了安全考虑,在QC、UAT、Production环境中我们还是需要将程序集部署到GAC,所以当我们在开发机上完成开发后,还是需要将程序集部署到GAC上进行测试。Bin部署只能保留一个代码版本,但是GAC部署可以保留多个。Bin部署不需要强命名的程序集,但是GAC部署必须要,所以最好还是给每个用到的程序集加上强命名。Bin部署是部分信任级别,GAC是完全信任级别,所以Bin部署的代码的执行权限有限制,下文会提到如何将之提升到完全信任级别,同样再强调一下,仅仅只能在开发机上进行提升。你可以直接将公用程序集从一个站点的Bin文件夹拷贝到另一个站点的Bin文件夹,以实现代码重用。Bin部署不能用于Time Job,Service application, Event Receivers,Workflow等部署,只有运行在IIS work process的代码才能采用Bin部署。

 详细的配置步骤:

1. 打开Visual Studio,在项目的属性窗口,将Assemby Deployment Target改成WebApplication。

 SharePoint 2010 一种快捷的开发调度方式

2. 将Outout 路径改成目标SharePoint站点的Bin文件夹的路径。

SharePoint 2010 一种快捷的开发调度方式

 3. 将下面图片里的部分添加到Package.Template.xml,注意修改对应的程序集以及命名空间的名称。

 SharePoint 2010 一种快捷的开发调度方式

 4. 将下面的一段加到站点的web.config里

         <securityPolicy>
         [...]
         <trustLevel name=”Full” policyFile=”internal”/>
         </securityPolicy>

5.  在web.config里注释掉默认的权限级别,然后添加新的权限级别

         <!--<trust level="WSS_Minimal" originUrl="" />-->
         <trust level="Full" originUrl="" />

6.  如果只是修改前台页面的内容,右击项目,选择Quick Deploy,选择Copy to SharePoint Root (需要先安装CKSDEV),刷新页面,检查最新的结果。

SharePoint 2010 一种快捷的开发调度方式

7. 如果只是修改了code behind 文件,右击项目,选择Rebuild,刷新页面,检查最新的结果。    

SharePoint 2010 一种快捷的开发调度方式

 

如果你想要将Bin部署切换到GAC部署,只需要将第一步的Assembly Deployment Target 改成GlobalAssemblyCache,以及第三步里的DeploymentTarget改成GlobalAssemblyCache即可。

热点排行