SHOEISHA iD

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

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

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

SharePoint 2010のイベントレシーバーの作成

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

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

 本連載では、Visual Studio 2010によるSharePoint 2010開発を扱います。第4回となる今回は、SharePoint 2010のイベントレシーバーの作成方法を解説します。

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

はじめに

 作成に入る前に、本連載の第1回『SharePoint 2010開発の紹介』を参考にして、SharePoint 2010の開発環境を整えてください。

対象読者

  • Visual Studio 2010によるSharePoint 2010開発に関心がある開発者
  • SharePoint 2010のイベントレシーバーの開発に関心がある開発者

SharePoint 2010のイベントとイベントレシーバー

 SharePoint 2010では、Webサイト、リストやリストアイテムなどに対する処理や操作の前後に発生するさまざまなイベントが定義されています。

 SharePointのイベントは、サイトイベント、Webイベント、リストイベントなど、主に5つの種類に分かれます。これら5つのイベントの種類にそれぞれ対応したイベントレシーバーのクラスがMicrosoft.SharePoint名前空間には用意されています(表1)。

表1 SharePoint 2010のイベントの種類
イベントの種類 説明 対応するイベントレシーバークラス
リストイベント リストに対する処理の前後に発生するイベント SPListEventReceiver
リスト項目イベント リストのアイテムに対する処理の前後に発生するイベント SPItemEventReceiver
リスト電子メールイベント リストがメールを受信した時に発生するイベント SPEmailEventReceiver
Webイベント サイトコレクションやサイトに対する処理の前後に発生するイベント SPWebEventReceiver
リストワークフローイベント ワークフローに対する処理の前後に発生するイベント SPWorkflowEventReceiver

 SPEmailEventReceiverクラスを除くどのイベントレシーバーも、SPEventReceiverBaseクラスから派生しています。また、どのイベントレシーバークラスも直接インスタンス化はせず、派生させて使用する必要があります。Visual Studio 2010でイベントレシーバープロジェクトを作成する際に、ウィザード内でどのイベントレシーバーを使用するかを選択することにより、そのイベントレシーバーの派生クラスを自動生成できます。

 次に、イベントの種類別にすべてのイベントをまとめます(表2)。多くの場合、「~されています」と「~されました」のように、何かの処理や操作の前後にそれぞれイベントが発生することが分かります。これらをBeforeイベントとAfterイベントと呼びます。

表2 SharePoint 2010のイベント
イベントの種類 イベント 説明
リストイベント FieldAdded フィールドが追加されました
FieldAdding フィールドが追加されています
FieldDeleted フィールドが削除されました
FieldDeleting フィールドが削除されています
FieldUpdated フィールドが更新されました
FieldUpdating フィールドが更新されています
ListAdding リストが追加されています
ListDeleting リストが削除されています
ListAdded リストが追加されました
ListDeleted リストが削除されました
リスト項目イベント ItemAdding 項目が追加されています
ItemUpdating 項目が更新されています
ItemDeleting 項目が削除されています
ItemCheckingIn 項目がチェックインされています
ItemCheckingOut 項目がチェックアウトされています
temUncheckingOut 項目のチェックアウトが取り消されています
ItemAttachmentAdding 項目に添付ファイルが追加されています
ItemAttachmentDeleting 項目から添付ファイルが削除されています
ItemFileMoving ファイルが移動されています
ItemAdded 項目が追加されました
ItemUpdated 項目が更新されました
ItemDeleted 項目が削除されました
ItemCheckedIn 項目がチェックインされました
ItemCheckedOut 項目がチェックアウトされました
ItemUncheckedOut 項目のチェックアウトが取り消されました
ItemAttachmentAdded 項目に添付ファイルが追加されました
ItemAttachmentDeleted 項目から添付ファイルが削除されました
ItemFileMoved ファイルが移動されました
ItemFileConverted ファイルが変換されました
ContextEvent リストがコンテキストイベントを受け取りました
リスト電子メールイベント EmailReceived リストが電子メールメッセージを受け取りました
Webイベント SiteDeleting サイトコレクションが削除されています
WebDeleting サイトが削除されています
WebMoving サイトが移動されています
WebAdding サイトがプロビジョニングされています
SiteDeleted サイトコレクションが削除されました
WebDeleted サイトが削除されました
WebMoved サイトが移動されました
WebProvisioned サイトがプロビジョニングされました
リストワークフローイベント WorkflowStarting ワークフローが開始されています
WorkflowStarted ワークフローが開始されました
WorkflowPostponed ワークフローが延期されました
WorkflowCompleted ワークフローが完了しました

 表2をご覧いただくと分かるように、サイト、リスト、リストアイテムなどSharePointの各構成要素に対して、さまざまなイベントが定義されています。これらのイベントを扱うイベントレシーバーを作成することにより、SharePointのサイトを細かく制御することが可能となります。たとえば、リスト作成時のBeforeイベントをキャッチし一定の条件に適合する場合にのみリスト作成を許可するなどの業務上のルールに応じた振る舞いを追加できます。

 Visual Studio 2010で作成したイベントレシーバーは、SharePointのサイトに配置するだけで、特に他の手順を必要とすることなくサイト上で実行されます。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
リスト項目イベントのイベントレシーバーのサンプル作成

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

  • このエントリーをはてなブックマークに追加
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 Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング