Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
L3-224 300 秒 30 分でズバリ !!.NET アプリケーションの         動作  (株)東日本計算センター       業務一部      小野 修司
アジェンダFramework って何?動作の基本– Console アプリケーションのコンパイル– Console アプリケーションの実行Windows アプリケーション– イベントの処理Web アプリケーション–   Page のコンパイル–...
Framework って何?直訳すると「型枠」ハリウッドの原則– “Dont call me, we call you.”    プログラムは Framework から呼び出される      - 枠にあてはめてプログラムを作成する    Win...
動作の基本Console アプリケーションのコンパイルソースコードをコンパイルすることで、アセンブリ( exe ファイル)ができるアセンブリは MSIL という中間言語で書かれており、メタデータやリソースを含んでいる
動作の基本  Console アプリケーションの実行アセンブリがメモリ上にロードされる– このとき、セキュリティの確認が行われるアセンブリのエントリポイント( Main メソッド)が Framework によって呼び出されるメソッドが最初に呼ば...
Windows アプリケーション                イベントの処理Console アプリケーションと同じ手順で実行が開始されるApplication.Run によって Windows のメッセージループと結びつけられる– class...
Web アプリケーション              Page のコンパイルブラウザからのリクエストに応じた aspxページが解析され、ソースが自動生成される– Debug モードではこのソースが保存される– %windir%Microsoft....
Web アプリケーション                     Page の表示アセンブリがメモリ上にロードされるPage クラスがインスタンス化されるFramework によって、決められた順番でイベントが呼び出される( Trace モード...
We bアプリケーション               Postback 時の処理Framework によって呼び出されるイベントが増える– Init– LoadViewState      ViewState の値の読み込み– ProcessP...
Web アプリケーションの      動作
We bアプリケーションオブジェクトの生存期間( PostBack )               A.aspx                        生成   ビ       リクエスト                 ュ値   ブ ...
We bアプリケーション    オブジェクトの生存期間    ( Response.Redirect )             A.aspx    B.aspx   セ                                ッ    ...
We bアプリケーション     オブジェクトの生存期間      ( Server.Transfer )            A.aspx      B.aspx   ま                                   ...
Web サービスWeb アプリケーションの仕組みがベースとなっているブラウザからのリクエストに応じたクラスがインスタンス化されるところまではWeb アプリと同じリクエストで指定されたメソッドがリフレクションを利用して呼び出されるメソッドの戻り値...
.NET Framework のメモリ管理オブジェクトが利用しているメモリ領域はFramework が管理する– GC (ガベージコレクト)により不要になった  メモリ領域は開放される  GC が実行されるまでは開放されない– GC の実行のタ...
Upcoming SlideShare
Loading in …5
×

20050623 2

363 views

Published on

  • Be the first to comment

  • Be the first to like this

20050623 2

  1. 1. L3-224 300 秒 30 分でズバリ !!.NET アプリケーションの 動作 (株)東日本計算センター 業務一部 小野 修司
  2. 2. アジェンダFramework って何?動作の基本– Console アプリケーションのコンパイル– Console アプリケーションの実行Windows アプリケーション– イベントの処理Web アプリケーション– Page のコンパイル– Page の表示– Postback 時の処理– オブジェクトの生存期間( Postback )– オブジェクトの生存期間( Response.Redirect )– オブジェクトの生存期間( Server.Transfer )Web サービス.NET Framework のメモリ管理
  3. 3. Framework って何?直訳すると「型枠」ハリウッドの原則– “Dont call me, we call you.” プログラムは Framework から呼び出される - 枠にあてはめてプログラムを作成する Windwos Web Web アプリケーション サービス アプリケーション .NET Framework
  4. 4. 動作の基本Console アプリケーションのコンパイルソースコードをコンパイルすることで、アセンブリ( exe ファイル)ができるアセンブリは MSIL という中間言語で書かれており、メタデータやリソースを含んでいる
  5. 5. 動作の基本 Console アプリケーションの実行アセンブリがメモリ上にロードされる– このとき、セキュリティの確認が行われるアセンブリのエントリポイント( Main メソッド)が Framework によって呼び出されるメソッドが最初に呼ばれたときに JIT コンパイラによってネイティブコードに変換される– ネイティブコードへの変換はメソッド単位で行われるコード変換時に型のチェック、メモリの利用状況がチェックされるコード変換されたメソッドはキャッシュされ、同じメソッドが呼ばれる場合はコード変換は行われないMain メソッドの終了により、アプリケーション
  6. 6. Windows アプリケーション イベントの処理Console アプリケーションと同じ手順で実行が開始されるApplication.Run によって Windows のメッセージループと結びつけられる– class WinSample : Form { ・・・    public static void Main()    {      Application.Run(new WinSample());    } }Windows が受け取ったイベントは Framework を通じて実行中のアプリケーションに送られ、そのイベントに設定したメソッドが呼び出されるApplication.Run に渡した Form が閉じられることによりアプリケーション終了
  7. 7. Web アプリケーション Page のコンパイルブラウザからのリクエストに応じた aspxページが解析され、ソースが自動生成される– Debug モードではこのソースが保存される– %windir%Microsoft.NETFrameworkv1.1.4322Temporary ASP.NET Files 以下にフォルダが自動生成されるソースをコンパイルしたアセンブリ( dllファイル)も一時フォルダに保存されるbin フォルダにある dll ファイルも一時フォルダに保存される
  8. 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. 9. We bアプリケーション Postback 時の処理Framework によって呼び出されるイベントが増える– Init– LoadViewState ViewState の値の読み込み– ProcessPostData ポストされた値の処理– Load– ProcessPostDataSecondTry 動的に生成されるコントロールに対するポストされた値の処理– RaiseChangedEvents プロパティが変更されたコントロールへのイベントの発行– RaisePostBackEvent PostBack イベントに関連づけられているコードの実行– PreRender– SaveViewState– Render
  10. 10. Web アプリケーションの 動作
  11. 11. We bアプリケーションオブジェクトの生存期間( PostBack ) A.aspx 生成 ビ リクエスト ュ値 ブ の ー 破棄 ー ラ レスポンス ス引 ウ テ継 ザ 生成 ぎ ー ー ポストバック トは 破棄 で レスポンス
  12. 12. We bアプリケーション オブジェクトの生存期間 ( Response.Redirect ) A.aspx B.aspx セ ッ 生成 シ リクエスト ョ値ブ 破棄 ンのラ レスポンス オ引ウ ブ継ザ 生成 ジぎ リダイレクト ェは 破棄 ク レスポンス ト で
  13. 13. We bアプリケーション オブジェクトの生存期間 ( Server.Transfer ) A.aspx B.aspx ま セ た 生成 ッ は リクエスト シ コ 値ブ ョ ン のラ 生成 ン Transfer テ 引ウ オ キ 継ザ ブ ス ぎ 破棄 ジ ト は ェ 破棄 経 レスポンス ク 由 ト で
  14. 14. Web サービスWeb アプリケーションの仕組みがベースとなっているブラウザからのリクエストに応じたクラスがインスタンス化されるところまではWeb アプリと同じリクエストで指定されたメソッドがリフレクションを利用して呼び出されるメソッドの戻り値が SOAP 形式に変換され、自動的に呼び出した側に戻されるメソッドの処理が終わるとクラスは破棄される
  15. 15. .NET Framework のメモリ管理オブジェクトが利用しているメモリ領域はFramework が管理する– GC (ガベージコレクト)により不要になった メモリ領域は開放される GC が実行されるまでは開放されない– GC の実行のタイミングは Framework により 管理されているWindows のリソースを利用するものについては注意が必要– Dispose パターンを理解しよう– C# の場合は using ステートメントを使用する

×