Building Web Parts for SPS读书笔记(2)
Building Web Parts for SPS读书笔记(2)
本篇学习如何使用ASP.NET的User Controls来创建Web Part的外观,简化Web Parts的开发和测试。
SharePoint请求机制
SharePoint站点承载于IIS 6.0 Server,并有ISAPI filter(stsfltr.dll)截取所有的请求消息。由SharePoint framework处理这些情况,SharePoint框架参考配置数据库(config database)并基于内容数据库(content database)的信息产生响应。因为这些都运行在ASP.NET框架平台,因为一个HttpHandler (Microsoft.SharePoint.ApplicationRuntime.SharePointHandlerFactory)负责生成SharePoint页面的动态响应。
这样,普通的ASP.NET applications和Web Services在SharePoint扩展的服务器上运行将有困难,可以避免stsfltr.dll截取对普通的ASP.NET applications和Web Services请求的唯一方法是增加这些站点到SharePoint的Excluded Paths,具体操作可以参考《配置SPS的托管路径》written by Rickie。
创建ASP.NET User Control
通过VS.NET轻松创建User Control(.ascx),包括完整的事件处理。该User Control将最终放置在Web Part中。
在Web Part中创建User Control
当User Control开发测试完成后,下一步将User Control嵌入到Web Part中。基于Web Part library创建一个新的项目,该项目需要引用上述ASP.NET User Control编译生成的assembly文件。
此时,CreateChildControls()方法仅需要包含如下代码:User Control对象的创建并增加到Web Part的controls集合。
proteced MyUserControl myUserControl = null;
protected override void CreateChildControls()
{
this.myUserControl = (MyUserControl)Page.LoadControl(“/wpresources/MyUserControl.ascx”);
this.Controls.Add(this.myUserControl);
}
注:MyUserControl指上述创建的ASP.NET User Control类。
protected override void RenderWebPart(HtmlTextWriter output)
{
this.EnsureChildControls();
this.myUserControl.RenderControl(output);
}
在ReaderWebPart()方法中,先调用EnsureChildControls()方法,然后让User Control对象Render自身。
部署Web Part
1. 在SPS web.config配置文件注册该Web Part为Safe Control.
2. 同时将Web Part dll和User Control dll文件部署在bin目录或GAC.
3. 将User Control ascx文件复制到wpresources目录.
Web Part开发人员使用ASP.NET User Controls技术来创建Web Part的内容,通过这种方式,不仅提高开发人员的效率(因为可以利用VS.NET的可视化设计器),而且可以在通常的ASP.NET页面进行测试或debug。
References:
1. Patrick Tisseghem, Building Web Parts for Microsoft SharePoint Products and Technologies, Part II - Web Parts and User Controls, http://www.microsoft.com/belux/nl/msdn/community/columns/tisseghem/webparts2.mspx
2. Patrick Tisseghem, Building Web Parts for Microsoft SharePoint Products and Technologies
3. Rickie, Building Web Parts for SPS读书笔记(1)