SHOEISHA iD

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

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

ASP.NET Dynamic Data活用編

ASP.NET Dynamic Dataを既存のアプリケーションへ組み込もう

ASP.NET Dynamic Data活用編(2)

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

既存ソリューションへの組み込み方法

 いくらカスタマイズができても、既存のプロジェクトへの組み込みができなければ利用に対して躊躇する方もいるでしょう。ここでは作成したDynamic Dataプロジェクトを既存プロジェクトに組み込む方法をご紹介します。なお、ここでの既存プロジェクトはASP.NETアプリケーションを指します。

 Dynamic Dataはプロジェクトのテンプレートです。そのため、既存プロジェクトへの組み込みは以下の2つが考えられます。

  • ソリューションに組み込む

    既存ソリューションにDynamic Dataプロジェクトを追加し、1つのソリューションにします。

  • 既存プロジェクトに組み込む

    既存プロジェクト内に組み込み、1プロジェクトにまとめます。

 それぞれについてご紹介します。

ソリューションに組み込む

 こちらについては詳細な説明が不要かと思います。手順は以下のとおりです。

  1. 既存のプロジェクトを展開し、メニューバーの[ファイル]-[追加]-[既存のプロジェクト]を選択
  2. ダイアログで既存のDynamic Dataプロジェクトを選択し展開

 以上で完了です。非常にお手軽に追加できるのがメリットとなりますが、この方法の場合下記のような課題も出てきます。

  • プロジェクトが分かれているため、プロジェクトごとの認証が必要になる
  • プロジェクトが分かれているため、配置時が多少煩雑になる

 逆に、プロジェクトが分かれているからこそメンテナンスもしやすいというメリットもありますので、一概にこの追加方法が悪いとは言えません。

 次にこの課題を解決するプロジェクトの追加方法をご紹介します。

既存プロジェクトに組み込む~WebForm編~

 残念ながら、こちらの方法は泥臭い作業が必要になります。

 ここでは、WebFormと、URLルーティングが関連するASP.NET MVCを既存のプロジェクトそれぞれの手順を記載します。大まかな作業の流れは以下のとおりです。

  1. ASP.NET WebForm、またはMVCのプロジェクトを作成
  2. Dynamic Dataのプロジェクトを作成
  3. ASP.NET WebForm、またはMVCのプロジェクトをメインに、Dynamic Dataプロジェクトをフォルダ単位でコピー
  4. ファイル単位での名前空間記載など、細かな修正を実施

 基本的にDynamic Dataのプロジェクトを既存プロジェクトに追加する流れになるため、Web Formの場合でも、Web FormのプロジェクトにDynamic Dataプロジェクトの必要なファイルや設定を追加することになります。最初にWebFormの手順を解説し、MVCは後で補足部分を解説します。それでは、手順3から解説します。

Dynamic Dataプロジェクトをフォルダ単位でコピー

 プロジェクトをそのまま追加することはできませんので、フォルダ単位でDynamic Dataプロジェクトのコピーを行います。

 VS 2010を通常起動している場合はエクスプローラからソリューションエクスプローラにドラッグ&ドロップで項目を追加できます(管理者権限で起動している場合は不可)。実際に以下の項目をドラッグ&ドロップでコピーしましょう。配置場所は、プロジェクトのトップノードです。

  • Dynamic Dataフォルダをすべて
  • Default.aspx.cs
  • Default.aspx.designer.cs
  • Site.master.cs
  • Site.master.designer.cs
  • Default.aspx
  • Site.css
  • Site.master

 Web Formの場合は、Default.aspx/Site.master関連のファイルの名前が競合してしまいますので、コピー前にDynamic Dataプロジェクト側でファイルをリネームしておきます(本稿ではdynamic.aspxと、dynamicSite.masterとします)。

 当然コピーだけでは実行できません。これから細かな修正作業に入ります。

ファイル単位での名前空間記載などを修正

 最初に参照設定にDynamic Dataで使用されている、以下の2つのDLLを参照追加します。

  • System.Web.DynamicData.Design
  • System.Data.Entity

 次に、FieldTemplatesフォルダ内にあるManyToMany_EditField.ascx.csファイルに以下の名前空間を記載します。

ManyToMany_EditField.ascx.csファイルに追記する名前空間
using System.Web.DynamicData;

 最後に、Global.asaxファイルの追記作業を実施します。WebFormの場合、Global.asax.csファイル内のDynmaicDataプロジェクトのGlobal.asax.csファイルの記述をすべてコピー&ペーストします。ペースト後の修正箇所は以下の太字部分のみです(作成したDynamic DataプロジェクトのGlobal.asax.csファイルからコピーがお手軽です)。

Global.asax.csファイルの修正箇所
using System.Web.DynamicData;

namespace WebFormプロジェクトの名前空間

 Dynamic Dataの名前空間追加と、Dynamic Dataプロジェクトの名前空間からWebFormプロジェクトの名前空間へと修正するだけです。以上で設定完了です。作業完了すると、図4のようになります。

図4 統合後のプロジェクト構成~WebFormプロジェクト~
図4 統合後のプロジェクト構成~WebFormプロジェクト~

 続いて、MVCプロジェクト内に組み込む場合の補足手順について解説します。

次のページ
まとめ

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
ASP.NET Dynamic Data活用編連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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/5649 2011/01/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング