一、 资源准备:
1、stsadm
C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\BIN
2、Cabinet Manager
3、WPPackager
http://www.microsoft.com/downloads/details.aspx?FamilyId=0FDA5912-C136-4B44
4、Assembly(若对WebPart进行调试,须在本机安装Sharepoint Services)
Microsoft.SharePoint.dll
local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\ISAPI
Microsoft.SharePoint.Portal.dll
Microsoft.SharePoint.Portal.SingleSignon.dll
5、WebPart Template
http://www.microsoft.com/downloads/details.aspx?FamilyId=CAC3E0D2-BEC1-494C-A74E-75936B88E3
安装过程需要sharepoint.dll,本机上如果没有可以到安装了Sharepoint Services的机器上拷贝一个以便完成安装(不过要想对WebPart进行调试,那么必须在本机上安装Sharepoint Services)
6、sn.exe
\Program Files\Microsoft Visual Studio .NET 2003\SDK\V1.1\Bin\
二、 开发部分
1、WebPart的安全问题
WebPart在默认的安全等级时无法访问SharePoint Object Model,即无法通过wss sdk 来访问SPS站点中列表、文档库、文档、用户等信息。我们可以:
(1)为WebPart创建一个单独的Policy文件
(2)将WebPart的.dll文件加上强名后放入GAC
(3)提升SPS虚拟站点的信任等级:将Web根目录中的web.congif文件的<trust level = “WSS_Minimal” originUrl=””/>修改为<trust level = “WSS_Medium” originUrl=””/>
2、开发示例
3、可视化开发
KaneBoy的解决方案(http://blog.joycode.com/kaneboy/archive/
4、包含Winform的开发示例
(1)嵌入到webcontrol,加入标记
<object id="print" classid="http:print.dll#Print.UserControl1" Width="728" Height="460"></object>
(Print.dll为生成的控件文件名,Print.UserControl1为该控件的命名空间NAMESPACE)。
(2) cab安装webpart的时候如何将webpart依赖的dll部署到bin中?
假设一个WebPart依赖一个tree.dll,Manifest.xml的<Assemblies>节中增加一行<Assembly FileName="tree.dll"></Assembly>就可以了。这样在安装的时候就会认出依赖的程序集的
5、SSO
三、 部署部分
1、手工部署
(1)确保正确配置WebPart1.dwp/Manifest.xml文件
(2)将WebPart添加为信任控件
在虚拟根目录的web.config中:<SafeControl Assembly="SampleWebPart" Namespace="SampleWebPart" TypeName="*" Safe="True" />
(3)将第一步创建的“WebUserControl1.ascx”和第二步编译生成的“SampleWebPart.dll”拷贝到SPS服务器上用来承载SPS站点的虚拟主机的根目录下的“bin”目录下(如果没有此目录,就手工创建一个)
2、通过(.CAB)方式将WebPart部署到SPS服务器上
(1)部署到服务器的所有虚拟站点中:stsadm –o addwppack –filename ***.cab
(2)升级已部署的Webpart:stsadm –o addwppack –filename ***.cab –force
可以将WebPart的输出路径指向虚拟服务器的bin目录,这样每次编译成功后就自动完成了注册工作
或直接覆盖bin目录下的.dll文件
(3)删除已部署的 Webpart从所有虚拟站点: 在Page里删除;stsadm –o deletewppack -name ***.cab
4、通过(.MSI)方式将WebPart部署到SPS服务器上
(1) 将所需要的文件拷贝到“C:/WPPackager”。
SampleWebPart.dll (VS.NET编译生成的Assembly文件)
WebPart1.dwp (WebPart描述文件)
Manifest.xml (WebPart部署文件)
boketang.jpg (WebPart中用到的图片资源文件)
(2) 根据打包需要编辑wppackager wppackager.xml文件
(3) wppackager wppackager.xml
(4)WebPart Packager将为你生成一个“SampleWebPart.msi”的安装文件
wppackager.exe的错误日志生成目录:"C:\Documents and Settings\wferr\Local Settings\Temp"
5、其他要点
* 指定在某个虚拟站点(而不是前面演示的SPS服务器上的所有虚拟站点)上安装和删除WebPart;
stsadm –o addwppack filename c:\***.cab –url http://www.contoso.com
* 列出SPS服务器上所有安装的WebPart;
stsadm –o enumwppacks –url http://www.contoso.com
* 将有StrongName的WebPart安装到SPS服务器的GAC中;
(1)防止版本号增量[assembly: AssemblyVersion("
(2)sn.exe -k c:\strongKey.snk
(3)在assembly 中设置强名 [assembly: AssemblyKeyFile("c:\\strongKey.snk")]
(4)获取公钥 Public Key sn.exe -T c:\inetpub\wwwroot\bin\MyWebPart.dll
写入web.config
<SafeControl
Assembly=“MyWebPart, Version=
PublicKeyToken=PublicKeyToken"
Namespace="MyWebParts"
TypeName="*"
/>
* 在“bin”和“GAC”两种安装方式下,”stsadm”是如何放置WebPart所用到的资源文件的;