Web MatrixにはVisual Studioで便利な「Intelli Sence」機能が備わっていない。名前空間、クラスやそのメンバをすべて憶えていなければならないのがつらいところだが、Web Matrixが備える別の機能を使うことである程度補完することもできる。
Web Matrixの画面構成で説明した「クラス一覧」を使うことで、クラスのメンバに何があるか、またクラスそのもののヘルプを表示することができるため、それを使いながらコード記述ができる。スムーズなプログラミングが可能となる。
例として前述のサンプルアプリケーションで使用したテキストボックスのヘルプを表示させてみよう。Web Matrixの右ペイン下にある「クラス一覧」を選択し、ツリーから「ASP.NET Webコントロール」を展開する(画面13)。この中から「<asp:TextBox>」をダブルクリックすると、TextBoxコントロールのヘルプがウィンドウに表示される(画面14)。
ヘルプのウィンドウにはプロパティ、メソッドやイベントのメンバーが種類別に表示されため、コントロールで何かを行いたい場合にメンバーリストから実現したい処理に使用する適切なメンバを探すことができるのだ。ここで注意したいのは、プログラミング言語にVisual Basic.NETを使用している場合には、コンパイラが名前空間やクラスの名称を大文字と小文字の区別をしないが、C#およびJ#のコンパイラでは区別をすることだ。例として、次のVisual Basic.NETのコードはコンパイルエラーにはならないが、C#の場合にはコンパイルエラーとなる。
Visual Basic.NET label1.text = textbox1.text Visual C# Label1.Text = TextBox1.text; |
以下は、この際に表示されるコンパイルエラー内容だ。
コンパイラ エラー メッセージ: CS0117: 'System.Web.UI.WebControls.TextBox' に 'text' の定義がありません。 |
前述の紹介でデバッグ機能がないと説明したが、厳密にはWeb Matrixはコードをステップ実行することができないのだ。コンパイルエラーは、実行時にASP.NETによりWebページとして表示されるので問題ないが、コード実行時にエラーがあった場合には、標準ではエラーにより処理が中断されたことだけが表示される。具体的にどのコード個所でエラーが発生したかを把握することができない。試しに先に挙げたサンプルコードを次のように確実な実行時エラーを発生させてみると、次のようになる。
Sub Button1_Click(sender As Object, e As EventArgs) Dim a As Integer a = TextBox1.Text End Sub |
このコードでは、Integer型の変数にStringの値を代入するため、型の不一致で実行時エラーが発生する(画面14)。どのようなエラーが発生したのかは理解が可能だが、どこのコード個所で発生したのかは把握できない。画面14内にも記載されているが、その場合はページの属性に「Debug」ディレクティブを追加しよう。ページ属性は、エディットウィンドウの「すべて」タブを選択することで、編集可能だ。
<%@ Page Language="VB" Debug="true" %> |
Debugディレクティブを追加して再実行すると、画面15のようなエラーメッセージに変わる。このようにどの行で実行時エラーが発生したかを確認できるため、デバッグ効率が比較的よくなるのだ。
データベースへの接続はADO.NETを介して行うが、そのためのコード量は一般的に多くなりがちだ。Web Matrixではコード記述量を減らしつつ、簡単にデータベースへ接続する手段を用意している。
Web Matrixで操作可能なデータベースには、SQL Server、MSDE(SQL Server 2000 DesktopEngine)および、Microsoft Office AccessのMDBだ。また、Web Matrixで可能なデータベースの操作は次の通りだ。
データベースへ接続するには、最初にWeb Matrix自身へデータベース接続する必要がある。今回は「MSDE」を利用してデータベースとテーブルの新規作成を行ってみよう。
データベースをWeb Matrixに接続(追加)するには、画面16のツールボタンをクリックする。「データベースに接続」ダイアログが表示されるため(画面17)、データベースを作成するサーバを指定するのだ。ローカルのMSDEに作成するため、「サーバー」には「local」を指定する。次にダイアログの右下にある「データベースの新規作成」をクリックしよう。なお、既存のデータベースを使用する際は、ダイアログ下にある「データベース」コンボボックスからデータベースを選択すればよい。
次には「新しいプロジェクトの追加」ダイアログ(画面18)が表示されため、「SQL Server/MSDE データベース」を選択して「OK」ボタンをクリックする。データベース名を入力するインプットボックスにデータベース名を入力するとデータベース作成が完了だ(画面19)。
テーブルを作成するには「データ一覧」ウィンドウで「テーブル」を選択した状態で画面20の「新規作成」ツールアイコンをクリックする。すると、データテーブルの「エディット」ウィンドウ(画面21)が表示される。標準では「Column0」という名称でカラムが設定されている。ここでカラムを追加するには、「新規作成」ツールボタンをクリックし、カラム名を入力する。カラムのデータ型などのプロパティは下の「プロパティ」ペインで設定すればよい。すべての設定が完了したら「ファイル」メニューの「上書き保存」で変更をデータベース保存する。
引き続きデータを追加するにはエディットウィンドウ下部にある「データ」タブをクリックしよう。または「データ一覧」ウィンドウで対象のテーブルをダブルクリックすればよい。すると、画面22のデータ編集ウィンドウが表示され、データの入力編集が可能となる。データの入力後はテーブルのカラム編集ができなくなるため注意が必要だ。
Webフォームにデータ接続を追加するためには、「データ一覧」ウィンドウのテーブル名を選択してWebフォーム上にドラッグ&ドロップすればよい。これによりSQL Server/MSDEにデータ接続するに必要な「SqlDataSourceControl」とデータを表示する「MxDataGrid」コントロールが追加され、この状態で単純にデータベース内容を表示するデータグリッドとしてWebフォームが完成する(画面23)。
なお、通常データベースの接続を行うには、SqlData Source Controlの「ConnectionString」プロパティと、「SelectCommand」プロパティを設定する必要がある。また、MxDataGridコントロールもデータを表示するためには、DataSource Control ID」、「DataMember」、および「DataKeyField」プロパティの設定が必要だ。前述の操作によってこれらの設定が自動で行われる。
ここまでで、Web Matrixのデータ接続機能を使うことで多くの作業が楽に行えることが分かっただろう。特に、MSDEは標準でGUIベースの管理機能を備えていないため、Web Matrixをデータ設定用のツールとしても使用することができる。
かけ足でWeb Matrixの機能を解説してきたが、無償のツールであるにも関わらず高機能であることが分っただろう。それだけASP.NETの開発チームの有志がASP.NETに対し、自信と誇りを持っていることが感じ取れたのではないだろうか。より多くのデベロッパーにASP.NETを評価してほしいという願いが表れていると筆者は感じる。通常のWebフォームは、もとよりモバイルWebアプリケーションやWebサービスなど、Microsoft ASP.NET Web Matrixによって、あらゆるASP.NETの機能を試してみることが可能だ。
最後の関連リンクには、ASP.NETを評価する際に役立つサイトを紹介しておく。
Copyright © ITmedia, Inc. All Rights Reserved.