特集:Visual Studio 2008&ASP.NET 3.5

ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part I

山田祥寛(http://www.wings.msn.to/
2008/01/18
Page1 Page2 Page3 Page4

 2007年12月14日、英語版の開発完了から約1カ月を経て、待ちに待った「Visual Studio 2008 日本語RTM版」(以降、VS 2008)の開発が完了した。Visual Studio 2005(以降、VS 2005)の日本語RTM版リリースが2005年12月15日のことであったから、実に2年ぶりのメジャー・バージョンアップということになる。

 この2年を早いととるか遅いととるかは人それぞれかもしれないが、少なくとも最新のプラットフォーム/フレームワークでの開発を手掛ける開発者にとっては、一日千秋の思いで待ちわびたリリースだったのではないだろうか。

 というのも、VS 2005のリリース以降に登場したプラットフォーム/フレームワークは少なくない。Windows Vista、2007 Office Systemsをはじめ、WPF/WCF/WF/WCなどのフレームワークを抱える.NET Framework 3.0、ASP.NET 2.0向けのAJAX拡張であるASP.NET AJAXなどである(これらについては「Insider's Eye:.NET Framework/Visual Studio年表」でまとめられている)。

 そして、これらのプラットフォーム/フレームワークは、(当然ながら)VS 2005をインストールするだけでは利用できなかった。以下の表に示すような拡張機能を別に導入する必要があったのだ。

リリース時期 製品/技術名 開発環境(ソフトウェア)
2006年11月 .NET Framework 3.0
(WPF/WF/WCF)
Visual Studio 2005 Extensions(ただし、WPF/WCFについてはCTP版)
2006年11月 2007 Microsoft Office System Visual Studio 2005 Tools for 2007 Office System
2007年1月 ASP.NET AJAX 1.0
& Control Toolkit
ASP.NET AJAX 1.0
Visual Studio 2005以降にリリースされた新技術と必要な開発環境

 VS 2008とは、VS 2005以降のこれらの拡張機能を完全に統合した集大成であるといってもよいだろう。本特集は、このVS 2008の新機能のうち、ASP.NETアプリケーション開発に関係する機能にフォーカスして解説を行うものだ。VS 2008全体の新機能を総覧したいという方は、併せて「Visual Studio 2008に搭載された17の新機能」も参照することをお勧めしたい。

 この記事は3回にわたり、まずPart I、Part IIではVS 2008のIDEとしての新機能について、Part IIIではASP.NET 3.5で追加された新規コントロールや統合されたASP.NET AJAXについて、それぞれ解説する。Part Iとなる今回では、IntelliSense(インテリセンス)機能やデバッガなどで大幅に強化されたVS 2008のJavaScriptサポートについて取り上げる。

JavaScriptサポートを大幅に強化

 Ajax(Asynchronous JavaScript And Xml)の普及に伴い、JavaScriptによるプログラミングはいまや欠かせないものとなった。

 もちろん、ASP.NET AJAX(正確には、そのサーバサイド機能であるAJAX Extensions)のようなAjax対応フレームワークを利用することで、限りなくJavaScriptレスでAjax機能を実装することも可能ではあるが、手軽にできることにはやはり限界がある。というよりも、あくまで「定型的なAJAX機能をシンプルに提供する」のがAJAX Extensionsの役割であると考えるべきだろう。アプリケーション固有の要件に応じたAjax機能を実装するならば、JavaScriptによるクライアントサイドのコーディングは不可欠なのである*1

*1 JavaScriptに関する詳細は、拙稿「連載:Ajax時代のJavaScriptプログラミング再入門」「連載:Microsoft AJAX Library&JavaScriptプログラミング」も併せて参照されたい。

 もっとも、JavaScriptによる開発を苦手とする開発者は決して少なくない。その原因は、JavaScriptという言語そのものの特殊性によるところも大きいが、それ以上にJavaScriptプログラミングに利用できる標準的な統合開発環境が不在であったという点は看過できない。

 JavaScriptプログラミングというと、まだまだテキスト・エディタでひたすらにコーディングし、ブラウザ標準の分かりにくいエラー・メッセージを確認しては修正し、再びトライする。デバッグ時に、実行中の変数の内容を確認したいならば、コードのあちこちにalert関数を埋め込まなければならない――そんなイメージがまだまだ付きまとっているようだ(そして、そのイメージはあながち間違ってもいない)。

 なるほど、従来のVS 2005でもJavaScriptのIntelliSense機能は提供されていたが、その対応はごく限定されたものであり、本格的なコーディングにはほとんど用をなさなかった(それこそ、VS 2005のコード・エディタでは、スペルを間違おうが、存在しないメンバを呼び出そうが、一切の指摘もしてはくれなかったのだ!)。これでは、Visual BasicやC#など、高度な統合開発環境での開発に慣れた開発者が、「JavaScriptのコーディングは難しい(面倒くさい)」と思うのも無理からぬことだろう。

 しかし、VS 2008では本格的にJavaScriptへの対応がなされ、JavaScriptでのプログラミングが格段に行いやすくなっている。ちなみに、JavaScriptサポートはVS 2008本体の機能であるので、マルチターゲッティング機能(Part IIで解説)を利用すれば、(新しいASP.NET 3.5アプリケーションを開発する場合だけでなく)ASP.NET 2.0アプリケーションを開発する場合にも有効だ。筆者の個人的な意見ではあるが、JavaScriptサポート機能を利用するためだけでも、VS 2008を導入する価値は十分にあると感じている。

 それでは、具体的にVS 2008でのJavaScriptサポートの詳細について見ていくことにしよう。

■型推測にも対応、飛躍的に賢くなった「IntelliSense機能」

 従来、JavaScriptのIntelliSense機能が不完全であったのには、1つ大きな理由がある。というのも、JavaScriptが動的言語であるということだ。

 ご存じのように、JavaScriptは厳密なデータ型というものを持たない。代入された値に応じて、適切なデータ型が自動的に割り当てられるのである。このような型のあいまいさがこれまでIntelliSense機能の実装を難しくさせていた理由の1つである。

 しかし、VS 2008では新たに型の推測が可能となり、コンテキストに応じた適切な入力候補の表示が可能になった。




図1 JavaScriptのIntelliSense機能(1)
  候補メンバをリスト表示。
  メソッドや関数では、基本的な引数(パラメータ)情報もツール・ヒントとして表示される。

 このような標準的なIntelliSense機能が有効になっているのは当たり前(もちろん、Visual BasicやC#などの言語と同様、メソッドの引数にはツール・ヒントも表示される)。型の動的な変更もきちんと認識して、その場その場のデータ型に応じた入力候補を表示してくれる。

 例えば、以下の図2の例では、 の段階では数値型(number)であった変数xが、 の段階で「文字列です。」という文字列が代入されたことで文字列型(string)として扱われるわけであるが、このような場合にも表示される候補リストが動的に変化していることが確認できるはずだ。


図2 JavaScriptのIntelliSense機能(2)
VS 2008ではデータ型の動的な変更も推測して、その場その場に応じた適切な候補リストを表示してくれる。
  この時点では変数xは数値型(number)である。
  文字列を代入したため変数xは文字列型(string)となる。変数の型に合わせて候補リストの内容が変化しているのが分かる。


 INDEX
  Visual Studio 2008&ASP.NET 3.5
  ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part I
  1.JavaScriptサポートを大幅に強化
    2.外部のJavaScriptライブラリやサービス・メソッドも認識可能
    3.サービス・メソッドを利用する場合/自作ライブラリにもツール・ヒントを表示
    4.機能強化されたJavaScriptのデバッグ機能
 
  ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part II
    1.CSSサポートもますます使いやすく(1)
    2.CSSサポートもますます使いやすく(2)
    3.マルチターゲッティング機能/分割ビュー
    4.マスタ・ページのネスト機能/エクステンダ・ウィザード
 
  ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part III
    1.新しいデータアクセス・コントロール − ListViewコントロール −(1)
    2.新しいデータアクセス・コントロール − ListViewコントロール −(2)
    3.より柔軟なページャの配置を可能にする − DataPagerコントロール −
    4.ASP.NETページでLINQ機能を利用する − LinqDataSourceコントロール −
 
  ASP.NETアプリ開発者のためのVisual Studio 2008新機能 Part IV
    1.UpdatePanelコントロールの適用範囲が拡大
    2.ロール・アクセスに対応したアプリケーションサービス・ブリッジ
    3.Webサービス・ブリッジがWCFをサポート


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 記事ランキング

本日 月間