本文描述了针对Microsoft Office SharePoint Server 2007的WebPart的开发环境的搭建。开发环境使用的操作系统为Windows 2003 SP1以上,并安装了Windows SharePoint Service 3.0。
MOSS的WebPart开发必须使用Visual Studio的2005版本,试验是用的是Team版,根据网上的调查,专业版本就可以满足要求。
开发WebPart,需要安装SharePoint Service 3.0的软件开发包。可以从以下地址获得:
http://download.microsoft.com/download/e/2/b/e2b1d36c-ca25-4860-aedf-8eea2314637f/WssSDK.exe
因为本次开发的目标环境是MOSS,所以建议安装MOSS的开发包,其中也包含了SharePoint Service 3.0软件开发包的内容。可以从以下地址获得:
Visual Studio 2005默认的开发环境,是不支持MOSS类型的开发的,需要安装扩展的软件包。可以从下面的地址获得:
http://download.microsoft.com/download/e/8/a/e8aa8476-5af6-4f38-aed2-0247a99d2bc6/VSeWSS.exe
因为该软件包的安装,会检测环境中是否存在WSS,所以,要求开发环境的机器必须安装WSS。
如果不安装该扩展包,将无法创建和使用WebPart类型的工程。
如果希望开发工作流的应用,还可以安装工作流的扩展软件包,可以从下面的地址获得。
对于WebPart的开发,这不是必须的。
WebPart项目的代码,可以参考以下地址的文章中的内容。
http://blog.csdn.net/downmoon/archive/2005/06/17/396481.aspx
http://blogs.officezealot.com/mauro/archive/2006/05/04/9772.aspx
在部署前,需要修改assembly文件,增加以下两句:
using System.Security;
[assembly: AllowPartiallyTrustedCallers]
如果不进行以上修改,在安装WebPart时,会提示失败。
将编译后的Dll复制到Web应用程序目录下的bin目录下。Web应用程序的文件夹位置类似以下路径:
C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin 。
WebPart使用前,需要修改Web应用程序的配置文件。
(1)增加SafeControls中增加一行,类似下面的写法。
<SafeControl Assembly="HelloWebPart" Namespace="HelloWebPart" TypeName="*" Safe="True" AllowRemoteDesigner="True" />
(2)修改信任级别。
将<trust level="WSS_Minimal" originUrl="" />改为<trust level="WSS_Medium" originUrl="" />
也可以将WSS_Medium改为Full。
也可以参考下面地址进行修改,但是其中的方法主要针对SPS2003,在MOSS中需要参考设置。
http://xivi.cnblogs.com/archive/2005/02/17/105323.html
http://xgp1226.blogdriver.com/xgp1226/598244.html
使用具有管理权限的帐户登录网站,在“网站操作”中选择“网站设置”,如下图。
在网站设置的页面中,选择Web部件,如下图。
在Web部件页面选择“新建”,如下图。
在新建Web部件页面中,根据名称,选择要导入的Web部件。
完成以上操作,就将web部件导入到Web应用程序的部件库中,下一步就可以在网站中使用该部件。
在准备使用WebPart的页面中,选择编辑页面,如下图。
页面进入编辑模式后,选择一个Web部件区域,点击“添加Web部件”,如下图。
在添加Web部件的页面中,选择要使用的Web部件,如下图。
如果需要进行更多的设置,可以在添加Web部件后,编辑Web部件,如下图。
1 WebPart中的程序必须进行错误处理,不能将异常抛出到页面上,会造成整个页面的错误。
2 开发WebPart的机器是否一定需要安装WSS,目前还没有确定。也有通过添加引用的方式来构建WebPart工程的。这种方法是否可以,还没有验证,地址如下,供参考。
http://www.cnblogs.com/Sunmoonfire/archive/2006/11/08/554206.html
3 默认的情况下,WebPart的开发时没有可视化的设计的,如果希望使用可视化的开发方法,需要使用第三方的包装器,对可视化的ASP.NET用户控件进行包装。
第一步:设置断点
1 修改WebPart工程的输出路径设置为Web应用程序的bin目录。
2 确认WebPart的名字已经被加入到SafeControls的内容中。
3 增加断点。
第二步:附加到ASP.Net工作进程(w3wp.exe)
1 在VS的“调试”菜单中,选择“附加到进程”。如下图。
2 在对话框中选择w3wp.exe进程。如下图。
如果存在多个w3wp.exe进程,需要确认其中哪一个是目前调试的Web应用程序使用的,可以使用刷新网页,通过任务管理器查看CPU运行情况的方法来确定是那个进程。
3 选择附加,就可以进入调试状态。
远程调试需要使用活动目录的管理方式,主要是因为调试ASP.NET程序,需要比较高的权限,不验证身份的远程调试方式无法达到这个要求。
第一步:设置断点
1 修改WebPart工程的输出路径设置为远程Web应用程序的bin目录。
2 确认WebPart已经的名字已经被加入到SafeControls的内容中。
3 增加断点。
第二步:启动远程调试服务
在运行WebPart的远程服务器上安装Visual Studio远程调试工具,并运行远程调试监视器。如下图。
远程调试工具可以在VS2005的安装光盘中\vs\Remote Debugger\x86\rdbgsetup.exe 。
第三步:附加到ASP.Net工作进程(w3wp.exe)
1 在VS的“调试”菜单中,选择“附加到进程”。如下图。
2 在对话框中修改限定符,内容参考MOSS\Administrator@TFS的写法,格式为域\用户名@机器名。如下图。
3 在列出的进程中选择w3wp.exe进程。如果存在多个w3wp.exe进程,需要确认其中哪一个是目前调试的Web应用程序使用的,可以使用刷新网页,通过任务管理器查看CPU运行情况来确定是哪个进程。
4 选择附加,就可以进入调试状态。
关于Web Part的开发,有三种方式的选择。
如果需要使用MOSS的接口,需要从MOSS的WebPart的基类继承。
如果不需要使用MOSS的接口,而需要使用ASP.NET的WebPart功能,可以从ASP.NET的WebPart继承。
如果不属于以上两种,可以借助QuickPart引用UserControl的方法来实现。QuickPart的相关链接如下:
http://www.codeplex.com/quickpart
这三种方式,都可以使用MOSS的对象模型来进行开发,主要的选择在于接口和可视化的需求。