[方法] 管理オブジェクト モデルの使用を開始する
XML を使用してメタデータを作成できますが、ビジネス データ カタログでは、メタデータの作成、編集、および削除に使用できる管理オブジェクト モデルが提供されています。管理オブジェクト モデルの主な目的は、メタデータの作成と管理を簡単にするツールを記述できるようにすることです。
管理オブジェクト モデルは、ビジネス データ カタログのメタデータ モデルに準拠します。13 個のメタデータ オブジェクトをすべて定義し、次の操作を実行できるメソッドを提供します。
メタデータ オブジェクトを作成および削除する。
ビジネス データ カタログへのメタデータのインポート、メタデータ オブジェクトのセキュリティの設定など、メタデータに関連するその他の管理タスクをプログラム上で実行する。
管理オブジェクト モデルは、Microsoft.SharePoint.Portal.dll 内の Microsoft.Office.Server.ApplicationRegistry.Administration 名前空間で定義されています。
重要
ランタイム オブジェクト モデルもメタデータ オブジェクトを定義しますが、読み取りのみが可能であり、作成、編集、削除はできません。したがって、メタデータを編集する場合は管理オブジェクト モデルを使用する必要があります。メタデータを読み取るだけでよい場合は、キャッシュされた高速なランタイム オブジェクト モデルを使用します。逆に言えば、管理オブジェクト モデルは比較的待ち時間が長く、展開されているすべてのフロントエンド Web サーバー (フロントエンド Web サーバー) およびアプリケーション サーバーのキャッシュをビジネス データ カタログが更新するまでに数秒の遅延があります。
管理オブジェクト モデルを使用して実行できる主な 3 つのタスクを次に示します。
LOB システム、エンティティ、およびメソッドを作成する。
アクセス制御リスト (ACL) を作成し、メタデータ オブジェクトのセキュリティを設定する。
メタデータをビジネス データ カタログにインポートする。
ここでは、管理オブジェクトを使用して主な 3 つのタスクを実行する単純な Microsoft Visual Studio 2005 コンソール アプリケーションを Microsoft Visual C# で記述する方法を示します。
ApplicationRegistry は、管理オブジェクト モデルのトップレベル オブジェクトです。静的な Instance プロパティは、ビジネス データ カタログへのエントリ ポイントとして機能します。このプロパティを使用すると、LOB システム、エンティティ、メソッドなど、すべてのメタデータ オブジェクトの作成、読み取り、更新、および削除を行うことができます。
注意
ビジネス データ カタログ機能は、元はアプリケーション レジストリと呼ばれていましたが、現在はビジネス データ カタログと呼ばれています。オブジェクト モデルに ApplicationRegistry という用語があるのはこのためです。この用語を見かけたら、ビジネス データ カタログを指すことを思い出してください。
例
既にご存知のように、ビジネス データ カタログは Microsoft Office SharePoint Server 2007 の共有サービスとして実装されており、共有サービス プロバイダ間で共有されます。したがって、ApplicationRegistry オブジェクトを使用するには、ビジネス データ カタログに関連付けられている共有サービス プロバイダを参照する必要があります。
次のコード例は、ビジネス データ カタログで使用する共有サービス プロバイダを設定する方法を示しています。
共有サービス プロバイダを指定したら、ApplicationRegistry オブジェクトを使用して、ビジネス データ カタログに登録された LobSystemInstance オブジェクトを作成および管理できます。CreateLobSystemAndInstance メソッドは、オブジェクト モデルを使用して LobSystem インスタンスを作成する方法を示します。
前提条件
共有サービス プロバイダが既に作成されていることを確認します。
コード内の定数値 EnterYourSSPNameHere を共有リソース プロバイダの名前に置き換えます。
プロジェクト参照
このサンプルを実行する前に、コンソール アプリケーション コード プロジェクトに以下のプロジェクト参照を追加します。
Microsoft.SharePoint
Microsoft.SharePoint.Portal
Microsoft.Office.Server
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;
namespace Microsoft.SDK.SharePointServer.Samples
{
class GetStartedAndCreateSystem
{
const string yourSSPName ="EnterYourSSPNameHere";
static void Main(string[] args)
{
SetupBDC();
CreateLobSystemAndInstance();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
static void CreateLobSystemAndInstance()
{
LobSystem system = ApplicationRegistry.Instance.LobSystems.Create("AdventureWorksSampleFromCode", true, "Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbSystemUtility", "Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbConnectionManager", "Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbEntityInstance");
LobSystemInstance sysInstance = system.LobSystemInstances.Create("AdventureWorksSampleFromCode", true);
sysInstance.Properties.Add("AuthenticationMode", (Int32)Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode.PassThrough);
sysInstance.Properties.Add("DatabaseAccessProvider", (Int32)Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider.SqlServer);
sysInstance.Properties.Add("RdbConnection Data Source", "YourAdvWorks2000ServerNameHere");
sysInstance.Properties.Add("RdbConnection Initial Catalog", "AdventureWorks2000");
sysInstance.Properties.Add("RdbConnection Integrated Security", "SSPI");
sysInstance.Properties.Add("RdbConnection Pooling", "false");
sysInstance.Properties.Add("WildCardCharacter", "%");
sysInstance.Update();
Console.WriteLine("Created a system instance successfully.");
}
}
}