使用Features 扩展SharePoint Server 2007 -转

http://www.cnblogs.com/chairongzhen/articles/1066450.html
Feature构架已经扩展到允许开发人员创建定制Features。 通过使用 SharePoint Portal Server 2007新的部署形式可以部署Features,即解决方案部署。 解决方案是定制软件包(例如WSP文件)或可重新分配的cab文件,是由开发商开发,    sharepoint管理员部署的。 管理员可以将Features部署到个人网站或所有网页前端服务器。
   在这篇文章,我将演示创建和部署一个Event Handler Feature,Event Handler Feature可以在网站上,网站集上,网页应用程序上或者Farm Level上激活。 

Feature组件
   一个Feature可以包括任何数量的文件,但是它必须包括一个feature.xml文件。 feature.xml文件或Feature manifest是Feature的驱动器,在调用一个Feature时,这是sharepoint看到的第一个文档。
在Feature目录下,Features被组织成文件夹,放在12个hives下面。SharePoint Server 2007把所有的系统文件放置在下面的路径中:
%SystemDrive%\Program Files\Common Files\Microsoft Shared\web server extensions\12 

    除了feature.xml文件,Features可以包括子文件夹和辅助文件,如单元文件。例如:事件处理器参考,作为Features一部分部署的ASPX页面,ASCX文件,DLL 和RESX文件。

Event Handler Feature
    sharepoint Event Handler是一个程序,通过sharepointList,List Item或Sites增强并增加功能。通过使用Feature可以将Event Feature部署到新的或现有网站。 SharePoint Object Model提供几个Event类,这些Event类通过List,List Item或Sites实现event handlers。

同步和异步事件
    除了异步事件, sharepoint服务器2007推出同步事件,即在事件发生之前就能激活。 在同步事件被删除之前,它可以限制一个项目,文件库或网站。 同步事件使得用户不能从文件库删除一个项目或者限制用户从该文件库中删除栏目。
SharePoint Object Model展现了从Microsoft.SharePoint assembly中继承的事件类别。 主要有三大事件类:
• spitemeventreceiver
• splisteventreceiver
• spwebeventreceiver
   每一类都包括同步和异步方式,与List,List Item或Web Level一起工作。 在这篇文章,我将展示如何连接一个ItemDeleting, FieldDeleting 或SiteDeleting Event来限制用户从文件库删除一个项目或者限制用户从该文件库中删除栏目。

SPItemEventReceiver
    通过继承SPItemEventReceiver 类中的一个成员,开发者可以限制用户删除或更新列表中的项目。 下面描述了一些重要的SPItemEventReceiver类成员:


    我用一个同步事件例如ItemDeleting做演示 ,ItemDeleting限制用户删除列表(文件库)中的条目 。通过指定一个Feature Schema 文件中ListTemplateId属性,如itemeventreceiver.xml , 你可以用任何类型的列表文件库来调用这一事件。
    看下面关于temeventreceiver.cs和 itemeventreceiver.xml的屏幕截图,来定义ListTemplateId 和 Assembly。


ItemEventReceiver.cs类




itemeventreceiver.xml文档
   下表列出了默认列表模板整数 IDs,你可以用来为事件处理器定义模板ID时。



列表模板身份证及列表模板如下:
100 通用列表
101 文档库
102 调查
103 链接
104 公布列表
105 通讯录
106 事件一览表
107 任务表
108 Discussion board
109 图库
110 数据源
111 站点模板库
113 Web Part库
114 列表模板库
115 xml形式库
120 定制网名单
200 会议系列列表
201 会议议程一览表
202 与会者名单
204 会议决定名单
207 会议的目标名单
210 会议文本框
211 Meeting Things To Bring list
212 会议工作页面列表
300 门户网站名单
1100 事件追踪
2002 个人文档库
2003 私人文件库


splisteventreceiver
    通过继承spitemeventreceiver类别的一个成员,开发商可以限制用户删除或更新网站中的列表。 下面描述的是一些重要spitemeventreceiver类别成员:

    我将用一个同步事件例如FieldDeleting做演示,限制用户从一个列表(文档库)删除文件。 在这种情况下,我再次为文件库详细说明listeventreceiver.xml文件中listtemplateid = 101。
spwebeventreceiver

    通过继承SPWebEventReceiver类别中一个成员,开发者可以限制用户从网站集中删除网站,或者完全删除一个网站集。下面描述了一些重要的SPWebEventReceiver类别成员。




