ダウンロード サンプルファイル (2.1 MB)
既存ソリューションへの組み込み方法
いくらカスタマイズができても、既存のプロジェクトへの組み込みができなければ利用に対して躊躇する方もいるでしょう。ここでは作成したDynamic Dataプロジェクトを既存プロジェクトに組み込む方法をご紹介します。なお、ここでの既存プロジェクトはASP.NETアプリケーションを指します。
Dynamic Dataはプロジェクトのテンプレートです。そのため、既存プロジェクトへの組み込みは以下の2つが考えられます。
- ソリューションに組み込む
既存ソリューションにDynamic Dataプロジェクトを追加し、1つのソリューションにします。
- 既存プロジェクトに組み込む
既存プロジェクト内に組み込み、1プロジェクトにまとめます。
それぞれについてご紹介します。
ソリューションに組み込む
こちらについては詳細な説明が不要かと思います。手順は以下のとおりです。
- 既存のプロジェクトを展開し、メニューバーの[ファイル]-[追加]-[既存のプロジェクト]を選択
- ダイアログで既存のDynamic Dataプロジェクトを選択し展開
以上で完了です。非常にお手軽に追加できるのがメリットとなりますが、この方法の場合下記のような課題も出てきます。
- プロジェクトが分かれているため、プロジェクトごとの認証が必要になる
- プロジェクトが分かれているため、配置時が多少煩雑になる
逆に、プロジェクトが分かれているからこそメンテナンスもしやすいというメリットもありますので、一概にこの追加方法が悪いとは言えません。
次にこの課題を解決するプロジェクトの追加方法をご紹介します。
既存プロジェクトに組み込む~WebForm編~
残念ながら、こちらの方法は泥臭い作業が必要になります。
ここでは、WebFormと、URLルーティングが関連するASP.NET MVCを既存のプロジェクトそれぞれの手順を記載します。大まかな作業の流れは以下のとおりです。
- ASP.NET WebForm、またはMVCのプロジェクトを作成
- Dynamic Dataのプロジェクトを作成
- ASP.NET WebForm、またはMVCのプロジェクトをメインに、Dynamic Dataプロジェクトをフォルダ単位でコピー
- ファイル単位での名前空間記載など、細かな修正を実施
基本的に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ファイルに以下の名前空間を記載します。
using System.Web.DynamicData;
最後に、Global.asaxファイルの追記作業を実施します。WebFormの場合、Global.asax.csファイル内のDynmaicDataプロジェクトのGlobal.asax.csファイルの記述をすべてコピー&ペーストします。ペースト後の修正箇所は以下の太字部分のみです(作成したDynamic DataプロジェクトのGlobal.asax.csファイルからコピーがお手軽です)。
using System.Web.DynamicData; namespace WebFormプロジェクトの名前空間
Dynamic Dataの名前空間追加と、Dynamic Dataプロジェクトの名前空間からWebFormプロジェクトの名前空間へと修正するだけです。以上で設定完了です。作業完了すると、図4のようになります。

続いて、MVCプロジェクト内に組み込む場合の補足手順について解説します。
この記事は参考になりましたか?
- ASP.NET Dynamic Data活用編連載記事一覧
-
- ASP.NET Dynamic Dataのエンティティテンプレートのカスタマイズと勘所
- ASP.NET Dynamic Dataのフィールドテンプレートのカスタマイズと検証機能
- 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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト ナオキ(ナオキ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
