CodeZine(コードジン)

特集ページ一覧

サンドボックスソリューション開発とSharePoint Onlineへの展開

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
目次

サンプル:Webパーツを作成してSharePont Onlineで展開する

 それでは、Visual Studio 2010を使用してサンドボックスソリューションを作成してみましょう。そして、作成したソリューションパッケージをSharePoint Onlineに展開し、動作を確認してみましょう。

サンプル内容

 SharePoint Onlineのチームサイトに既定で用意されている「投稿」リストから全アイテムを取得して表示し、アイテムの新規作成も行うことのできるWebパーツを作成してみます(図2)。

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

サンプルの作成

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

[1]空のSharePointプロジェクトを作成する

 管理者権限でVisual Studio 2010を起動します。[新しいプロジェクト]ダイアログボックスで[インストールされたテンプレート]から[Visual C#]-[SharePoint]-[2010]を選択し、プロジェクトテンプレートの一覧から[空のSharePointプロジェクト]を選択します。任意のプロジェクト名を入力し[OK]ボタンをクリックします(図3)。

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

 [SharePointカスタマイズウィザード]が起動し、[デバッグのサイトとセキュリティレベルの指定]ダイアログボックスが表示されます。[デバッグに使用するローカルサイト]には、開発時に使用するSharePointサイトのURLを入力します。信頼レベルとして[サンドボックスソリューションとして配置する]を選択し、[完了]ボタンをクリックします(図4)。

図4 [デバッグのサイトとセキュリティレベルの指定]ダイアログボックス
図4 [デバッグのサイトとセキュリティレベルの指定]ダイアログボックス

[2]Webパーツをプロジェクトに追加する

 ソリューションエクスプローラーで、一番上に表示されているプロジェクトを右クリックし、[追加]の[新しい項目]をクリックします。

 表示された[新しい項目の追加]ダイアログボックスで、[Webパーツ]を選択します。[視覚的Webパーツ]ではないことに注意してください。そして、任意の名前を入力し(ここでは「WebPart1」のまま)、[追加]ボタンをクリックします(図5)。

図5 [新しい項目の追加]ダイアログボックス
図5 [新しい項目の追加]ダイアログボックス

[3]Webパーツを実装する

 WebPart1.csを開き、まず次のリスト1のように修正します。

リスト1 usingディレクティブの追加(WebPart1.cs)
// (1)追加したusingディレクティブ
using System.Collections.Generic;

 Listジェネリッククラスを使用しますので、System.Collections.Generic名前空間を追加します。次にリスト2のように、表示用コントロールへのアクセスのための2つの静的変数を追加し、自動生成されたCreateChildControlsメソッド内にコードを追加します。

リスト2 CreateChildControlsメソッドの修正(WebPart1.cs)
private GridView GridView1;
private TextBox TextBox1;

protected override void CreateChildControls()
{
    // (2)表示用コントロールの作成
    GridView1 = new GridView();
    Controls.Add(GridView1);

    TextBox1 = new TextBox();
    Controls.Add(TextBox1);

    Button Button1 = new Button();
    Button1.Text = "追加";
    Button1.Click += new EventHandler(Button1_Click);
    Controls.Add(Button1);

    Refresh();
}

 (2)では、表示用のコントロールとして、GridViewコントロール、TextBoxコントロール、Buttonコントロールを生成し追加しています。Buttonコントロールには、クリック時のイベントハンドラーを設定しています。最後に呼んでいるRefreshメソッドはコントロールの描画のためのもので、次のリスト3のように実装します。

リスト3 Refreshメソッドの実装(WebPart1.cs)
private void Refresh()
{
    // (3)「投稿」リストの取得
    SPWeb web = SPContext.Current.Web;
    SPList list = web.Lists["投稿"];

    // (4)「投稿」リストアイテムの取得
    List<string> titles = new List<string>();
    foreach (SPListItem item in list.Items)
    {
        titles.Add(item.Title);
    }

    // (5)GridViewコントロールにバインド
    GridView1.DataSource = titles;
    GridView1.DataBind();

    TextBox1.Text = "";
}

 (3)では、SharePointライブラリのSPWebクラスやSPListクラスを使用して、「投稿」リストオブジェクトを取得しています。

 (4)では、「投稿」リスト内の全リストアイテムを列挙し、タイトルのみのリストを作成しています。

 (5)では、作成したタイトルリストをGridViewコントロールにバインドします。

 最後に、次のリスト4のように、Buttonコントロールのクリック時のイベントハンドラーを実装します。

リスト4 ボタンのクリック時のイベントハンドラーの実装(WebPart1.cs)
protected void Button1_Click(object sender, EventArgs e)
{
    SPWeb web = SPContext.Current.Web;
    SPList list = web.Lists["投稿"];

    // (6)リストアイテムの追加
    SPListItem item = list.AddItem();
    item["Title"] = TextBox1.Text;
    item["Body"] = TextBox1.Text;
    item.Update();

    Refresh();
}

 (6)では、新規の「投稿」リストアイテムを作成し、「投稿」リストに追加しています。

 以上で、サンプルは完成です。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

著者プロフィール

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

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

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5