为了示范,我用一个同步事件即webdeleting ,限制用户从网站集删除一个网站。
建设解决方案
我们需要visual studio 2005创建一个解决方案,提供所需功能。
为SharePoint Sever应用程序创建事件处理器所需步骤如下:
• 在visual studio .NET 2005中创建C#.NET类别库解决方案并命名,如EventHandlerFeature 。
• 在项目菜单上,选择Add Reference到Open Reference对话框。
• 下拉到windows sharepoint Services,单击该references microsoft.sharepoint.dll 。
• 在项目解决方案内创建一个新文件夹,并命名,如" Features " 。
• 在Features文件夹内创建三个文件夹,并命名itemeventreceiver , listeventreceiver webeventreceiver文件夹。
• 为itemeventreceiver 文件创建feature.xml和feature schema文件
feature.xml文件属性
Feature Tag的一些属性说明如下:
属性:ID
价值:GUID
描述:为Feature包含载有全球唯一的标识符。

属性:Title 
价值:Text
描述:回到功能标题。 限255字。

属性:Scope 
价值:Farm/WebApplication/Site/Web
描述:可以包含以下其中一个值:Farm (farm), WebApplication (Web application), Site (site collection), and Web (Web site).

属性:Hidden
价值:True/False
描述:这个属性默认为false 。
 
属性:AlwaysForceInstall
价值:True/False
描述:Optional Boolean。在安装中强制安装Feature,即使已经安装了Feature,就是真。例如,如果设置为真,无论什么时候,只要用户试图安装Feature(即使已经安装了)。功能安装插图编号要么使用scanforfeatures或者使用installfeature命令行操作来终止用户,这个属性默认为FALSE。 AlwaysForceInstall 属性影响所有Features的功能。 

看feature.xml文件下的屏幕截图。

  从listeventreceiver 和webeventreceiver文件夹重复上述步骤。
• 创造一个新的 C#.NET类别,并命名,如itemeventreceiver.cs类别。 为了通过使用itemdeleting会员限制用户从一个列表或文档库中删除一个项目,要增加microsoft.sharepoint命名空间,并从spitemeventreceiver类别继承这一类别。
• 重复上述步骤,并创建两个类别并命名,如listeventreceiver.cs和webeventreceiver.cs 。
• 建立解决方案
• 通过使用.NET命令提示符的SN工具,或者详细说明解决方案属性里的标识组件名称,安装解决方案。
注:这篇文章附有完整的解决方案和程序包文件的源代码。

Packaging the Features

   在sharepoint服务器2007中,通过解决方案将Features, Site Definitions, Web Parts, Template Files, Assemblies and Code Access Security (CAS)包装并部署安装到sharepoint前端服务器。
   建立一个解决方案包的步骤如下:
• 创建manifest.xml文件,作为同一项目的一部分,其中包含信息解决途径和功能文件途径,作为整个解决方案的一部分。
• 创建Diamond Discovery File,即ddf文件,其中载有信息,能将文档压缩成cab文件。
• 在窗口命令提示符中,在ddf文件上运行makecab.exe,产生.wsp文件。 注意:可以从微软网站下载makecab.exe文件,,并应复制到同一目录,此目录包括Visual Studio Project Files。
• 看到下面的屏幕显示,通过使用makecab.ex命令行工具创建.WSP文档。



部署功能

部署解决方案步骤叙述如下:
• 使用stsadm.exe命令行工具,将.WSP 文档添加到sharepoint解决方案储存库中。


• 浏览sharepoint中央管理页面。
• 单击"操作"选项卡,选择"方案管理" ,然后在一个Farm里查看方案部署列表。



下面列出了 Farm中部署的解决方案列表。


• 点击" eventhandlerfeature "链接,部署解决方案到一个指定的web应用程序。
• 点击" Deploy Solution " ,部署EventHandlerFeature Solution到Web Application。 看下面的屏幕截图。
 

激活解决方案

• 现在浏览站点设置,并选择所需要的网站里的网站功能。
• 选择想要的网站功能,点击"激活"按钮,以启动该功能。 看下面的屏幕截图,了解详细内容。


你可以通过指定URL,使用stsadm命令行工具,激活某一具体网址的功能。

posted @ 2008-04-26 08:42  彷徨......  阅读(657)  评论(0编辑  收藏  举报