金宏 和實(かねひろ かずみ)

 富山県高岡市 株式会社イーザー副社長。「阪急電車」有川浩著(幻冬舎)を読みました。今津線が舞台です。甲東園駅から坂道を登っていく大学に通っていた私にはどの駅も懐かしく,また,イラストの電車の色のレトロさに学生時代を思い出しました。当時,目にした高校生や下宿の後輩の彼女が登場人物にダブりました。ああ,乗ってみたい。炭酸煎餅買いに宝塚に行きたい!

 無人島に一人で流れ着いたときに,自分は何をするだろう。砂浜に棒きれで大きく「SOS」と書くだろうか? 腹が減ったらどうしよう。船に釣り竿があれば釣りを始めるだろう。高いところが得意な人なら,木に登って木の実やフルーツを取るかもしれない。野生に目覚めて,槍で小動物を追いまわす人もいるかもしれない。

 突然,インターネットにつながらない環境に一人でほうり出されたらどうでしょうか? そこであなたは,迫りくる敵を倒すかのようにプログラミングをし続けなければいけません。プログラムを組むことでしか,あなたの生き残る方法はないとします。そこには書籍も雑誌もありません。過去に自分が作ったソース・プログラムを参考にすることもできません。

 そんなときに,あなたはどのプログラム言語を選びますか? 筆者はきっと昔からなじみの深いVisual Basic(VB)を選択すると思います。たぶん,オブジェクト指向だとか考えずに何とか動くコードを書くことに必死になるでしょう。何しろ,プログラムを書いて,希望通りの処理を実行させることのほかに生き残る道はない状況なのですから。こんな状況で選ぶ言語が自分のホーム・ポジションにあたる言語なのかもしれないですね。

 さて,新規開発案件の多くがWebアプリケーション(以下,Webアプリ)にシフトしている現在,読者の皆さんはどのような言語や開発環境でWebアプリを構築されているでしょうか。

 JavaやPHPが主流でしょうか。Ruby On Railsなども増えてきているようですね。「やっぱりPerlじゃなくちゃ」という歴戦の猛者もいれば,「これからはPythonだ」という新しい方もいらっしゃるでしょう。

 筆者の会社では主にPHPでWebアプリを開発しています。なぜPHPかというと,言語の仕様がC言語ライクでクセがなく習得にあまり時間がかからないことに加えて,開発環境や実行環境が無料で,または安価に構築できるところが魅力だからです。

 しかし,LinuxマシンにWebサーバーのApacheをインストールし,PHPをモジュールとして動作させることや,PostgreSQLやMySQLといったデータベース・ソフトウエアをインストールしてPHPから利用可能にすることは,Webアプリ開発の学習を始めたばかりの人には少し難しいでしょう。また,PHPとはいえ,Smartyなどのテンプレートを使うには,オブジェクト指向でプログラミングできなければいけません。開発効率の向上のためには,様々なフレームワークにも対応していく必要があるでしょう。

 では,ASP.NETによるWebアプリの開発はどうでしょうか。Visual Studio(VS)2008を使うと,ASP.NETによるWebアプリの開発がとてもラクチンなのです。今回は,まずASP.NETの外観と最新のASP.NET 3.5で強化された機能をざっくりとつかみます。そしてVB 2008を使うといかに快適にWebアプリが開発できるかを示しつつ,Windowsアプリとは違うWebアプリならではの押さえておかなければいけない基本を解説したいと思います。

