1 说明

本文描述了针对Microsoft Office SharePoint Server 2007的WebPart的开发环境的搭建。开发环境使用的操作系统为Windows 2003 SP1以上,并安装了Windows SharePoint Service 3.0。

 

2 环境搭建

2.1 安装Visual Studio 2005

MOSS的WebPart开发必须使用Visual Studio的2005版本,试验是用的是Team版,根据网上的调查,专业版本就可以满足要求。

 

2.2 安装sdk

开发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软件开发包的内容。可以从以下地址获得:

http://download.microsoft.com/download/5/c/3/5c3a0634-2f0c-4761-958e-7fd93bf8ee30/OfficeServerSDK.exe

 

2.3 安装扩展

Visual Studio 2005默认的开发环境,是不支持MOSS类型的开发的,需要安装扩展的软件包。可以从下面的地址获得:

http://download.microsoft.com/download/e/8/a/e8aa8476-5af6-4f38-aed2-0247a99d2bc6/VSeWSS.exe

因为该软件包的安装,会检测环境中是否存在WSS,所以,要求开发环境的机器必须安装WSS。

如果不安装该扩展包,将无法创建和使用WebPart类型的工程。

如果希望开发工作流的应用,还可以安装工作流的扩展软件包,可以从下面的地址获得。

http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=zh-cn&SrcCategoryId=&SrcFamilyId=5d61409e-1fa3-48cf-8023-e8f38e709ba6&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f7%2fe%2f4%2f7e466ca4-9e63-4224-8c0f-15cab044f769%2fVisual+Studio+2005+Extensions+for+Windows+Workflow+Foundation+(CHS).exe

对于WebPart的开发,这不是必须的。

 

2.4 建工程,写代码

WebPart项目的代码,可以参考以下地址的文章中的内容。

http://blog.csdn.net/downmoon/archive/2005/06/17/396481.aspx

http://blogs.officezealot.com/mauro/archive/2006/05/04/9772.aspx

 

2.5 修改assembly.cs文件。

在部署前,需要修改assembly文件,增加以下两句:

using System.Security;

[assembly: AllowPartiallyTrustedCallers]

如果不进行以上修改,在安装WebPart时,会提示失败。

 

2.6 复制文件

将编译后的Dll复制到Web应用程序目录下的bin目录下。Web应用程序的文件夹位置类似以下路径:

C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin 。

 

2.7 修改web.config

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

 

2.8 在网站中增加webpart

使用具有管理权限的帐户登录网站,在“网站操作”中选择“网站设置”,如下图。

clip_image004

 

在网站设置的页面中,选择Web部件,如下图。

clip_image007

 

在Web部件页面选择“新建”,如下图。

clip_image010

 

在新建Web部件页面中,根据名称,选择要导入的Web部件。

clip_image013

 

完成以上操作,就将web部件导入到Web应用程序的部件库中,下一步就可以在网站中使用该部件。

 

2.9 在页面添加WebPart

在准备使用WebPart的页面中,选择编辑页面,如下图。

clip_image016

 

页面进入编辑模式后,选择一个Web部件区域,点击“添加Web部件”,如下图。

clip_image019

 

在添加Web部件的页面中,选择要使用的Web部件,如下图。

clip_image022

 

如果需要进行更多的设置,可以在添加Web部件后,编辑Web部件,如下图。

clip_image025

 

2.10 注意事项

1 WebPart中的程序必须进行错误处理,不能将异常抛出到页面上,会造成整个页面的错误。

2 开发WebPart的机器是否一定需要安装WSS,目前还没有确定。也有通过添加引用的方式来构建WebPart工程的。这种方法是否可以,还没有验证,地址如下,供参考。

http://www.cnblogs.com/Sunmoonfire/archive/2006/11/08/554206.html

3 默认的情况下,WebPart的开发时没有可视化的设计的,如果希望使用可视化的开发方法,需要使用第三方的包装器,对可视化的ASP.NET用户控件进行包装。

 

3 调试方法

3.1 本机调试

第一步:设置断点

1 修改WebPart工程的输出路径设置为Web应用程序的bin目录。

2 确认WebPart的名字已经被加入到SafeControls的内容中。

3 增加断点。

 

第二步:附加到ASP.Net工作进程(w3wp.exe

1 在VS的“调试”菜单中,选择“附加到进程”。如下图。

clip_image027

 

2 在对话框中选择w3wp.exe进程。如下图。

image

如果存在多个w3wp.exe进程,需要确认其中哪一个是目前调试的Web应用程序使用的,可以使用刷新网页,通过任务管理器查看CPU运行情况的方法来确定是那个进程。

 

3 选择附加,就可以进入调试状态。

 

3.2 远程调试

远程调试需要使用活动目录的管理方式,主要是因为调试ASP.NET程序,需要比较高的权限,不验证身份的远程调试方式无法达到这个要求。

第一步:设置断点

1 修改WebPart工程的输出路径设置为远程Web应用程序的bin目录。

2 确认WebPart已经的名字已经被加入到SafeControls的内容中。

3 增加断点。

 

第二步:启动远程调试服务

在运行WebPart的远程服务器上安装Visual Studio远程调试工具,并运行远程调试监视器。如下图。

image

远程调试工具可以在VS2005的安装光盘中\vs\Remote Debugger\x86\rdbgsetup.exe 。

 

第三步:附加到ASP.Net工作进程(w3wp.exe

1 在VS的“调试”菜单中,选择“附加到进程”。如下图。

clip_image027[1]

 

2 在对话框中修改限定符,内容参考MOSS\Administrator@TFS的写法,格式为域\用户名@机器名。如下图。

image

 

3 在列出的进程中选择w3wp.exe进程。如果存在多个w3wp.exe进程,需要确认其中哪一个是目前调试的Web应用程序使用的,可以使用刷新网页,通过任务管理器查看CPU运行情况来确定是哪个进程。

4 选择附加,就可以进入调试状态。

 

4 附录

关于Web Part的开发,有三种方式的选择。

如果需要使用MOSS的接口,需要从MOSS的WebPart的基类继承。

如果不需要使用MOSS的接口,而需要使用ASP.NET的WebPart功能,可以从ASP.NET的WebPart继承。

如果不属于以上两种,可以借助QuickPart引用UserControl的方法来实现。QuickPart的相关链接如下:

http://www.codeplex.com/quickpart

这三种方式,都可以使用MOSS的对象模型来进行开发,主要的选择在于接口和可视化的需求。

posted on 2007-09-18 11:20  半梦半醒之间  阅读(3707)  评论(7编辑  收藏  举报