ASP.NET

これまで、ASP.NETには触れたことが無かったのですが、ちょっとくらいはやってみるかということで触ってみました。

ちなみに、私のスペックはこんな感じです。

  • 業務で主に使っているのはJava Servlet
  • 趣味では、PHPRuby
  • Visual Studioは、学生のときにアルバイトで、Visual Studio 6.0(C++)を使っていたくらい(もう、7〜8年前になります。。。)

って状態で、ASP.NETを使ってみました。

開発環境は、Visual Studio 2005 Web Developer Express Edition と SQL Server 2005 Express Editionです。
とりあえず、ネットでそれらのセットアップ方法を書いた記事を見つけて、まずはインストール。学習教材は、マイクロソフトがオンラインで公開している自習書シリーズから取ってきました(SQL Server 2005 自習書シリーズ Express 編 No.2 Express Web アプリケーション開発基礎)。
自習書のダウンロードはこちら

自習書では、SQL Serverに付属のサンプルデータベースを使って簡単なWebアプリを作っていますが、サンプルデータベースが見あたらなかったので(インストール時に選択できたのかな?)、そこは適当にテーブルを作ったりしながら試してみました。

以下、使ってみての感想です。

  • 今回のサンプルアプリでは、データベースのテーブルからデータを取ってきて、アプリケーション上の表(DataGrid)に内容を表示するって物ですが、単にデータを取ってきて一覧表示するだけなら表にSQLを簡単に関連付けるだけで実現できます。
  • ただ、日付型項目のデフォルトの出力形式が不満だったので、日付フォーマットを指定して出力したいと思ったのですが、それをやろうとしたらSQLを直接編集して"CONVET(VARCHAR,..."とか書く羽目になりました。。。(プロパティか何かで設定できるのではないかと思って探したんですけどね。探し方が悪かったのかなぁ。。。)
  • 表(DataGrid)の見た目を、プロパティで簡単に変更することが出来ました。また、「列の並び替えを有効にする」というチェックボックスがあったので、試しにチェックをつけてみたら、DataGridの見出し列がリンクになって各列でソートが出来るようになりました。この辺は、さすがに便利です(他にも、「ページ切り替えを有効にする」なんてチェックボックスがあったり)。
  • 今回作ったのは、セレクトボックスで指定された条件で絞込みを行って、条件に合うレコードを表に出力するというものです。Visual Studioでは、DataGridにSQLを簡単に関連付けられるのですが、実際にアプリを作ることを考えると、条件が指定されていないときは条件は無しで、条件が指定されたときのみWHERE句の条件が追加されるって感じになります。そのように、実行時の条件に応じてSQLを変えるという方法は、ぱっと見ではわかりませんでした。まあ、こういったことをやろうとすると、それなりにコードを書く必要が出てくるんでしょうね(別にいやなわけではなく、Visual Studioで開発してても結局はそうだよね、って感じです)。
  • 他の言語では、RubyだろうとPerlだろうとPHPだろうと、最終的に出力するのはHTMLなのでその部分の知識は共通です。これが、ASP.NETでのASPXファイルはけっこう独特ですね。比較的、他の言語からの移行に伴う学習コストが高いのではないかと思われます。

まとめると、ちょっとしたサンプルアプリは簡単に作れるものの、実用的なアプリを作ろうとすると、ASP.NET(+Visual Studio)だからといって工数面でのメリットはあまり無さそうに感じられます。
今回のサンプルではDataGridしか使っていませんが、標準で用意されているコントロールにはそれなりに便利なものもありそうなので、それらのコントロールを活用することが有効な場面ではASP.NETを使うメリットがあるのかもしれません。