連載ASP→ASP.NET移行テクニック第2回 移行インパクトのツボを探る山田 祥寛2004/05/22 |
|
|
そのほかの構成要素の変更点
次に、レガシーASPのそのほかの構成要素に関する変更点を見てみよう。ASP/ASP .NETは開発者に対して容易なコーディングを可能にするためにいくつかのプログラム要素を提供している。
○ディレクティブ構文の変更点
ディレクティブとは、当該ページの処理方法を宣言するためのプログラム要素だ。レガシーASPにおいては、ページの先頭に1回だけディレクティブを記述することができた。
<%@ Language="VBScript" EnableSessionState="False" %> |
ASP.NETでは大幅に新しいディレクティブが追加されているが、上記の記法は引き続き使用することができる(Language属性の値は「VBScript」から「VB」などに変更しなければならないにせよ)。
レガシーASPがサポートする5つのディレクティブ(CodePage、EnableSessionState、Language、LCID、Transaction)は、ASP.NETでは@Pageディレクティブに組み込まれたが、移行のために@Pageディレクティブでは省略記法を提供しているからだ。つまり、以下の2つのディレクティブ構文は「.aspx」ファイルにおいて、まったく同じ意味である。
<%@ Page Language="VB" EnableSessionState="False" %> |
<%@ Language="VB" EnableSessionState="False" %> |
○Global.asaxの変更点
Global.asaxは「ASP.NETアプリケーション・ファイル」とも呼ばれ、ASP.NETにおいてアプリケーション・レベルの各種イベントを処理したり、アプリケーション(またはセッション)共通で利用可能なオブジェクトの宣言を行ったりするためのものだ。これは、レガシーASPにおいては、Global.asaという名前で提供されているものであり、ファイル名が変更になったほかは、ほとんど完全な互換性を保証している。
対応するアプリケーション・イベントは従来の4つから18へと大幅に増強されているが、あくまで既存のものに対する追加であるので、言語そのもの(VBScriptやJScript)としての変更点を除けば、移行に当たっての留意点はないといってよいだろう。
従来のGlobal.asa同様、アプリケーション・ルートの直下に1つだけ配置することができ、省略も可能である(省略時は一切のアプリケーション・イベントは未定義であると見なされる)。
分類 | イベント | イベント発生のタイミング |
条件付きイベント | Application_OnStart* | アプリケーションの初回起動時 |
Session_OnStart* | ユーザーセッションの初回起動時 | |
Session_OnEnd* | ユーザーセッションの終了時 | |
Application_OnEnd* | アプリケーションの終了時 | |
Application_OnDisposed | アプリケーションをメモリから破棄するタイミング | |
Application_OnError | アプリケーション内で処理されない例外が発生したタイミング | |
リクエスト・イベント | Application_OnBeginRequest | リクエスト処理を開始する直前 |
Application_OnAuthenticateRequest | 認証処理が行われる直前 | |
Application_OnAuthorizeRequest | 認証処理が完了した直後 | |
Application_OnResolveRequestCache | キャッシュ処理のタイミング | |
Application_OnAcquireRequestState | セッション状態などを取得するタイミング | |
Application_OnPreRequestHandlerExecute | ページの実行を開始する直前 | |
Application_OnPostRequestHandlerExecute | ページの実行を完了した直後 | |
Application_OnReleaseRequestState | すべての処理完了後 | |
Application_OnUpdateRequestCache | 出力キャッシュを更新のタイミング | |
Application_OnEndRequest | すべてのリクエスト処理が完了した直後 | |
Application_OnPreSendRequestHeaders | HTTPヘッダを送信する直前 | |
Application_OnPreSendRequestContent | HTTPコンテンツを送信する直前 | |
Global.asaxが対応するイベント | ||
*はGlobal.asaも対応しているイベント。 |
○構成ファイルの変更点
構成ファイルとは、ASP.NETから導入された概念だ。その名のとおり、サーバ・マシンやアプリケーションの構成・配置を設定するためのXMLファイルで、サーバ上に唯一存在する「マシン構成ファイル(machine.config)」とアプリケーション・ルート配下の個別の(サブ)フォルダに配置可能な「アプリケーション構成ファイル(web.config)」とに大別される。
ASP.NETの構成ファイル |
サーバ上に唯一存在する「マシン構成ファイル(machine.config)」とアプリケーション・ルート配下の個別の(サブ)フォルダに配置可能な「アプリケーション構成ファイル(web.config)」とに大別される。 |
旧来のASP 3.0においては、こうしたサーバやアプリケーションの設定をIIS上で行わなければならなかった。IISで設定された設定情報は「メタベース」と呼ばれる独自の形式で保存されるため、アプリケーションを移行するなどの状況が発生した場合にもコピーする手段は存在せず、運用管理者がその都度IISに対して設定を行わなければならなかった。
しかし、ASP.NETではテキスト・ファイルとしてアプリケーション・フォルダ内に配置することができるので、こうした不具合はすべて解消される。ほかのサーバに移行する場合にも、アプリケーション・ルートを丸ごとコピー(XCopy)すれば、設定もすべて引き継がれる。IISに対して行わなければならないことは、ただ仮想ディレクトリを設置することだけだ。
もっとも、構成ファイルの設置は任意であるため、レガシーASPからASP.NETへの移行に際しても、必ずしも構成ファイルを「設置しなければならない」ということではない。IIS上での設定についても引き続き有効である。しかし、これまでもしもIIS上で設定を施していた項目があるとするならば、移行に際しては「構成ファイル化」することを強くお勧めしたい。どうせ同じ手間をかけるならば、後につながらないIISへの設定に時間を費やすよりもはるかに有意義だろう。
構成ファイルで設定可能な主要項目は、以下のとおりだ。
要素名 | 概要 |
<authentication> | 認証方法の設定 |
<authorization> | 認定対象・リソースの設定 |
<customErrors> | カスタム・エラー・ページの設定 |
<globalization> | 文字エンコーディング・ロケールの設定 |
<httpHandlers> | HTTPリクエストを処理するハンドラ・クラスの設定 |
<httpModules> | HTTPリクエストをフィルタリング処理するモジュール・クラスの設定 |
<httpRuntime> | HTTPランタイムのパラメータ値を設定 |
<pages> | ページ固有の処理パラメータ設定 |
<processModel> | IISにおけるASP.NETプロセスの設定 |
<sessionState> | セッション状態の設定 |
<trace> | トレース・サービスの設定 |
構成ファイルで設定可能な主要項目 |
INDEX | ||
ASP→ASP.NET移行テクニック | ||
第2回 移行インパクトのツボを探る | ||
1.変更・廃止されたオブジェクト/メソッド | ||
2.推奨されないメソッド/プロパティ | ||
3.ディレクティブ構文/Global.asax/構成ファイルの変更点 | ||
4.SSI/Server.Executeメソッドについて | ||
「ASP→ASP.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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|