Office 2010 の Business Connectivity Services を使用した .NET Framework ソースへの接続
概要: .NET Framework ソースに基づく Office 2010Business Connectivity Services 外部コンテンツ タイプの作成方法について説明します。
適用対象: Excel 2010 | Office 2010 | Open XML | PowerPoint 2010 | VBA | Word 2010
公開: 2010 年 2 月
提供元: Joel Krist、iSoftStone (英語)
![]() Office 2010 および SharePoint 2010 に付属する Microsoft Business Connectivity Services (BCS) は、Microsoft Office SharePoint Server 2007 に付属するビジネス データ カタログの機能を基に構築され、書き戻しのサポート、リッチ コンテンツの統合などの新機能を導入しています。Visual Studio 2010 は、ビジネス データ接続モデル プロジェクト テンプレートや、いくつかの新しいツールを備え、BCS モデルの作成と、外部データと外部ソースを使用する Office ソリューションの展開を容易にします。この Visual How To では、Visual Studio 2010 を使用して BCS 外部コンテンツ タイプを作成する方法について説明します。外部コンテンツ タイプは, .NET Framework アセンブリに接続されます。この .NET Framework アセンブリは、Linq to XML を使用して、単純な XML データ ファイルに格納されるデータへの読み取り/書き込みアクセスを提供します。外部コンテンツ タイプは、SharePoint 外部リストからの使用中に表示されます。 ![]() この Visual How To では, .NET Framework ベースの BCS 外部コンテンツ タイプを作成および使用する方法について説明します。
シミュレートされたバックエンド データ ストアを作成する この Visual How To では、Customer エンティティに基づく外部コンテンツ タイプを作成します。この Customer エンティティは、非常にシンプルで、CustomerID と CustomerName の 2 つのフィールドで構成されます。複雑になるのを避けるために、この Visual How To では、単純な XML データ ファイルを使用して、顧客データのバックエンド データ ストアをシミュレートします。次の手順では、顧客データ ファイルを作成する方法について説明します。
Visual Studio 2010 で SharePoint 2010 ビジネス データ接続モデル プロジェクトを作成する
Visual Studio によって生成される既定のエンティティをモデルから削除する Visual Studio では、新しい Business Data Connectivity Shared Service モデルを作成すると、既定のエンティティが作成されます。この Visual How To では、CustomerName という名前の新しいエンティティの作成に必要な手順を簡素化するために、既定のエンティティを削除するという方針で作業を進めます。
プロジェクトに Customer クラスを追加する Customer クラスは、顧客のデータをカプセル化します。このクラスは、Customer エンティティの実装に使用します (実装については後で説明します)。
モデルに Customer エンティティを追加する 次の手順では、モデルに Customer エンティティを追加し、そのエンティティに CustomerID 識別子を追加する方法について説明します。
プロジェクトに Microsoft.BusinessData への参照を追加する この Visual How To に付属するサンプル コードでは、Microsoft.BusinessData.dll アセンブリの Microsoft.BusinessData.Runtime 名前空間に定義される例外を使用します。
外部コンテンツ タイプにコードを追加する 次の手順では、Finder、Specific Finder、Creator、Updater、および Deleter ステレオタイプまたはメソッドを Customer 外部コンテンツ タイプに実装する方法について説明します。 Finder メソッドは、Business Data Connectivity (BDC) Shared Service によって Customer エンティティの一覧を要求するために呼び出されます。 Finder メソッドを追加する
Specific Finder メソッドを追加する Specific Finder メソッドは、BDC Shared Service によって特定の Customer エンティティのデータを要求するために呼び出されます。
Creator メソッドを追加する Creator メソッドは、BDC Shared Service によって新しい Customer エンティティを作成するために呼び出されます。
Updater メソッドを追加する Updater メソッドは、BDC Shared Service によって既存の Customer エンティティを編集するために呼び出されます。
![]() この Visual How To では、XML データ ファイルに対して読み取り/書き込み操作を実行可能な .NET Framework アセンブリを使用する BCS 外部コンテンツ タイプの作成手順と、そのサンプル コードについて説明します。次のセクションでは、サンプル コードのコード スニペットを使用して、この Visual How To でのアプローチについて説明します。 Finder メソッドの実装 Finder メソッドは、BDC Shared Service によってエンティティの一覧を返すために使用されます。次のチュートリアルでは、Customer エンティティの Finder メソッドは、SharePoint に外部リストの顧客アイテムの一覧が表示されるときに呼び出されます。上記のサンプル コードでは、Customer エンティティの Finder メソッドは、CustomerService.ReadList メソッドによって実装されています。 ReadList メソッドは、最初に、XML データ ファイルを開いて Customer 要素のコレクションを取得します。
次に、Customer オブジェクトのコレクションを作成して返します。この Customer オブジェクトは、各 Customer 要素から作成されます。
Specific Finder メソッドの実装 Specific Finder メソッドは、BDC Shared Service によって特定のエンティティのインスタンスを返すために使用されます。次のチュートリアルでは、Customer エンティティの Specific Finder メソッドは、外部リストの顧客アイテムの編集または表示を選択するときに呼び出されます。上記のサンプル コードでは、Customer エンティティの Specific Finder メソッドは、CustomerService.ReadItem メソッドによって実装されています。 ReadItem メソッドは、要求された顧客インスタンスの一意の ID を表す Int32 パラメーターを受け取ります。
ReadItem メソッドは、最初に、XML データ ファイルを開いて Customer 要素のコレクションを取得します。 続いて、メソッドに渡された顧客 ID と同じ ID 属性を持つ Customer 要素のそれぞれから Customer オブジェクトのコレクションが作成されます。顧客 ID は一意なので、コレクションには 1 つの顧客しか含まれないため、このメソッドは、コレクション内の先頭のアイテムを返します。
Creator メソッドの実装 Creator メソッドは、BDC Shared Service によって新しいエンティティのインスタンスを作成するために呼び出されます。上記のチュートリアルでは、Customer エンティティの Creator メソッドは、新しい顧客アイテムを外部リストに追加するときに呼び出されています。上記のサンプル コードでは、Customer エンティティの Creator メソッドは、CustomerService.Create メソッドによって実装されています。 Create メソッドは、外部リストの新しいアイテム フォームから入力された顧客データを表す Customer パラメーターを受け取ります。
Create メソッドは、最初に、XML データ ファイルを開いて最上位の Customers 要素を取得します。続いて、新しい顧客のために使用する ID の値を NextCustomerId 属性から読み取ります。
このメソッドは、新しい Customer オブジェクトを作成し、その Customer オブジェクトの CustomerID プロパティに読み取った値を設定し、その CustomerName プロパティに、メソッドに渡された Customer オブジェクトの CustomerName プロパティの値を設定します。
次に、このメソッドは、新しい Customer 要素と CustomerName 要素を作成し、その Customer ID 属性と CustomerName 値を設定した後、それらの要素を最上位の Customers 要素に追加します。
最後に、NextCustomerId 属性の値が増分し、すべての変更内容が XML データ ファイルに保存されます。
Updater メソッドの実装 Updater メソッドは、BDC Shared Service によって既存のエンティティのインスタンスを編集するために呼び出されます。このチュートリアルでは、Customer エンティティの Updater メソッドは、外部リストの顧客を編集するときに呼び出されます。上記のサンプル コードでは、Customer エンティティの Updater メソッドは、CustomerService.Update メソッドによって実装されています。 Update メソッドは、Customer パラメーターと Int32 パラメーターを受け取ります。Customer パラメーターは、外部リストのアイテム編集フォームからユーザーが入力した顧客データを表し、Int32 パラメーターは、更新する顧客の一意の ID を表します。
Update メソッドは、最初に、XML データ ファイルを開いて最上位の Customers 要素を取得します。
続いて、メソッドに渡された顧客 ID と同じ ID 属性を持つ Customer 要素のそれぞれから Customer オブジェクトのコレクションが作成されます。
顧客 ID は一意なので、コレクションには 1 つの顧客しか含まれないため、このメソッドは、コレクション内の先頭のアイテムを取得します。最後に、すべての変更内容が XML データ ファイルに保存されます。
Deleter メソッドの実装 Deleter メソッドは、BDC Shared Service によって既存のエンティティのインスタンスを削除するために呼び出されます。このチュートリアルでは、Customer エンティティの Deleter メソッドは、ユーザーが外部リストから顧客アイテムを削除するときに呼び出されます。上記のサンプル コードでは、Customer エンティティの Deleter メソッドは、CustomerService.Delete メソッドによって実装されています。 Delete メソッドは、削除する顧客の一意の ID を表す Int32 パラメーターを受け取ります。
Delete メソッドは、最初に、XML データ ファイルを開いて最上位の Customers 要素を取得します。
続いて、メソッドに渡された顧客 ID と同じ ID 属性を持つ Customer 要素のそれぞれから Customer オブジェクトのコレクションが作成されます。
顧客 ID は一意なので、コレクションには 1 つの顧客しか含まれないため、このメソッドは、コレクション内の先頭のアイテムを取得して削除します。最後に、すべての変更内容が XML データ ファイルに保存されます。
|
![]() 長さ: 25:12 | サイズ: 28.6 MB | 形式: WMV ![]()
|