Mais conteúdo relacionado
Semelhante a 20050623 2 (20)
20050623 2
- 1. L3-224
300 秒 30 分でズバリ !!
.NET アプリケーションの
動作
(株)東日本計算センター
業務一部
小野 修司
- 2. アジェンダ
Framework って何?
動作の基本
– Console アプリケーションのコンパイル
– Console アプリケーションの実行
Windows アプリケーション
– イベントの処理
Web アプリケーション
– Page のコンパイル
– Page の表示
– Postback 時の処理
– オブジェクトの生存期間( Postback )
– オブジェクトの生存期間( Response.Redirect )
– オブジェクトの生存期間( Server.Transfer )
Web サービス
.NET Framework のメモリ管理
- 5. 動作の基本
Console アプリケーションの実行
アセンブリがメモリ上にロードされる
– このとき、セキュリティの確認が行われる
アセンブリのエントリポイント( Main メソッ
ド)が Framework によって呼び出される
メソッドが最初に呼ばれたときに JIT コンパイ
ラによってネイティブコードに変換される
– ネイティブコードへの変換はメソッド単位で行われる
コード変換時に型のチェック、メモリの利用状況
がチェックされる
コード変換されたメソッドはキャッシュされ、同
じメソッドが呼ばれる場合はコード変換は行われ
ない
Main メソッドの終了により、アプリケーション
- 6. Windows アプリケーション
イベントの処理
Console アプリケーションと同じ手順で実行が開始され
る
Application.Run によって Windows のメッセージループ
と結びつけられる
– class WinSample : Form
{
・・・
public static void Main()
{
Application.Run(new WinSample());
}
}
Windows が受け取ったイベントは Framework を通じて実
行中のアプリケーションに送られ、そのイベントに設定
したメソッドが呼び出される
Application.Run に渡した Form が閉じられることによ
りアプリケーション終了
- 7. Web アプリケーション
Page のコンパイル
ブラウザからのリクエストに応じた aspx
ページが解析され、ソースが自動生成され
る
– Debug モードではこのソースが保存される
– %windir%Microsoft.NETFrameworkv1.1.4322Temporary
ASP.NET Files 以下にフォルダが自動生成される
ソースをコンパイルしたアセンブリ( dll
ファイル)も一時フォルダに保存される
bin フォルダにある dll ファイルも一時フ
ォルダに保存される
- 8. Web アプリケーション
Page の表示
アセンブリがメモリ上にロードされる
Page クラスがインスタンス化される
Framework によって、決められた順番でイベントが呼び出される
( Trace モードで確認)
– Init
Page_Init 内に記述した処理の実行
– Load
Page_Load 内に記述した処理の実行
– PreRender
Page_PreRender 内に記述した処理の実行
– SaveViewSate
コントロールの現在の状態を ViewState に保存
– Render
Page の内容を HTML として生成
メソッド毎に JIT コンパイラによってネイティブコードに変換される
Render の結果、生成された HTML がブラウザに返され、 Page ク
ラスが破棄される
- 9. We bアプリケーション
Postback 時の処理
Framework によって呼び出されるイベントが増える
– Init
– LoadViewState
ViewState の値の読み込み
– ProcessPostData
ポストされた値の処理
– Load
– ProcessPostDataSecondTry
動的に生成されるコントロールに対するポストされた値の処理
– RaiseChangedEvents
プロパティが変更されたコントロールへのイベントの発行
– RaisePostBackEvent
PostBack イベントに関連づけられているコードの実行
– PreRender
– SaveViewState
– Render
- 12. We bアプリケーション
オブジェクトの生存期間
( Response.Redirect )
A.aspx B.aspx セ
ッ
生成 シ
リクエスト ョ値
ブ 破棄 ンの
ラ レスポンス オ引
ウ ブ継
ザ 生成 ジぎ
リダイレクト ェは
破棄 ク
レスポンス ト
で
- 13. We bアプリケーション
オブジェクトの生存期間
( Server.Transfer )
A.aspx B.aspx ま
セ
た
生成 ッ
は
リクエスト シ
コ 値
ブ ョ
ン の
ラ 生成 ン
Transfer テ 引
ウ オ
キ 継
ザ ブ
ス ぎ
破棄 ジ
ト は
ェ
破棄 経
レスポンス ク
由
ト
で