特集:Visual Studio 2008&ASP.NET 3.5ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part III山田祥寛(http://www.wings.msn.to/)2008/03/14 |
|
本特集は、ASP.NETアプリケーション開発者向けにVisual Studio 2008(以降、VS 2008)およびASP.NET 3.5の新機能を紹介するものだ。Part I、IIでは主に統合開発環境(VS 2008)としての新機能について解説してきたが、もちろん、今回の変更点はVS 2008におけるものばかりではない。Part IIIそして次回のPart IVでは、統合開発環境としての機能から離れて、ASP.NET 3.5本体における新機能について紹介していく。
いうまでもなく、ASP.NET 3.5とは.NET Framework 3.5に含まれるWebアプリケーション開発向けフレームワークであるASP.NETの最新バージョンだ。そしてASP.NETアプリケーション開発者がまず押さえておくべきASP.NET 3.5の新機能は、新しいコントロールと、ASP.NET AJAXの2点である。
ASP.NET AJAXに属するコントロールを除くと、純粋にASP.NET 3.5で追加されたコントロールには、ListView、DataPager、LinqDataSourceの3種類がある。今回はこれら3つのコントロールについて、実際にサンプル・プログラムを作りながら解説していく。
新しいデータアクセス・コントロール − ListViewコントロール −
ひと言でいうならば、ListViewコントロールは非定型のリストを生成するためのデータアクセス・コントロールだ。もっとも、これだけだと数ある従来のデータアクセス・コントロールとの違いが分かりにくいかもしれない。ASP.NET 2.0では、すでにGridView(ASP.NET 1.xではDataGrid)をはじめ、DataList、Repeaterコントロールなど、リストを生成するためのコントロールがいくつも提供されているからだ。
ListViewコントロールそのものの説明に入る前に、まずはこれら既存のデータアクセス・コントロールとListViewコントロールとの違いを、表にまとめてみよう。
| ||||||||||||||||||||||||||||||||||||||||
データアクセス・コントロールの機能比較(リスト系のみ) | ||||||||||||||||||||||||||||||||||||||||
カッコ内は含まれる.NET Frameworkのバージョン。また、「DS」はデータソース・コントロールへの対応の度合いを表す。 *a RepeatLayoutプロパティによって、自動生成されるタグは変動する。 *b GridViewコントロールは、ASP.NET 1.xではDataGridコントロールとして提供されていたもの。これはASP.NET 2.0以降でも利用自体は引き続き可能であるが、特別な理由がない限り、新しいGridViewコントロールを利用するべきである。 |
まず、Repeaterコントロールはテンプレートで指定されたコンテンツを繰り返し出力する、最もシンプルなデータアクセス・コントロールだ。余計なタグを自動生成しないことから、ちょっとしたリストやHTML以外の形式のコンテンツを生成する*1には便利であるが、半面、データ編集、ソート/ページングなどの機能を持ったリストの実装には不向きである(不可ではないが、複雑なコーディングを要する)。
また、フォーム・デザイナでの編集に対応しておらず、テンプレートを定義するにはすべてコード・エディタ上から行わなければならないという制限もある。
*1 例えば、「.NET TIPS:[ASP.NET]データベースからRSSフィード情報を生成するには?」にあるような例を想定してみるとよいだろう。 |
もう少し高度な機能を備えたデータアクセス・コントロールとしては、DataListコントロールもあるが、こちらもページング/ソートなどの機能は備えておらず、また、ASP.NET 1.xから提供されていたコントロールである性質上、(ASP.NET 2.0で追加された)データソース・コントロールとの連携が十分でないなどの問題がある(連携自体は可能であるが、定型的なデータ編集に際しても微細なコーディングが必要となる)。ASP.NET 2.0で追加されたGridView/DetailsView/FormViewなどのコントロールに比べると、どうしても使い勝手の悪さが目立っていた。
そして、ASP.NET 2.0で登場したGridViewコントロールは、データ編集からソート/ページング機能までを備えた高機能なデータアクセス・コントロールである。また、テンプレート機能を利用することで、いわゆるグリッド表だけではなく、かなり柔軟なレイアウトのリストも生成できることから、高機能なリストを生成するには手放せないコントロールでもある。
ただし、もともと表を生成することを目的としたコントロールであることから、<table>タグなどテーブル系のタグが必ず出力されてしまうという問題がある。これはシンプルなページではそれほど問題になることはないが、微細なレイアウトを要求されるページではデザインが崩れる原因となるものだ。
以上を総括すると、要はASP.NET 2.0の段階では「データ編集やページング/ソートなどの機能は利用したい、しかし、余計なタグは出力してほしくない」という状況で利用できるコントロールが存在しなかったわけだ。そのような状況の下で登場したのが、ListViewコントロールなのである。
前掲の表をご覧いただいても分かるように、ListViewコントロールでは「基本的なデータ編集からページング/ソートなどの機能を備える」とともに、「テンプレートで定義された以外のコンテンツを出力しない」という性質を持っている。
例えば、GridViewコントロールでTemplateFieldフィールドだけを利用して、リストを生成しているような局面では、今後はListViewコントロールを優先して利用するべきだろう。また、Repeater/DataListコントロールを利用してきた大部分のケースも、基本はListViewコントロールで賄うことができる。今後は、
- 定型的なグリッド表はGridViewコントロールで
- 非定型リストはListViewコントロールで
という使い分けになっていくものと思われる。
■ListViewコントロールを使ったサンプル
以上、やや前置きが長くなったが、ListViewコントロールの位置付けが理解できたところで、ListViewコントロールを使った具体的なサンプル・アプリケーションを見ていくことにしよう。
[1]リストに表示するためのデータソースを用意する
まずは、リストに表示するために、以下のような書籍情報(Bookテーブル)をデータベース上に作成しておこう。また、Bookテーブルには適宜、サンプル・データとして適当な情報をあらかじめセットしておくものとする。
| ||||||||||||||||||
Bookテーブルのフィールド・レイアウト |
[2]新規のWebフォームを作成する
新規のWebフォーム(ListView.aspx)を作成したら、フォーム・デザイナにより以下の画面の要領でListViewコントロールを配置する。
図1 Webフォーム(ListView.aspx)のレイアウト |
ツールボックスからListViewコントロールを配置する。 |
[3]データ構成ウィザードを実行する
ListViewコントロールを配置した直後の時点では、まだ具体的なデータはバインドされていないし、テンプレートも定義されていないので、単なる灰色のボックスが表示されるだけだ。
そこで次に、ListViewコントロールに表示すべきデータソースの内容を定義する。データソースを定義するには、ListViewコントロールの右上から[ListViewタスク]メニューを表示して[データソースの選択]−[<新しいデータソース>]を選択すればよい。
これにより、データソース構成ウィザードが起動する。VS 2008ではデータを取得する場所として「LINQ」の項目が新たに追加されているが、このウィザード自体は前バージョンからおなじみのものだ。
図2 [データソース構成ウィザード]ダイアログ |
ListViewコントロールの右上から[ListViewタスク]メニューを表示して[データソースの選択]から「<新しいデータソース>」を選択することで、このダイアログが表示される。 |
上の画面のような[データソース構成ウィザード]ダイアログが起動するので、以下の表の要領でデータソースの取得に必要な情報を設定する。データソース構成ウィザードの詳細については、拙稿「無償データベース SQL Server 2005 Express Editionを使ってみよう」が詳しいので、こちらも併せて参照していただきたい。
| |||||||||||||||||||
データベース構成ウィザードの設定 | |||||||||||||||||||
[データ接続の選択]欄で設定している「MyDB」はデータベースへの接続名であるものとする。接続名は、もちろん任意の名前を定義して構わない。 |
INDEX | ||
Visual Studio 2008&ASP.NET 3.5 | ||
ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part I | ||
1.JavaScriptサポートを大幅に強化 | ||
2.外部のJavaScriptライブラリやサービス・メソッドも認識可能 | ||
3.サービス・メソッドを利用する場合/自作ライブラリにもツール・ヒントを表示 | ||
4.機能強化されたJavaScriptのデバッグ機能 | ||
ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part II | ||
1.CSSサポートもますます使いやすく(1) | ||
2.CSSサポートもますます使いやすく(2) | ||
3.マルチターゲッティング機能/分割ビュー | ||
4.マスタ・ページのネスト機能/エクステンダ・ウィザード | ||
ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part III | ||
1.新しいデータアクセス・コントロール − ListViewコントロール −(1) | ||
2.新しいデータアクセス・コントロール − ListViewコントロール −(2) | ||
3.より柔軟なページャの配置を可能にする − DataPagerコントロール − | ||
4.ASP.NETページでLINQ機能を利用する − LinqDataSourceコントロール − | ||
ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part IV | ||
1.UpdatePanelコントロールの適用範囲が拡大 | ||
2.ロール・アクセスに対応したアプリケーションサービス・ブリッジ | ||
3.Webサービス・ブリッジがWCFをサポート | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|