表2や表3に示したコントロールの中で、特に充実されたのがデータベースサポート機能だ。たとえば、GridViewコントロールは、列として、テキストボックスやチェックボタンだけでなく、画像やコンボボックスとして表示できるようになった(画面11)。
従来までは表形式でデータを表示する際、画像を表示するためにはサードパーティのコントロールを利用するか、カスタム化されたコントロールを自作しなければならなかった。そのことを考えると、これだけでも、VS2005を使う価値があるかもしれない。
またWebアプリケーションにおいては、1レコードずつ表示できるDetailsViewコントロールも提供された。DetailsViewコントロールを使えば、画面12のように、レコードをひとつずつ表示し、編集するユーザーインタフェースを提供できる。
そしてWebアプリケーションにおいては、データバインディングの手順が簡単になったという点も補足しておく必要があるだろう。
従来は、Webアプリケーションにおいては、データを表示する前に、データベースからレコードを取得して、取得したデータを表示するためには次のような手順が必要だった。
1. SqlDataAdapterコントロールなどを用いて、そのFillメソッドを呼び出して、レコードの内容をDataSetオブジェクトにデータバインディングする。
2. データバインディング内容を描画することをコントロールに伝えるため、DataBindメソッドを呼び出す。
また従来は、ユーザーがWebフォーム上のテキストボックスなどで変更した際、その変更後の値を読み取り、データベースに書き戻すには、開発者によるコーディングが必要であり複雑だった。しかし、VS2005では、「SqlDataSource」や「AccessDataSource」などのコントロールを使うことで、データバインディングの処理が簡単になっている。
SqlDataSourceやAccessDataSourceなどのコントロールは、従来のDataSetオブジェクトの代わりとして利用するコントロールだ。これらのコントロールには、レコードを参照するためのSELECTクエリのほか、更新のためのINSERT、UPDATE、DELETEのクエリもオプションで設定できる。
ページが表示される時には、自動的にSELECTクエリが実行され、データベース上のレコードが取得される。そして、何らかのコントロールにデータバインディングされている場合には、取得したデータの内容がコントロール表示する。このため、開発者は明示的にDataBindメソッドを呼び出す必要がなくなったのだ。
またINSERT、UPDATE、DELETEのクエリをきちんと設定しておき、データバインディングしているコントロールが更新可能な状態にしておいた場合には、ユーザーがレコード値を編集した際、その編集後の内容が、自動的にデータベースへ書き戻されるようになった。
たとえば、開発者は、画面12のようなDetailsViewコントロールでレコードを編集させる場合、1. DetailsViewコントロールに対して編集を許可する設定にしておく、2. DetailsViewコントロールのデータバインディング先の「SqlDataSource」や「AccessDataSource」のコントロールにINSERT、UPDATE、DELETEのクエリを設定しておく、という2つの操作さえ行えば、まったくコードを記述することなく、ユーザーにデータベースの編集機能も提供することが可能なのだ。
|
そのため、データベースを使うWebアプリケーションを構築する場合には、VS2005を使うことで、大幅にコーディング量を削減できるのは、間違いないだろう。
次回後編は、VS2005の大きな特徴のひとつであるアプリケーション配布の新たな手段、ClickOnceなどについて解説していく(後編へ)。
Copyright © ITmedia, Inc. All Rights Reserved.