SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Visual Studio 2010によるSharePoint 2010開発の基本

Business Connectivity Services(BCS)を使用したSQL Azureとの連携

Visual Studio 2010によるSharePoint 2010開発の基本(5)

  • X ポスト
  • このエントリーをはてなブックマークに追加

サンプル:BCSを使用してSQL Azureと接続する

 それでは実際に、Visual Studio 2010を使用してSharePoint 2010の外部コンテンツタイプを作成してみましょう。

サンプル内容

 Visual Studio 2010でクラウド上のSQL Azureのデータに接続する外部コンテンツタイプを作成し、SharePoint上の外部リストとして表示するようにします(図3)。加えて、外部リストからデータ更新も行えるようにします。

図3 サンプルの実行例
図3 サンプルの実行例

サンプル作成のための準備

 このサンプルを実行するためには、前もってSQL Azure上にテーブルを作成しておく必要があります。

 SQL Azureの詳細やサーバー、データベース、テーブルなどを作成する方法については、CodeZineの過去の記事『SQL Azureの概要とSQL Azure Databaseを使ったアプリケーション開発』などを参照してください(注1)。

注1

 上記記事の執筆時点になかった情報として、現在では、Windows Azure開発者ポータル上のDatabase Managerや、SQL Server 2008 R2 Management Studio(2008 R2以降、SQL Azureに対応)などを使用すると、簡単にテーブルを作成できます。

 SQL AzureにSampleDBという名前でデータベースを作成し、表1にあるようにItemsテーブルを作成します。表1の見出しは、Database Managerにおける表現に合わせています。加えて、テストデータを数件登録しておきます。

表1 SQL Azure上に作成するItemsテーブルの定義
Column Select type Is Identity? Is Required? In Primary Key?
ItemID int Yes Yes Yes
ItemName nvarchar(50)   Yes  
Price int   Yes  
Description nvarchar(max)      

 図4は、Database Managerを使用してItemsテーブルを作成している様子を示したものです。

図4 Database ManagerによるItemsテーブルの作成
図4 Database ManagerによるItemsテーブルの作成

 これで、サンプル作成のための準備が整いました。

段階1:プロジェクト作成まで

 以下の手順で、サンプルを作成します。

[1]新しいプロジェクトを作成する

 SharePoint 2010の外部コンテンツタイプのための新しいプロジェクトを作成します。

 管理者権限でVisual Studio 2010を起動します。[新しいプロジェクト]ダイアログボックスで、[Visual C#]-[SharePoint]-[2010]を選択し、プロジェクトテンプレートの一覧から[ビジネスデータ接続モデル]を選択します。[名前]に「BdcModelProjectSample」と入力し、最後に[OK]ボタンをクリックします(図5)。

図5 [新しいプロジェクト]ダイアログボックス
図5 [新しいプロジェクト]ダイアログボックス

 次に表示された[デバッグのサイトとセキュリティレベルの指定]ダイアログボックスで、[デバッグに使用するローカルサイト]にSharePointサイトのURLを入力し、[完了]ボタンをクリックします。

 これで、ビジネスデータ接続モデルのプロジェクトが作成されました。作成直後の状態として、外部コンテンツタイプのデザイナー画面にはEntity1という名前のメタデータモデルが表示されています(図6)。

図6 外部コンテンツタイプのデザイナー画面
図6 外部コンテンツタイプのデザイナー画面

 このままの状態でも、読み取り専用の外部コンテンツタイプとして動作するようダミーコードが記述されています。

リスト1 生成直後のエンティティクラス(Entity1.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BdcModelProjectSample.BdcModel1
{
    public partial class Entity1
    {
        public string Identifier1 { get; set; }
        public string Message { get; set; }
    }
}

 Entity1.csでは、エンティティの定義を記述しています(生成コメントは削除)。ここではダミーとして、Identifier1とMessageの2つのプロパティが定義されています。このクラスは、デザイナー上のEntity1メタデータモデルにマッピングされており、次に説明するエンティティサービスクラス(Entity1Service.cs)で使用されます。

リスト2 生成直後のエンティティサービスクラス(Entity1Service.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BdcModelProjectSample.BdcModel1
{
    public class Entity1Service
    {
        public static Entity1 ReadItem(string id)
        {
            Entity1 entity1 = new Entity1();
            entity1.Identifier1 = id;
            entity1.Message = "Hello World";
            return entity1;
        }

        public static IEnumerable<Entity1> ReadList()
        {
            Entity1[] entityList = new Entity1[1];
            Entity1 entity1 = new Entity1();
            entity1.Identifier1 = "0";
            entity1.Message = "Hello World";
            entityList[0] = entity1;
            return entityList;
        }
    }
}

 Entity1Service.csは、エンティティのCRUDメソッドを実装するサービスクラスで、デザイナー上のEntity1メタデータモデルにマッピングされています(生成コメントは削除)。ここでは、1件のデータ読み取りを行うReadItemメソッドと、複数データの読み取りを行うReadListメソッドを実装しています。それぞれダミーデータを返すようになっています。

次のページ
段階1までのサンプル実行

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2010によるSharePoint 2010開発の基本連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 広瀬 嘉久(株式会社ジェイテックジャパン)(ヒロセ ヨシヒサ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6038 2011/07/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング