第3版』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基本的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などを本サイトのデザインに合わせている部分が若干ありますので、ご了承ください。ご注意:本記事は、雑誌の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。ASP.NETアプリケーションの構造ASP.NETアプリケーション、そして、ASP.NETページそのものの構造について、詳しく見ていきます。WebサイトASP.NETアプリケーションを開発するには、以下のテンプレートのいずれかを利用できます。Webサイトこのうち、「空の」と付いているものと付いていないものとの違いは、初期状態でサンプルアプリケーションが含まれているかどうかです。4では「空の」と付いていないテンプレートには、あらかじめアプリケーションに最低限必要な共通レイアウト(マスターページ)やスタイルシート、認証機能などが含まれており、これらをカスタマイズするだけで最低限動作するアプリケーションが実装できます(図2.15)。デフォルトで提供されるサンプルアプリケーション(実行結果)まず動くアプリケーションを作成したい場合には便利なのですが、余計なファイルや設定も多いため、本書ではよりシンプルな「空の」テンプレートを採用しています。「空の」であるかどうかは、本質的な違いではありません。ここで注目していただきたいのは、WebアプリケーションとWebサイトとの違いです。両者の最大の違いは、コードファイル(.aspx.vb/.vbファイルなど)のコンパイルのタイミングです(図2.16)。Webサイトでは、コードファイルは.aspxファイルとともにサーバーに配置します。実行時に.aspxファイルとあわせてコンパイルされます。Webアプリケーションでは、コードファイルはあらかじめコンパイルする必要があります。結果、できあがったアセンブリ(.dllファイル)をサーバーに配置します。Webサイトでは、作成する際のメニューも異なります。Webサイトは、[ファイル]→[新規作成]→[Webサイト...]から作成します。Webアプリケーションプロジェクトを優先して利用するべきであると考えています。Studioで作成したアプリケーションが動作しない場合がある、という問題があります。Webサイトは利用できません。Webアプリケーションでの開発に慣れておいたほうが、後々の学習や移行もスムーズに進められるでしょう。それも「どちらかというとベター」という程度で、本質的には、いずれのプロジェクト、サイトも開発の手順に大きな違いはありません(開発時の微小な違いについては、適宜「Note」などでも補足していきます)。どちらを利用するかは、多くの場合、たいした問題にはならないでしょう。Webサイトを、あとからWebアプリケーションに移行することもできます。詳しい方法については、以下のページも参考にしてください。図2.17は、本書で作成するサンプルアプリケーションの構成です。○アプリケーションフォルダーASP.NETでは、アプリケーションルートの直下に、あらかじめ予約されたアプリケーションフォルダー(予約フォルダー)を配置することができます。アプリケーションフォルダーは、あらかじめ役割と名前とが決められたフォルダーで、ASP.NETアプリケーション上で特定の用途を持っています。具体的には、表2.4のようなフォルダーがそれです。すべてを理解する必要はありませんが、まずはこんなものがあるんだな、という程度に眺めておいてください。ビジネスロジックを記述した.vb、.csファイル(配下のファイルは実行時に動的にコンパイル処理される。ASP.NETで利用可能なアプリケーションフォルダー.aspxファイルは基本的にアプリケーションルート配下の自由な場所に配置できますが、これらアプリケーションフォルダーの配下には保存できませんので、注意してください。アプリケーションフォルダーには、HTTP経由でのアクセスができないようになっているためです。2.5のようなファイルを含むことができます。ASP.NETアプリケーションで利用可能な主なファイル/拡張子それぞれが大きなテーマでもあり、この場では項目を列挙するにとどめておきます。今後、それぞれの節で登場したところで、改めて詳細を解説することにしましょう。今のところは、このようなものがあるのだな、という程度に眺めておいてください。●2.2.3コードビハインドASP.NETでは、レイアウト部分とプログラム部分とを1つの.aspxファイルにまとめて記述するコードインラインモデルと、レイアウト部分は.aspxファイルに、プログラム部分は.aspx.vbファイル(C#では.aspx.csファイル)に分離して記述するコードビハインドモデルとがあります(コードビハインドモデルは、分離コードモデルとも言います)。手順ではあまり意識することなく、Hello.aspx.vbにコードを追加しましたが、改めて確認してみましょう。(すべてのファイルを表示)ボタンをクリックすると、Hello.aspxの配下にこれまで見えていなかったHello.aspx.designer.vb、Hello.aspx.vbのようなファイルが表示されています(図2.18)。すべてのファイルを表示状態に.aspx.designer.vbファイルはレイアウト定義(.aspxファイル)に応じて自動生成されるコードで、意識する必要はありませんし、そもそも自分で編集するべきでもありません。アプリケーション開発者が実際にプログラムコードを記述するのは、.aspx.vbファイルです。コードビハインドモデルでは、このようにファイルを役割に応じて明確に分離することで、デザイナーとプログラマとが同時並行的に作業を行いやすくなるというメリットがあります(図2.19)。分離されたコードは、実行時には1つのクラスファイルとして結合されます。Webアプリケーションプロジェクトでは、デフォルトでコードビハインドモデルが有効になっていますので、本書でもコードビハインドモデルを採用してサンプルを記述していくものとします。コードインラインモデルはレイアウトとプログラムとが1つのファイルにまとめられますので、ファイル管理が手軽である反面、複数人による並行作業は難しいという短所があります。コードビハインドモデルを理解していれば、コードインラインモデルを利用するのに困ることはほとんどないと思いますので、まずはコードビハインドモデルでの開発に慣れておくのが望ましいでしょう。Webサイトでのみ可能です。.aspxファイルを作成する際に、[新しい項目の追加]ダイアログで[別のファイルにコードを書き込む]にチェックを入れるとコードビハインドモデルになります(図2.20)。Webアプリケーションプロジェクトでも、コード修正の手間をかければ、コードインラインモデルに切り替えることはできますが、あえてそうする意味はほとんどないはずです。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。