フィーチャー
最終更新日: 2009年12月22日
適用対象: SharePoint Foundation 2010
この記事の内容
フィーチャーのオブジェクト モデル
フィーチャーで使用する XML
フィーチャーに関連する領域
フィーチャーに関するその他の情報
フィーチャーとは、Microsoft SharePoint Foundation 内の 1 つ以上の拡張機能を含むコンテナーです。フィーチャーには Feature.xml ファイルと 1 つ以上の要素ファイルが含まれます。これらの XML ファイルは、フィーチャー定義とも呼ばれます。
フィーチャーには、テンプレート、ページ、リスト定義、イベント ハンドラー、ワークフロー、 カスタマイズなどのオブジェクトを含めることができます。フィーチャーを含むディレクトリにも、ページ、イメージ、ECMAScript (JavaScript、JScript) ファイル、またはカスケード スタイル シート (CSS) など、その他のリソース ファイルを含めることができます。また、フィーチャーは、そのフィーチャーよりも広い範囲に適用された別のフィーチャーに依存することもできます。たとえば、サイト レベルを適用範囲とするフィーチャーは、サイト コレクション レベルを適用範囲とするフィーチャーに依存できます。ただし、上位の範囲でアクティブ化されるフィーチャーは、それよりも小さい範囲でアクティブ化されるフィーチャーに依存できません。
フィーチャーにはフィーチャー レシーバーも含まれます。これは、フィーチャーをインストール、アンインストール、アクティブ化、または非アクティブ化するときに実行するコードが含まれるアセンブリです。フィーチャー レシーバーの詳細については、「フィーチャーのイベント」を参照してください。
サーバー ファーム – フィーチャーをサーバー ファームで使用できます。
Web アプリケーション – フィーチャーを Web アプリケーションで使用できます。
サイト コレクション – フィーチャーをサイト コレクションで使用できます。
サイト – フィーチャーを 1 つのサイトで使用できます。
フィーチャーのオブジェクト モデル
フィーチャーは、SharePoint Foundation オブジェクト モデルを使用して操作できます。この操作には、フィーチャーに関する情報の検索、インストールされているフィーチャーのリストの取得、アクティブ化の依存関係の確認などが含まれます。オブジェクト モデルを使用してフィーチャーを操作するには、以下のクラスを使用できます。
Microsoft.SharePoint 名前空間
- SPFeature – フィーチャーを表すオブジェクト。フィーチャーのコレクションは SPFeatureCollection オブジェクトに格納されます。SPFeatureCollection にアクセスするには、SPWebService、SPWebApplication、SPSite、および SPWeb オブジェクトの Features プロパティを使用します。コレクション内にフィーチャーが含まれている場合、そのフィーチャーは、指定された範囲でアクティブ化されています。
- SPFeatureProperty – SPFeature オブジェクトの 1 つのプロパティを表すオブジェクト。プロパティのコレクションは SPFeaturePropertyCollection オブジェクトに格納されます。SPFeaturePropertyCollection オブジェクトにアクセスするには、SPFeature オブジェクトの Properties プロパティを使用します。
- SPFeatureScope – フィーチャーに指定できる異なる範囲の列挙、これには、Farm、WebApplication、Site、および Web が含まれます。
- SPFeatureDependency – 別のフィーチャーによって依存されるフィーチャーを表すオブジェクト。別のフィーチャーによって依存されるフィーチャーのコレクションは SPFeatureDependencyCollection オブジェクトに格納されます。SPFeatureDependencyCollection オブジェクトにアクセスするには、SPFeatureDefinition オブジェクトの ActivationDependencies プロパティを使用できます。
Microsoft.SharePoint.Administration 名前空間
- SPFeatureDefinition – 名前、範囲、ID、バージョンなど、フィーチャーの基本定義を表すオブジェクト。フィーチャー定義のコレクションは SPFeatureDefinitionCollection オブジェクトに格納されます。SPFeatureDefinitionCollection オブジェクトにアクセスするには、SPFarm または SPSite オブジェクトの FeatureDefinitions プロパティを使用できます。
- SPElementDefinition – フィーチャーがアクティブになっているとき、または使用されているときに準備される要素を表すオブジェクト。要素定義のコレクションは SPElementDefinitionCollection オブジェクトに格納されます。SPElementDefinitionCollection オブジェクトにアクセスするには、SPFeatureDefinition オブジェクトの GetElementDefinitions(CultureInfo) メソッドを使用します。
フィーチャーで使用する XML
フィーチャーは、基本的に、2 つの XML ファイル (Feature.xml ファイルと Feature 要素ファイル) を使用して構成されます。この 2 つのファイルを使用して、範囲、依存関係、およびフロントエンド Web サーバーに展開するすべての関連ファイルを定義します。
Feature 要素のマニフェスト ファイル
Feature.xml ファイルを使用して、アセンブリの場所、ファイル、依存関係、またはフィーチャーをサポートするプロパティを指定します。ElementManifest 要素 (フィーチャー) 要素は、フィーチャーを定義する、付随する機能マニフェスト ファイルを指します。属性に使用される値の詳細については、「Feature.xml ファイル」を参照してください。Feature.xml ファイルの基本の形式は次のとおりです。
<Feature Title="Feature Title"
Scope="FeatureScope"
Id="GUID"
xmlns="https://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="FeatureManifestFileName.xml" />
</ElementManifests>
</Feature>
Feature 要素ファイル
Feature 要素ファイルには任意の名前を付けることができます。Feature.xml ファイルを定義する場合、ElementManifest 要素 (フィーチャー) 要素内のファイル名を参照する必要があります。このファイルには、CustomAction 要素 要素、ユーザー インターフェイスのカスタマイズ、リボンのカスタマイズ、およびその他の多くのカスタマイズを含めることができます。ファイルの構造の詳細については、「Feature スキーマ」を参照してください。次に、Feature 要素ファイルの形式の例を示します。
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="https://schemas.microsoft.com/sharepoint/">
<CustomAction Id="Ribbon.Library.Actions.AddAButton"
Location="ViewToolbar"
RegistrationId="101"
RegistrationType="List"
Title="Add a Ribbon Button">
<CommandUIExtension>
<CommandUIDefinitions>
<CommandUIDefinition
Location="Ribbon.Library.Actions.Controls._children">
<Button Id="Ribbon.Library.Actions.Controls.NewRibbonButton"
Command="NewRibbonButtonCommand"
Image16by16="/_layouts/images/FILMSTRP.GIF"
Image32by32="/_layouts/images/PPEOPLE.GIF"
LabelText="Hello World"
TemplateAlias="o2" />
</CommandUIDefinition>
</CommandUIDefinitions>
<CommandUIHandlers>
<CommandUIHandler
Command="NewRibbonButtonCommand"
CommandScript="javascript:alert('Hello, world');" />
</CommandUIHandlers>
</CommandUIExtension>
</CustomAction>
</Elements>