Web Matrixで始めるWebアプリ・プログラミング

第4回 Web Matrix独自のサーバ・コントロールの活用

山田 祥寛
2004/03/13
Page1 Page2 Page3


≪今回の内容≫
・Web Matrixの独自サーバ・コントロールを利用する
・拡張サーバ・コントロールの活用

 今回はWeb Matrixが提供する独自の機能について紹介することにしよう。Web Matrixは必ずしもVisual Studio .NET(以下VS.NET)のサブセットではない。VS.NETにはない独自の機能を多く提供することで、特にパーソナルユースの局面では、VS.NETよりもむしろ軽快で使いやすいツールに仕上がっている。これらをうまく利用することで、VS.NET同様の――あるいはそれ以上の開発生産性を手に入れることも可能となる。

Web Matrix独自のサーバ・コントロール

 Web Matrixの大きな特徴の1つは、ASP.NET(あるいはVS.NET)では提供されないWeb Matrix独自のサーバ・コントロールを提供している点にある。ツールボックスの[Web Controls]カテゴリをのぞいてみよう。以下の見慣れないコントロール名が確認できるはずだ。

  • SqlDataSourceControl
  • AccessDataSourceControl
  • MxDataGrid

 このうち、SqlDataSourceControl、AccessDataSourceControlは、その名のとおり、SQL Server(MSDE)、Accessデータベースへの接続を管理するためのコントロールであり、MxDataGridコントロールと組み合わせて使用するのが一般的だ。MxDataGridコントロールは、Web Matrixが独自に提供する「より高度な」DataGridコントロールであり、ソートやページング機能がデフォルトで有効になっている。

 さて、ここでAccessDataSourceControlなどという代物が登場したことに、もしかすると疑問を持たれた読者もおられるかもしれない。というのも、旧ASP 3.0の時代から、サーバ・サイド用途としてはAccessデータベース(Microsoft Jetデータベースである「.mdb」ファイル)を使用しないことが推奨されてきたからだ。にもかかわらず、Web MatrixでAccessデータベース対応のコントロールが提供されている。このことをどのようにとらえればよいのだろうか。恐らくは、Web Matrixを採用する個人ユーザーの中には、Accessデータベースを手軽なデータ・ストア手段として利用している人が多くいることを考慮しての措置であると思われる。もちろん、本格的なWebアプリケーションのバックエンド・データベースとしてAccessデータベースは採用すべきではないということはいまも変わらない。筆者としては、Accessデータベースの代替として無償の企業向けデータベース・エンジンであるMSDEを採用することを強くお勧めしたい。

 それでは、実際にWeb Matrix上で、SqlDataSourceControlとMxDataGridコントロールを利用してみることにしよう。これらコントロールは、ツールボックス上からフォーム・デザイナにドラッグ&ドロップしても構わないが、[Data]ウィンドウを利用することで、より簡単にグリッド表を作成することができる。

 方法は極めて簡単。[Data]ウィンドウには、本連載の第3回で「(local).webmatrix」データベースへの接続がすでに設定されているはずだ。そこで、この「(local).webmatrix」配下の[Tables]−[composer]テーブルをフォーム・デザイナ上にドラッグ&ドロップして配置するだけでよい。すると、データベースへの接続を表すSqlDataSourceControlとcomposerテーブルへの連結を終えたMxDataGridコントロールとが自動的に配置される。単純なグリッド表を表示するだけならば、実にこれだけの操作でよい。

Webページ(grid.aspx)上に自動作成された2つのコントロール
テーブルをドラッグ&ドロップすると、自動的にSqlDataSourceControlとMxDataGridコントロールが配置される。

 Web Matrixサーバでこのページを実行して、作成されたページの内容を確認してみよう。

Web Matrixサーバで実行した場合のWebページ(grid.aspx)
デフォルトでページング、ソート機能が有効になっている。ページ番号は一番下の行に表示される。また、ヘッダー行の列名をクリックすることにより、それぞれの列でグリッドの行をソートできる。

 すでにソート機能やページング機能が設定されたグリッド表が表示されているはずだ。もしも表示項目を限定したり、条件式でレコードを絞り込んだりしたい場合には、SqlDataSourceControlをマウスで選択してから、プロパティ・ウィンドウでSelectCommandプロパティの中身を編集すればよい。MxDataGridコントロールは、SelectCommandプロパティによって抽出されたデータの中身をグリッド上に表示する。

[注意]

 Web Matrix独自のサーバ・コントロールをIIS上で動作させるには、「<アプリケーション・ルート>\bin」フォルダにMicrosoft.Matrix.Framework.dllを配置する必要があるので注意すること。Microsoft.Matrix.Framework.dllは、「<Web Matrixのインストール・フォルダ>\<バージョン番号>\Framework」に用意されている。

 

[参考]
 MxDataGridコントロールからは、標準のDataGridコントロールのようにグリッド表のデザインを設定する「自動フォーマット」機能を利用することはできない。ただし、使用できる属性やスタイル・プロパティは共通なので、DataGridコントロールの「自動フォーマット」で生成されたソースをカット&ペーストすることはできる。

 ちなみに、MxDataGridコントロールでAccessデータベースを利用したい場合も作業内容は同様だ。連載第3回で紹介したのとまったく同じ要領で、「Data」ウィンドウ上にAccessデータベースを関連付けることができる。ただ、[Add New Project]ウィンドウで「SQL Server/MSDE Database」ではなく、「Access Database」を選択するだけだ。そして[Connect to Database]ダイアログから目的のAccessデータベース(「.mdb」ファイル)を選択すればよい(もしも新規のデータベースを作成する場合には、そのダイアログ内にある[Create a new database]を実行する)。

[Connect to Database]ダイアログ
Web Matrix上から操作したいAccessデータベース(.mdbファイル)を選択する。

 [Data]ウィンドウに、今度は「.mdb」ファイルの中身がツリー表示されるので、やはり該当のテーブルをフォーム・デザイナ上にドラッグ&ドロップする。今度は、SqlDataSourceControlではなく、AccessDataSourceControlとともにMxDataGridコントロールが配置されるはずだ。

 なお、SqlDataSourceControlとAccessDataSourceControlとを見比べてみると、すぐに気付くことであるが、両者はプロパティの種類に大きな隔たりがある。すなわち、AccessDataSourceControlにはINSERT/UPDATE/DELETE系のコマンドを設定するためのプロパティが存在しない。Web MatrixではAccessデータベース対応のコントロールこそ提供しているものの、登録系のトランザクションを扱う用途ではなく、あくまで参照のみの利用を想定しているということなのであろう。


 INDEX
  Web Matrixで始めるWebアプリ・プログラミング
  第4回 Web Matrix独自のサーバ・コントロールの活用
  1.Web Matrix独自のサーバ・コントロール
    2.オンライン公開されている拡張サーバ・コントロール
    3.拡張サーバ・コントロールの利用サンプル
 
インデックス・ページヘ  「Web Matrixで始めるWebアプリ・プログラミング」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間