Visual Studio 2008 Express Editionではろー

NetBeansJDeveloperでお手軽はろーアプリケーションは紹介したので、次にEclipse・・・と思ったのだが、探し方が悪いのかプラグインが見つからない。仕方がないので今回は同様の土俵であるASP.NETで書いてみた。

VisualStudioは有償製品ではあるが、Express Editionは無料で使うことが可能だ。バージョン管理が出来ないなど機能は制限されているものの、個人で軽く使う分には問題あるまい。

ASP.NETを作成できるVisual Web Developerをダウンロード、インストール。

今回もマニュアル等を読まずにゴー!ただ、基礎がわかっているJavaEEの世界と違ってMS製品は勝手がわからないため躓くかもしれない。それはドキュメントを読まないおいらが悪いのだ。


まず、プロジェクトの新規作成。今回はVB.NETを選択する。ソリューションというのがよくわからないが、チェックがデフォで入ってるのでそのままにしておこう。


起動するとaspxファイルのソースが表示される。デフォの表示がデザイナの画面じゃないということは手によるcss設定等のチューニングを前面に押し出しているのかな。なんかJavaみたい。ASP.NETといえばぽとぺたでガンガンいくぜ、デザイナもこっちを使え!というイメージが強かったのだが。

デザインのタブに切り替えると、絶対座標等によるデザインかとおもったが、どうやら違うようだ。このぽとぺたのバランスは非常にJDeveloperに近い。

どうせオプションで設定できるだろうと思ったらまさにそれっぽいのが見つかった。


だが、ここをを設定しても反映されない。どこかに設定箇所があるのだろうか。

しかたないので新規にページを作成する。Default1.aspxというファイルをどこに保存するかのダイアログが出た。なんかプロジェクトの外っぽい。本当にここでいいのだろうかと思いつつソースがある場所へ移動して作成。ソリューションエクスプローラというやつを見ると関連付け等が一切ないようだ。アイコンも未登録な感じ。


・・・やばい。なんかまちがえたっぽい。


メニューを探してみると、「項目を追加」というのがあった。項目?よくわからないが、これを選択したら先ほどと同じようにファイルの種類を選択するダイアログが出た。その後ファイルを保存する場所を選択するダイアログは現れなかった。どうやらあたりっぽい。

ソリューションエクスプローラで右クリックするとスタートページに設定という項目があった。たぶん、これでいいのかな?そしてDefault.aspxとDefault1.aspxを削除する。

WebForm1というページが表示されたところで、ここでもう一度配置してみる。

うーん、うまく配置できない。ラベルはどうすれば移動してくれるのだろうか。aspxファイルのソースを見るとエラーが出てる。ラベルのcssの生成がうまく出来ていないようだ。スタイルの手動設定にしたところうごくようになった。これでいいのかな?あんまり釈然としないが、まぁいいか。コンポーネントを選択状態にすると移動できないというのが作業がしにくい。

必須入力のチェックはどこでするのだろうか。JSFの場合コンポーネントに対して行うのだが、テキストフィールドではそれらしいものがみつからない。コンポーネントの検証タブにRequiredFieldValidatorなるものがあったのでこれを選択してみる。必須入力メッセージ等が設定できるようでこれが正解っぽい。


コンポーネントを配置したら、たぶん、これでイベントのコードを書けるだろうということで、ボタンをダブルクリック。

WebForm1.aspx.vbというファイルが開いたのでここににロジックを書いてみる。

Public Partial Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Label1.Text = "はろー" + TextBox1.Text + "さん"

    End Sub
End Class

JSFでいうところのコンポーネントバインディングを使ったソースまんま。JSFコンポーネントバインディングしてそのvalueプロパティを触るということは通常しないのだが(Object型なんであんまりよろしくない)、ASP.NETだとこれでいいのかな。


そういや肝心のコンポーネントの定義をしているソースはどこだろう。補完で候補が出てきたので他にあるはずだ。「Partial」と書いてあるので分割ソースなんだろうなという予想。

どうやらWebForm1.aspx.designer.vbというファイルが(感覚的には)JSFでいうコンポーネントバインド相当らしい。なるほど、なるほど、1画面を作るのにソースファイルが3つあるということか。これ画面数が増えるとすごいことになりそう。


とりあえず配置が終わったので実行。

名前を入力せずに実行を押すと・・・


そして今度は名前を入力して実行を押す。


とりあえずこの範囲ならばJSFASP.NETはほぼ同じ開発方法だと思ってよいようだ。ただ、JSFであるようなバリューバインディングとかJPAのようなO/Rマッパをどうするのかという部分は不明。今後調べてみよう。


ASP.NETの開発経験がある人にJavaのWeb開発を教える場合、Strutsを教えるよりJSFを教えたほうがはるかに敷居が低いと思った。