ASP.NETとは

 ASP.NETは,ASP(Active Server Pages)の後継で,その名の通り,ASPを.NET化したものです。ASP.NETは,Webアプリ開発フレームワークであり,かつ.NET FrameworkにおけるWebアプリの実行環境です。.NET Framework対応の各言語でアプリを開発することができます。

 特徴的な点は,(1)実行時にASP.NETサーバーがWebブラウザの種類を判断し,自動的に最適なHTMLを出力する機能を持つ,(2)コンパイル結果をキャッシュすることで従来のASPに比べて処理速度が向上した,(3)スクリプト実行時に,前回実行したものと比べて変更があるときだけ自動でコンパイルを行う──などです。

 開発者から見た特徴は,まるでWindowsアプリを作るようにフォームにコントロールを配置し,イベントドリブンのスタイルでコードを記述していけばよいことです。勝手知ったるVBでボタン・クリック時の処理を書いていくことでWebアプリを作れるのです。

 ASPでWebアプリを開発するときは,IIS(Internet Information Services)が必要でした。IISには制限があり,家庭向けのWindows OSでは利用できないという問題がありました。VS 2005からは開発専用のWebサーバーとしてASP.NET開発サーバーが利用できます。ASP.NET開発サーバーは,IISのように別途サービスとして起動しておく必要がありません。Windowsアプリ同様にWebアプリをデバッグ実行すれば,自動的にASP.NET開発サーバーが起動します。

ASP.NET 3.5で追加された機能

 さて,本連載で扱うVS 2008は,Windows Vistaに初めて対応した統合開発環境です。Windows Vista用のアプリ開発がVS 2008で加速することでしょう。ここで一度,VSと.NETの関係を振り返ってみましょう(図1)。

図1●Visual Studio(VS)と.NET Frameworkの各バージョンの対応関係
図1●Visual Studio(VS)と.NET Frameworkの各バージョンの対応関係

 前バージョンのVS 2005は,.NET Framework 2.0に対応していました。.NET Framework 2.0には,ASP.NET 2.0や連載「再発見!VB 2005快適プログラミング」でも解説したADO.NET 2.0やWindows Form 2.0が含まれます。もちろん,ベースにはCLR(Common Language Runtime)やベース・クラスライブラリが存在します。

 一方,Windows Vistaには.NET Framework 3.0が搭載されています。実は,.NET Framework 2.0に,表1のWで始まる四つの機能を追加すると.NET Framework 3.0になります。

表1●Wで始まる四つの機能
名称 概要
WPF(Windows Presentation Foundation) リッチなユーザー・インタフェースを構築する基盤
WPF(Windows Communication Foundation) アプリケーション間の通信基盤
WF(Windows Workflow Foundation) ワークフローを定義・実行・管理する基盤
WCS(Windows CardSpace) インターネット上でIDを管理,制御,交換するためのシステム

 VS 2008は,.NET Framework 3.0にASP.NET AJAXなどを追加した.NET Framework 3.5に対応しています。ただし,マルチターゲット機能を備えており,.NET Framework 2.0や3.0向けのアプリケーションも開発できます。ターゲットとするフレームワークのバージョン(2.0/3.0/3.5)を指定してアプリを開発できるのです。

 ASP.NET 3.5で追加された機能は大まかに言うと,ASP.NET AJAXと三つの強力なコントロールです(表2)。ASP.NET 2.0では追加してインストールする必要があったASP.NET AJAXが標準でサポートされるようになりました。

表2●ASP.NET 3.5で追加された三つのコントロール
名称 概要
LinqDataSource LINQ*1クエリーを使うデータソース・コントロール
ListView GridViewをより高機能にしたコントロール
DataPager ページング機能を提供するコントロール
*1 Language Integrated Query(統合言語クエリー)。LINQにより,リレーショナル・データベースやXMLに対する操作をプログラミング言語に統合できる

 さらに,VS 2008には,Webアプリ開発を快適にする細かい,そして多岐にわたる機能強化があります。例えば,CSS管理機能の向上,フォームデザイナとコードエディタの並列表示,フォームデザイナの入れ子のマスターページへの対応,などです。

 また,JavaScriptのインテリセンスやデバッグ機能も加わりました。従来,クライアント側で実行されるJavaScriptを記述するときは,プロパティやメソッドのスペルを覚えて間違いなく入力しなければなりませんでした。しかし,VS 2008ではインテリセンス機能により簡単にコード入力ができるようになりました。

 デバック時も,VBやC#と同様にブレークポイントを設定して効率良くバグ取りができます。統合開発環境の機能強化ですから,サーバー側の処理言語にC#を選んでも,VBを使っても,同様に快適に開発が行えるのです。

 さっそく新しい機能を使ってみましょうと言いたいところですが,その前に,ASP.NETの基本をきちんと押さえておきましょう。