SharePoint 用户控件和视觉网络部件的应用

SharePoint中,用户控件和视觉网络部件是增强网站功能的重要组件。本文将详细介绍如何创建、部署以及在SharePoint中使用这些控件。

步骤概述

实现此功能的基本步骤如下:

  • 像平常一样编写用户控件,通常使用Visual Studio设计器。
  • 部署预编译的用户控件解决方案
  • 将控件放置在Web应用程序中。
  • 准备SharePoint以使用用户控件解决方案
  • 将控件放置在SharePoint Web部件应用程序中。

接下来,将详细探讨这些步骤。

1. 创建用户控件

首先,创建一个新的解决方案,并添加一个新的ASP.NET Web应用程序,命名为'CustomUIControl'。确保在创建项目时选择了.NET Framework 3.5。由于将这个控件暴露给SharePoint,而SharePoint项目只能在3.5下创建,因此必须使用较低版本的框架来创建控件项目。

删除Default.aspx页面,并通过右键单击项目并选择“添加/新建项”来添加Web用户控件。将控件命名为CustomerControl.ascx。

像平常一样编写ascx页面的代码。

2. 编译和签名项目

完成控件后,首先使用Visual Studio签名项目。要签名项目,请转到项目的属性,签名选项卡,勾选签名程序集并指向现有或发行新密钥。

使用Visual Studio构建项目将构建CustomUIControl.dll。需要使用Framework 2.0编译器和特殊设置来编译项目,以获得单独的ascx程序集。为了获得这个程序集,打开命令窗口并更改目录到2.0 Framework。确保以管理员身份运行。

使用以下命令编译项目:

aspnet_compiler -p c:\source\article\customuicontrol\customuicontrol -v customuicontrol -fixednames c:\source\articlebuild -keyfile c:\source\article\customuicontrol\customuicontrol\contstest.snk

解释每个路径的含义:

  • c:\source\article\customuicontrol\customuicontrol 是项目的路径。
  • customuicontrol 是正在编译的项目名称。
  • c:\source\articlebuild 是构建的位置。这必须与当前项目的路径不同,并且必须是空的,否则在编译过程中会出现错误。
  • c:\source\article\customuicontrol\customuicontrol\controlstest.snk 是签名CustomUIControl项目的密钥文件位置。

查看编译目录,将看到编译过程创建的几个文件。

需要CustomUIControl.dll和App_Web_customercontrol.ascx.cdcab7d2.dll这两个文件。后者包含将用于UI的Web控件部分。

将这两个程序集放入GAC。

以管理员身份从VS2010运行命令窗口。

运行以下命令在GAC中注册程序集:

gacutil /i c:\source\articlebuild\bin\customuicontrol.dll gacutil /i c:\source\articlebuild\bin\app_web_customercontrol.ascx.cdcab7d2.dll

验证是否已将这两个程序集添加到GAC。可以在C:\Windows\assembly中找到注册的程序集。

3. 测试控件

添加一个新的ASP.NET Web应用程序来测试控件。

将这两个程序集引用添加到新项目中;确保在属性窗口中将复制本地设置为True。Web应用程序不必查看GAC,但如果有需要,可以修改web.config以从GAC添加这些程序集。

在Web应用程序中,选择想要放置控件的aspx页面,并添加一个标签来注册控件。

可以通过双击References文件夹中的App_Web_customercontrol.asxc.cdcab7d2.dll来查找标签的值。

如所见,对于注册标签:

<%@ Register TagPrefix="CC" Namespace="ASP" Assembly="App_Web_customercontrol.ascx.cdcab7d2" %>

程序集名称是App_Web_customercontrol.ascx.cdcab7d2,命名空间是ASP,页面上使用的控件名称是customercontrol_ascx。

将新标签添加到aspx页面:

<cc:customercontrol_ascx runat="server" ID="test1" />

运行项目以验证控件的行为是否符合预期。

4. 添加SharePoint特性项目

将一个新的SharePoint特性项目添加到解决方案中。

SharePoint2010项目下添加一个新的Visual Web Part,并将其命名为SPCustomerPart。

将Web部件重命名为CustomerWebPart,将ascx控件重命名为CustomerWebPartUserControl.ascx。

解决方案资源管理器应该类似于下面的屏幕截图:

将CustomUIControl.dll和App_Web_customercontrol.ascx.cdcab7d2.dll添加到SharePoint项目中,在属性窗口中将复制本地设置为False。

需要确保程序集在SharePoint项目的web.config中被引用;否则它将不知道在哪里找到它。

定位web.config,在默认配置下,位于C:\inetpub\wwwroot\wss\VirtualDirectories\80。

打开web.config文件,并添加程序集注册到文件中:

可以在GAC c:\windows\assembly中查找之前注册的程序集的版本和PublicKeyToken。

5. 在SharePoint中添加用户控件

回到SharePoint项目,打开CustomerWebPartUserControl.ascx,并添加注册标签和用户控件到页面上:

这应该看起来完全像Web应用程序标签,或者如果愿意,可以在SharePoint的web.config中添加一个标签,那样就不需要页面上的Register标签了。

此时,应该能够运行特性并将其添加到SharePoint页面上。

当验证特性按预期工作后,可以部署特性。

在命令窗口中,将目录更改为c:\program files\common files\microsoft shared\web server extensions\14\bin或浏览到stsadm.exe所在的位置。

运行以下命令进行部署

stsadm -o addsolution -filename [full path your.wsp] stsadm -o deploysolution -name [no path just name.wsp] -allowgacdeployment -immediate -url [your url]
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485