構成要素: ソリューション
最終更新日: 2011年4月22日
適用対象: SharePoint Foundation 2010
この記事の内容
ソリューションのオブジェクト モデル
ソリューションに使用される XML
ソリューション関連のトピック
ソリューションの詳細情報
Microsoft SharePoint Foundation ソリューション フレームワークには、SharePoint Foundation への拡張をソリューション パッケージ (.wsp ファイル) にバンドルする手段が用意されています。ソリューション パッケージは, .wsp 拡張子付きの CAB ファイルに格納されます。このパッケージには、フィーチャー、サイト定義、Web パーツ、およびアセンブリを含めることができます。ソリューション フレームワークは、ソリューションを展開するための統合インフラストラクチャになります。ソリューション フレームワークをフィーチャーと組み合わせて使用すると、指定した範囲で機能を有効または無効にすることができます。フレームワークには、既存のソリューションをサーバー ファーム内の別のサーバーに展開およびアップグレードするためのメカニズムもあります。より広範囲なユーザーをサポートするためにソリューションをローカライズすることもできます。
ソリューションには、サンドボックスとファームの 2 つの種類があります。
サンドボックス ソリューションは、サイト コレクション管理者がサイト コレクションのソリューション ギャラリーに展開できます。これらの種類のソリューションでは、サーバー オブジェクト モデルのサブセットにアクセスすることができ、ソリューションはセキュリティで制限されたコンテキストで実行されるので、ソリューションのコードを分離して監視することができます。サンドボックス ソリューションは、ソリューションの検証機能を使用して検証できます。ファーム管理者は、サンドボックス ソリューションを有効または無効にすることに加えて、使用量の制限を設定し、悪意のあるコードからファーム内のサーバーを保護することができます。
注意
"サンドボックス" の代わりに、"ユーザー" という表現が使用されることがあります。特に、サンドボックス ソリューション システムのオブジェクト モデルについてはそうです。たとえば、システムの主要な API の名前空間は Microsoft.SharePoint.UserCode であり、サンドボックス ソリューションの実行を管理するサービスは、フロントエンド Web サーバーの Windows [サービス] ダイアログで [SharePoint 2010 ユーザー コード ホスト] と呼ばれます。これは、"サンドボックス ソリューション" と呼ばれるようになる前の名前を反映しています。
ファーム ソリューションは、ファーム管理者によってフロントエンド Web サーバーに展開されます。これらのソリューションでは、サーバー オブジェクト モデルに無制限でアクセスできます。このソリューションには、使用量の制限は適用されません。
ソリューションのオブジェクト モデル
ソリューションは SharePoint Foundation のオブジェクト モデルを使用して管理できます。これにはアップグレード、取り消し、および展開の操作が含まれます。オブジェクト モデルを使用して、プログラムによって使用量の制限を設定することや、サンドボックス ソリューションの検証機能を定義することもできます。
すべてのソリューションのオブジェクト モデル
SPSolution – サーバー ファーム上のソリューションを表します。
SPSolutionCollection – SPSolution オブジェクトのコレクションを表します。
SPSolutionLanguagePack – ソリューションの言語パックを表します。
SPSolutionLanguagePackCollection – SPSolutionLanguagePack オブジェクトのコレクションを表します。
サンドボックス ソリューションのオブジェクト モデル
SPUserSolution – サンドボックス ソリューションを表します。
SPUserSolutionCollection – SPUserSolution オブジェクトのコレクションを表します。
SPBlockedSolution – ブロックされたサンドボックス ソリューションを表します。
SPSolutionValidator – サンドボックス ソリューションの検証機能の作成に使用される基本クラスを表します。
ソリューションに使用される XML
ソリューションの構成には、manifest.xml というファイル名のソリューション マニフェストを使用します。ソリューション マニフェストは、ソリューション パッケージのルートに格納されています。このファイルで、ソリューション パッケージに含めるフィーチャー、サイト定義、リソース、およびアセンブリを定義します。ソリューション マニフェストに含まれていないファイルは一切処理されません。次にソリューション マニフェストの例を示します。
<Solution SolutionId="SolutionGuid" xmlns="https://schemas.microsoft.com/sharepoint/">
<FeatureManifests>
<FeatureManifest Location="FeatureLibrary\feature.xml"/>
</FeatureManifests>
<TemplateFiles>
<TemplateFile Location="ControlTemplates\Template.ascx"/>
</TemplateFiles>
<RootFiles>
<RootFile Location="ISAPI\MyWebService.asmx">
</RootFiles>
<Assemblies>
<Assembly DeploymentTarget="GlobalAssemblyCache" Location="ms.samples.sharepoint.myFeature.dll"/>
</Assemblies>
</Solution>
ソリューション パッケージを作成するときに、ディスク上のファイルの場所とソリューション パッケージのファイルをマップする DDF ファイルも作成できます。SharePoint Foundation ソリューションの作成には、Microsoft Visual Studio 2010 の SharePoint 開発者ツールを使用することをお勧めします。次に DDF ファイルの例を示します。
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetNameTemplate=MySolutionFile.wsp
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="ON"
.Set Cabinet=on
.Set DiskDirectory1=Package
build\manifest.xml manifest.xml
build\MySolutionFile\feature.xml MySolutionFile\feature.xml
...