定制一个简单的Feature

 相信了解MOSS的朋友也了解它的Feature。俗话说Feature is everything!没错,Feature的易用性和强大的功能扩展性。相信也得到不少MOSS发烧友们的热捧,同时我们也从它身上获取了更多的好处,正所谓互利互益。一个MOSS后期的功能点扩展很多都可以由Feature轻松包办,笔者也是这两天刚刚接触,深奥的后面和大家一起学习啦,一般我们可以用Feature轻松定制我们所需要的功能,同时它也可以管理列表事件,和网站功能点的激活与停用。好了,步入正题,本次笔者将用一个VERY EASYDEMO供大家学习。后面希望和大家一起深入。(共享快乐)

STEP1.首先建立一个类库,笔者命名为ASimpleFeature,该类名为MyFeature,然后在添加一个文件夹命名为Features,在该文件夹创建一个子文件夹,命名为MyFeatures,最后在子文件夹添加一个Features.xml文件。其次添加Microsoft.Sharepoint.dll.最后选择项目属性,生成事件添加 copy "$(TargetDir)*.dll" C:\WINDOWS\assembly,然后在新建一个签名,这样就把该Demo的前期工作都做好了!

 

STEP2。编写代码。首先MyFeatures类继承SPFeatureReceiver

using System;

using System.Collections.Generic;

using System.Text;

using Microsoft.SharePoint;

 

namespace ASimpleFeature

{

    public class MyFeature:SPFeatureReceiver

{ //重写它的是个虚方法,分别是激活所发生的事件,关闭,安装,和卸载

//对于重写接口的虚方法,朋友们也别可以去敲打,知道有这几个方法就行了,你只要东东你小指头,轻松在SPFeatureReceiver右侧点击,生成虚构方法就OK 了!(看来我啰嗦了)

        public override void FeatureActivated(SPFeatureReceiverProperties properties)

        {

            SPWeb web = (SPWeb)properties.Feature.Parent;

            web.AllowUnsafeUpdates = true;

            web.Title = "萍水相逢";

            web.Update();

            web.Close();

        }

 

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)

        {

            SPWeb web = (SPWeb)properties.Feature.Parent;

            web.AllowUnsafeUpdates = true;

            web.Title = "Van's Home";

            web.Update();

            web.Close();

        }

 

        public override void FeatureInstalled(SPFeatureReceiverProperties properties)

        {

            //throw new Exception("The method or operation is not implemented.");

        }

 

        public override void FeatureUninstalling(SPFeatureReceiverProperties properties)

        {

           // throw new Exception("The method or operation is not implemented.");

        }

    }

}

 

Features.xml 源码:

 Title为你创建的Feature标题(呵呵,身份证)

Description:描述你这个Feature的作用(可有可无)

Hidden BOOL类型,(可有可无)

Scoap:此属性是以一个枚举,类型,它的取值包括Application Web,Web,Site,在这里笔者选择Web.(必须有)

ReceiverClass:类名称。

ReceiverAssembli:组件拖入GAC生成,一般我们用.NET REFLECTOR软件获得,省事,方便!(笔者强调下,生成的强名称组建一定记得拖入GAC当中,所以笔者刚才上面就直接用COPY指令复制到它的目录咯)。

 

大家如有什么不明白的最后再去SDK里面相关的内容点认真看下:http://msdn.microsoft.com/zh-cn/library/ms460318.aspx

生成项目之后,记得把MyFeatures的文件复制到C:"Program Files"Common Files"Microsoft Shared"web server extensions"12"TEMPLATE"FEATURES .弄好之后,就该stsadm大哥上场发挥作用了,首先安装,在激活。激活的时候

记得给他制定一个站点地址。

 去网站功能看下

 这是可以看到网站的名字变成了俺的布拉格小名啦!

好了,这样证明已经实现最初的计划目标了,该看下关闭和卸载是怎样的

首先关闭功能:

 刷新页面,网站名改回原样。

 变为Van’s Home

最后卸载Features,到此笔者就全部讲完一个EASY Features了!同时也希望能够和大家多多交流,共同进步(我也作为初学者的一员->学而时习之,温故知新,更要不耻下问)

posted @ 2009-04-01 00:18  萍水相逢  阅读(467)  评论(3编辑  收藏  举报