ダウンロード サンプルファイル (1.9 MB)
サーバーコントロールのHTMLレンダリングの見直し
既存のコントロールも新たな機能拡張が行われています。ASP.NET 3.5までサーバーコントロールはTableタグを多用する傾向にありました。複雑にレンダリングされることで、CSSも適用しづらく、JavaScriptなどによる開発も煩雑でした。
ASP.NET 4限定ですが、いくつかのサーバーコントロールのHTMLレンダリングが再考され、クリーンなHTMLを生成するようになりました。
| コントロール名 | プロパティ名 | 概要 |
| Menu | RenderingMode(新規追加プロパティ) | 既定値がTableタグからul/liタグに変更(Tableタグも選択可能) |
| CheckBoxList | RepeatLayout(従来のプロパティに設定値を追加) | 従来の設定(Table/Flow)の他に、UnorderedList/OrderedListも追加(ul/liと、ol/liによるレンダリング) |
| RadioButtonList | RepeatLayout(従来のプロパティに設定値を追加) | 従来の設定(Table/Flow)の他に、UnorderedList/OrderedListも追加 |
| FormView | RenderOuterTable(新規追加プロパティ) | ItemTemplate内で記述した要素や文字をTableタグで囲むかどうかを設定 |
| Login | RenderOuterTable(新規追加プロパティ) | Loginコントロールが生成するHTMLをTableタグで囲むかどうかを設定 |
| PasswordRecovery | RenderOuterTable(新規追加プロパティ) | PasswordRecoveryコントロールが生成するHTMLをTableタグで囲むかどうかを設定 |
| ChangePassword | RenderOuterTable(新規追加プロパティ) | ChangePasswordコントロールが生成するHTMLをTableタグで囲むかどうかを設定 |
Menuコントロールは用途から考えるとシンプルにul/liタグなどで表示できるようになりました。しかし、過去のアプリケーションとの互換性も考慮し設定を変更することで、CSSなどの修正ポイントを削減することもできます。
FormView/Login/PasswordRecovery/ChangePasswordコントロールは、ASP.NET 3.5 SP1まではTableタグ内にTableタグによるレンダリングを行っていました。ASP.NET 4では、RenderOuterTableプロパティをFalseに設定することで、2重でTableタグを使用していた設定を解除できます。
また、CheckBoxList/RadioButtonListコントロールは、RepeatLayoutプロパティに設定値を追加し、ul/liタグ、ol/liタグによるレンダリングも選択できるようになりました。
このようにASP.NET 4では、クリーンなHTMLをレンダリングを選択できるようになりました。CSSを適用しやすい設定を選択できるのは開発者にとっても嬉しい部分なので積極的に活用しましょう。
ASP.NET Dynamic Dataの新機能
ASP.NET 3.5 SP1で登場したDynamic Dataアプリケーションですが、ASP.NET 4では、多数の変更点とプロジェクトの構成その物の見直しが行われています。しかし、開発者が利用する上では3.5 SP1で培った知識がそのまま活用できる作りになっています。
ASP.NET 3.5 SP1のDynamic Dataからの強化点
初登場から初めてのバージョンアップということで多数の改善が為されています。以下に、特に注目ポイントの高い新機能をピックアップしました。
- DynamicDataManagerコントロールのマークアップ記述の拡張
- 多対多フィールドテンプレート
DynamicDataManagerコントロールのマークアップ記述の拡張
3.5 SP1の段階では、HTMLビュー上でただ宣言するだけのDynamicDataManagerコントロールですが、Dynamic Dataの振る舞いをデータコントロールに持たせるためには、該当ページのコードビハインド上でRegisterControlメソッドを記述する必要がありました。
protected void Page_Init(object sender, EventArgs e)
{
' GridView1にメタモデルをバインドする
DynamicDataManager1.RegisterControl(GridView1, true);
}
この記載がASP.NET 4では、マークアップで記述できるようになりました。
<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true">
<DataControls>
<asp:DataControlReference ControlID="GridView1" />
</DataControls>
</asp:DynamicDataManager>
上記の場合、GridViewに対してDynamic Dataの振る舞いが実装されます。この変更により、コードビハインドのUIコントロールなどへの依存をできるだけ少なくできる他、Web Form上でDynamic Dataの機能を利用したい時の設定の煩雑さをaspx側にまとめてしまうというメリットも出てきます。
多対多フィールドテンプレート
ASP.NET 3.5 SP1でもADO.NET Entity Frameworkを使用してDynamic Dataアプリケーションは構築できましたが、ASP.NET 4ではEntity Frameworkが持つ特色の1つ、「Dynamic Data エンティティ Web アプリケーション」でのみ、多対多を活かしたデータフィールドが登場しました。それぞれ特徴は次のとおりです。
| データフィールド名 | 概要 |
| ManyToMany.ascx | 項目の分だけハイパーリンクが表示(図10) |
| ManyToMany_Edit.ascx | 複数項目が選択できるチェックボックスリストが表示(図11) |

まとめ
前回今回と、主にクライアントサイドとサーバーサイドに分けてASP.NET 4の新機能を軽く紹介しましたが、確実にASP.NETは、パフォーマンスがよく高機能なWebアプリケーションを構築しやすい環境が整ってきていることを感じられたのではないかと思います。
あくまで鳥瞰レベルにとどめたため、物足りなさを感じた読者の方も多いかと思いますが、正式リリース後に細かな部分にフォーカスを当てて新機能を紹介していく予定です。
参考文献
この記事は参考になりましたか?
既に会員の方はを行ってください。
- ASP.NET 4 Beta入門連載記事一覧
-
- サーバーサイドの開発改善に注目! ~VS2010+ASP.NET 4新機能(後編)~
- クライアントサイドの開発強化に注目! ~VS2010+ASP.NET 4.0新機能(前編)...
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

