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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?