.NET Assembly Connector を使用することとカスタム コネクタを作成することの違い

最終更新日: 2010年7月7日

適用対象: SharePoint Server 2010

この記事の内容
.NET Assembly Connector を使用する
カスタム コネクタを記述する
.NET Assembly Connector とカスタム コネクタの利点と欠点
それぞれの方法を使用する状況

このトピックでは、Microsoft Business Connectivity Services (BCS) と共に提供される .NET Assembly Connector を使用する必要がある場合、およびカスタム コネクタを記述して、Business Connectivity Services によって直接サポートされない外部システムに接続する必要がある場合について説明します。

カスタム コネクタは、一種の外部システム (あらゆるデータベースまたは Web サービスなど) に接続する外部コンテンツ タイプに依存しないように記述します。一方、各 .NET Connectivity Assembly は、1 つの外部コンテンツ タイプに固有です。また、カスタム コネクタでは、管理ユーザー インターフェイスの統合が提供されますが, .NET Connectivity Assembly では提供されません。

.NET Assembly Connector を使用する

カスタム コネクタを記述する代わりに .NET Assembly Connector を使用する場合、次の手順を実行します。

  1. Microsoft .NET Framework クラスとしてコードを作成し、プライマリ DLL と複数の依存 DLL としてクラスをコンパイルします。

  2. DLL を Business Data Connectivity (BDC) service データベースに発行します。

  3. Microsoft SharePoint Designer を使用して, .NET Connectivity Assembly を検出し、モデルを作成します。

  4. 各エンティティを DLL 内のクラスにマップし、そのエンティティ内の各 BDC 操作をその "Class" 内のメソッドにマップします。

実行時に、ユーザーが BDC 操作を実行すると、プライマリ DLL 内の対応するメソッドが実行されます。

カスタム コネクタを記述する

.NET Assembly Connector を使用する代わりにカスタム コネクタを記述する場合、次の手順を実行します。

  1. ISystemUtility、IConnectionManager、および ITypeReflector インターフェイスを実装します (必須のインターフェイスは ISystemUtility のみ)。また、既定の接続マネージャーと EntityInstance インターフェイスを上書きできる可能性もあります。さらに、IAdministrableSystem を実装すると、管理 UI のプロパティ管理がサポートされ、ISystemPropertyValidator を実装すると、LobSystem プロパティ (Microsoft Office クライアント上ではない) をインポート時に検証できます。

  2. 手順 1. のコードを DLL にコンパイルし、それをサーバーとクライアントのグローバル アセンブリ キャッシュに配置します。

  3. カスタム データ ソース用のモデル XML を作成します (SharePoint Designer 2010 では、カスタム コネクタ用のモデル作成環境がサポートされません)。

  4. 実行時にユーザーが BDC 操作を実行すると、これにより、ISystemUtility クラスの Execute メソッドが呼び出されます。つまり、実際のバックエンド メソッドの実行は、Execute メソッド (カスタム コネクタによって実装される) によって行われます。

.NET Assembly Connector とカスタム コネクタの利点と欠点

次の表に, .NET Assembly Connector とカスタム コネクタを使用する際の利点と欠点を示します。

.NET Assembly Connector

カスタム コネクタ

ビジネス ロジックを実装する DLL は BDC ストアに格納されます。したがって、DLL を、クライアントとサーバーのグローバル アセンブリ キャッシュに別々に配置する必要はありません。

カスタム コネクタを実装するバイナリは、クライアントとサーバーのグローバル アセンブリ キャッシュに配置する必要があります。

ビジネス ロジックを実装する .NET Framework DLL は、ClickOnce ベースの Business Connectivity Services 展開により、シック クライアント コンピューターに展開されます。

カスタム コネクタを実装するバイナリをインストールするには、独立したセットアップ プロセスが必要です。

クライアント コンピューターでは、展開のために管理者権限は必要ありません。

アセンブリをグローバル アセンブリ キャッシュに配置するために、クライアント コンピューターで管理者権限が必要です。

必要なアセンブリが ClickOnce によって展開されるため、外部リストのオフライン化はシームレスに動作します。

クライアントのセットアップでアセンブリがグローバル アセンブリ キャッシュに配置されない場合、外部リストのオフライン化は停止します。

ほとんど変わらない静的 API を使用してビジネス ロジックを公開できる場合に役立つ方法が提供されます。

バックエンド インターフェイスが頻繁に変化する (動的である) 場合に役立つ方法が提供されます。

既定の TypeReflector (型を .NET Framework 型として解釈する Business Connectivity Services コンポーネント) を上書きする機能が提供されません。

既定の TypeReflector を上書きし、カスタムの TypeReflector を実装する機能が提供されます。

BDC エンティティと .NET Framework クラスの一対一マッピングが必要です。したがって、1 つの BDC エンティティで複数のクラスを結合する必要がある場合、ラッパーを記述する必要があります。これにより, .NET Connectivity Assembly の再コンパイルと再展開が必要になります。

左記のような制限はありません。

DLL インターフェイスは、Business Connectivity Services のバックエンドのように動作します。したがって、実際のバックエンドは、Business Connectivity Services スタックから完全に抽象化されます。.NET Framework アセンブリ DLL は、Business Connectivity Services の処理中に読み込まれるため、セキュリティ要件はありません。常に、"パススルー" としてみなされます。

カスタム コネクタの方法では、カスタム セキュリティ メカニズム (Business Connectivity Services では、RevertToSelf、Passthrough、Credentials、および WindowsCredentials がネイティブにサポートされます) を含め、Business Connectivity Services によって提供されるさまざまな種類のセキュリティ メカニズムを使用できます。

Business Connectivity Services には、SharePoint Designer (検出) と Visual Studio 2010 (DLL とモデルの開発と展開) の両方で, .NET Assembly Connector に対するツール サポートが含まれます。

カスタム コネクタでは、ツール サポートは提供されません。

それぞれの方法を使用する状況

.NET Assembly Connector とカスタム コネクタは、Business Connectivity Services が提供する、非常に有益な Business Connectivity Services 接続性の拡張メカニズムです。

.NET Assembly Connector の方法は、外部システムが静的な場合にお勧めします。そうでない場合、バックエンドのあらゆる変更に対して, .NET Connectivity Assembly DLL に変更を加える必要があります。したがって、アセンブリとモデルの再コンパイルと再展開が必要になります。

バックエンド インターフェイスが頻繁に変化する場合、カスタム コネクタの方法をお勧めします。この方法を使用すると、モデルの変更のみが必要です。