連載:〜ScottGu氏のブログより〜IIS Expressの紹介Scott Guthrie 著/Chica 訳2010/07/02 |
|
|
今日の開発者はASP.NETサイトおよびアプリケーションを、次の2つのWebサーバのどちらかを使って構築しています。
- Visual StudioにビルトインされているASP.NET開発サーバ
- WindowsにビルトインされているIIS Webサーバ
上記のどちらとも、それぞれ良い点と悪い点があり、多くのASP.NET開発者から“できればASP.NET開発サーバの手軽さがあり、そしてIISのすべてのパワーと機能が備わっているものがあればいいなと思う”といわれます。それら両方のベストな性能を組み合わせ、ASP.NETサイトおよびアプリケーションの構築、起動をより簡単する、新しい無償のオプションであるIIS Expressを本日(2010/6/28)アナウンスできて、うれしく思っています。
IIS Expressは、VS 2010およびVisual Web Developer 2010 Expressと動作し、Windows XP以上のシステム上で起動します。管理者権限を必要とせず、使用に当たりコード変更なども不要です。ASP.NETアプリケーションのすべてのタイプで利用でき、IIS 7.xの機能一式をすべて利用して開発できます。
現在の動き
IIS Expressの詳細の前に、まず簡単にASP.NET開発サーバとIISオプションが現在どのように動作しているのかをレビューしてみましょう。
■ASP.NET開発サーバ
Visual Studioにビルトインされている(“Cassini”としてもおなじみの)ASP.NET開発サーバには、軽くて素早く簡単に起動できるという利点があります。リモート・ポートを監視せず(多くの企業のセキュリティ環境での承認がより簡単になります)、管理者でない状態でも動作し、別途インストールの手順も不要です。
簡単に起動できるという事実は大きな利点で、それが、[F5]キーを押して起動したときにVisual StudioでASP.NETプロジェクトが利用するデフォルトのWebサーバになっている理由です。
図1 |
ASP.NET開発サーバの欠点ですが、Webサーバ機能をすべてサポートしていないところです。例えば、SSL、URL書き換えルール(ここでブログ投稿しているSEO URL書き換えルールなど)、独自のセキュリティ設定、そのほかIIS 7で提供されているよりリッチな機能などです。
■IIS Webサーバ
IISはVisual Studioで開発者がアプリケーションを起動してテストする際に利用できる、もう1つのオプションです。Visual StudioでIISを使用するには、プロジェクト上で右クリックしてプロパティを出し、(そしてプロパティ・ウィンドウで“Web”タブをクリックして)Webプロジェクトを構成できます。
図2 |
IISを開発サーバとして使用すると、すべてのWebサーバ機能をフルに活用できます(SSL、URL書き換えルールなど)。IISは一人前のWebサーバです。つまり、本番サーバ上でアプリケーションをデプロイしたときの状態に近い体験が得られます。
IISの現在の欠点ですが、会社によっては、開発者マシンにフルのWebサーバのインストールすることを認めていないことです。IISはまた、プロジェクトのセットアップやデバッグに管理者権限を必要とします。Windowsのバージョンによっては異なるバージョンをサポートしていたりします。例えば、Windows XP上で起動していた場合、それに付随のIIS 5.1 Webサーバを使用しなければなりません。それにはIIS 7.xの新機能がすべてサポートされていません。Visual StudioのWebプロジェクトでIISを使用するように構成すると、別にインストールや構成の設定なども必要になります。
IIS Express − 両方の最善部分
わたしたちは“IIS Express”という、開発者シナリオに最適化されたIIS 7.xの新版に取り組んできました。それはASP.NET Webサーバの手軽さとIISのフルパワーが組み合わされたものだと考えています。特に以下のような点です。
- 軽量で簡単にインストールできます(10MBytes以下で超高速なダウンロードおよびインストール)
- Visual Studioからアプリケーションを起動・デバッグするのに管理者権限は不要です
- SSL、URL書き換え、メディアのサポート、そのほかすべてのIIS 7.xモジュールを含む、Webサーバ機能のフルセットが有効です
- IIS 7.xがサポートしているものと同じ拡張性モデルとWeb.configファイル設定が可能です
- 通常のIIS WebサーバおよびASP.NET開発サーバとサイドバイサイドでインストールできます(まったく衝突はありません)
- Windows XP以上のシステムで動作し、IIS 7.x開発者機能のフルセットをすべてのOSプラットフォームで利用できます。
(ASP.NET開発サーバのように)IIS Expressはディスク上のディレクトリからサイトを簡単に起動して実行できます。登録や構成設定はまったく不要です。これにより、開発時の起動や実行が非常に簡単になります。
■VS 2010統合
IIS Expressを使えるようにしたのは、VS 2010で簡単に利用できるからです。ASP.NETプロジェクト上でデフォルトのWebサーバとして、ASP.NET Webサーバの代わりに使用するようにVS 2010を構成できます。現在のASP.NET開発サーバのように、IIS Expressを使用するのにサイトや仮想ディレクトリの登録は必要ありません。現在のASP.NET開発サーバと同じ使用方法のモデルがサポートされていて、サポートされている機能が多くなっています。
[F5]キーを押してASP.NETプロジェクトを実行させると、Visual Studioは自動的にIIS Expressを立ち上げて、アプリケーションの実行/デバッグにそれを使用します(別の構成は不要です)。ASP.NET Webサーバのように、IIS Expressは起動しているときにタスクバー・トレイに表示されます。
図3 |
IIS Expressを素早くシャットダウンするには、上記のアイコン上で右クリックして[終了]をクリックします。また右クリックして起動中のすべてのサイト、ディレクトリの場所、起動中の.NETバージョンのリストを表示できます。
図4 |
−上図から分かる2つのクールな点−
1)起動中の“Test Site”およびIIS Express自体は、ディスク上のc:\users\[ユーザー名]の配下にあります。これにより、IIS Expressおよびサイトが管理者権限なしで利用でき、現在のIISで不可能な多くのシナリオが可能になります(ロックダウンされている企業環境や学校の共有コンピュータ環境でもIIS Expressの起動が可能です)。
2)上記でIIS Expressを使って起動中の“Test Site”は、HTTPおよびHTTPSアクセスの両方をサポートしています。IIS Expressは自動的に“自己サインの証明書”をインストールしてURL ACLとSSL証明書をポートに対して有効にするため、(マシン上で管理者以外で起動している)開発者は、SSLをアカウントの昇格およびそのほかの構成設定の必要なく使用できます。これにより、SSLに対してアプリケーション内のセキュアなページ(ログイン・フォームなど)を構成でき、本物のWebサーバで起動させているかのように、開発時にそれらを起動/テストできます。
■IIS 7.xの機能セット
IIS Expressは、なじみのあるASP.NET Webサーバのように簡単に起動して利用できます。しかしIIS ExpressはIIS 7xのコードベースが基盤になっているので、Webサーバとしての機能セットをすべて利用できます。つまり、本番のWebサーバで動作させているようにアプリケーションを構築し実行できるのです。SSLのようなシナリオに加え、IIS 7.x URL書き換えモジュール、メディア拡張、動的圧縮、詳細ログ、独自のセキュリティ、そのほかの利用可能なリッチなモジュールが利用できます。
ASP.NETのサポートに加え、IIS ExpressはクラシックのASPやそのほかのIISでサポートされているファイルタイプや拡張子もサポートしています。これはまた、さまざまな異なる技術を組み合わせているサイトにも理想的なものになります。
まとめ
IIS ExpressはWebアプリケーションの構築、起動、テストをさらに簡単にすると考えています。これはすべてのASP.NETバージョンと動作し、すべてのASP.NETアプリケーション・タイプをサポートします(もちろんASP.NET WebフォームとASP.NET MVCアプリケーションも含みます)。中でも一番良いのは、利用するに当たり、コードは何も変更しなくていいところです。現在のプロジェクトすべてでオプションとして利用できます。
間もなくIIS Expressの最初の公開ベータ版をリリースします。ベータ版では、ファイルシステムのフォルダを右クリックすると、そのファイルシステムの場所をベースにIIS ExpressがWebサイトを立ち上げます。今年の後半には、VS 2010とVisual Web Developer 2010 Express用のパッチをリリースします。それによりVisual StudioにビルトインされているASP.NET開発サーバの代わりにIIS Expressを起動して利用できるようになります。Visual Studioの今後のバージョンでは、この機能がビルトインされて出荷されます。
Hope this helps,
Scott
P.S.ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、わたしをフォローしてください。
「〜ScottGu氏のブログより〜」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|