連載:〜ScottGu氏のブログより〜

クリーンなWeb.Configファイル(VS 2010&.NET 4.0シリーズ)

Scott Guthrie 著/Chica
2009/08/28

 本記事は、Microsoftの本社副社長であり、ASP.NETやSilverlightなどの開発チームを率いるScott Guthrie氏のブログを翻訳したものです。氏の許可を得て転載しています。

 これは、VS 2010および.NET 4リリースについて今後行っていく一連のブログ投稿の第1弾になります。

 本日の投稿は、ご覧のとおり短いですが、ASP.NET 4.0のちょっとよい変更点だと思っている、クリーンで、簡単なweb.configファイルについてです。

 Visual Studio 2010でファイル->新規プロジェクトを行うと、最初にこの改善点に出会うことができ、そして、空のASP.NET 4.0 Webアプリケーションが作成されます(このため、これが最初の投稿に適していると思いました)。

.NET 3.0および3.5のWeb.configファイル

 過去数回のリリースでは、ASP.NETプロジェクトのweb.configファイルのサイズは着々と増加していました。例えば、Visual Studio 2008 SP1の新規Webプロジェクトに追加されるデフォルトのweb.configファイルは、現在126行ほどあり、タグの定義から、ASP.NET HTTPパイプラインに含まれているハンドラやモジュールの定義まで、すべてが含まれています。

 このサイズの増加は、.NET 3.0および.NET 3.5が、.NET 2.0で出荷されたのと同じCLRやmachine.config構成ファイルを使用しており、インストールされたときに、フレームワークにアセンブリを単純に追加したり更新したりしているためです。マシン上にある元の2.0のmachine.config内でカスタマイズした設定を誤って上書きするリスクを避けるために、.NET 3.0および.NET 3.5の新しいASP.NETの機能に関連するタグの定義やハンドラ、モジュールは登録しませんでした。その代わり、新しいプロジェクト作成で、アプリケーションのローカルのweb.configファイル内にこれらの設定を登録することをデフォルトとしました。これだと安全ですが、web.configファイルのサイズが増加し、より複雑化して読みにくくなります。

.NET 4のWeb.configファイル

 .NET 4には、CLRの新バージョンと.NET 4専用のmachine.configファイルが含まれています(これは、.NET 2、.NET 3、.NET 3.5が使用しているものとサイドバイサイドでインストールされます)。

 この新しい.NET 4 machine.configファイルには、以下の機能を含む、これまで数年にわたり追加してきたすべてのASP.NETのタグ・セクション、ハンドラ、モジュールが登録されます。

  • ASP.NET AJAX
  • ASP.NET Dynamic Data
  • ASP.NETルーティング(現在、ASP.NET WebフォームおよびASP.NET MVCの両方で使用できます)
  • ASP.NETチャート・コントロール(ASP.NET V4にビルトインされて出荷されます)

 つまり、“空のASP.NETアプリケーション”プロジェクトをVS 2010で作成すると、新しいデフォルトのアプリケーション・レベルのweb.configファイルが、クリーンかつシンプルになっていることが分かります。


図1

 上記の最初のconfigセクションは、アプリケーションに対してデフォルトでデバッグを有効にするようASP.NETに指定しており、また、Visual StudioがIntelliSenseを行うときにターゲットとする.NETのバージョンを示しています(VS 2010はマルチターゲットをサポートしており、IDEのIntelliSenseは、ターゲットにしているフレームワークのバージョンによって自動的に変化します)。

 2つ目のconfigセクションは、IIS7でASP.NETアプリケーションが起動されたときに“統合”モードを使用するかどうかを示しています。これはASP.NETのHTTPモジュールをアプリケーション内のすべての要求に対して起動するか、もしくはASP.NETの特定のURLだけに対して起動するかを制御します。デフォルトでは、これが新しいアプリケーションのアプリケーション・レベルのweb.configファイルで有効となります。これは互換性の理由からで、マシン・レベルで登録されているIIS7のデフォルトの設定が(すべての要求に対してではなく)ASP.NETのURLに対してだけモジュールを起動させるためです。

まとめ

 単純化された.NET 4のweb.configファイルというのは、明らかに小さい変更ですが、それでも私は優れたものだと思っており、新しいASP.NETアプリケーションを作成したときに、少しクリーンで、より接しやすいという体験が得られるものだと思っています。

 今後の投稿では、ASP.NET 4でもたらされるもっと重要な改善点を(そしていくつかの“小さいけれども優れた調整点”についても)深く掘り下げていく予定です。

 Hope this helps,

 ScottEnd of Article

   
 
インデックス・ページヘ  「〜ScottGu氏のブログより〜」


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

本日 月間