27
Internal ASP.NET

Internal ASP.NET

  • Upload
    mabli

  • View
    31

  • Download
    0

Embed Size (px)

DESCRIPTION

Internal ASP.NET. AJAX 、 Silver light 、 WCF など最新技術が満載の昨今. だからこそ、今、基本を押さえておきたい! ASP.NET の中身を詳しく知ろう!. ASP.NET による Web アプリケーション開発はすごく簡単. Windows アプリケーションのように開発できる。 ボタンクリックイベントやテキストボックス変更イベントなど。 Web である事を意識しなくても簡単に開発できる。 Visual Studio があれば、ある程度はコーディングレスで開発できる。. 本当に簡単か?. - PowerPoint PPT Presentation

Citation preview

Page 1: Internal ASP.NET

Internal ASP.NET

Page 2: Internal ASP.NET

AJAX、Silver light、WCF など最新技術が満載の昨今 だからこそ、今、基本を押さえておきたい!

ASP.NET の中身を詳しく知ろう!

Page 3: Internal ASP.NET

ASP.NETによるWebアプリケーション開発はすごく簡単 Windows アプリケーションのように開発できる。 ボタンクリックイベントやテキストボックス変更

イベントなど。 Web である事を意識しなくても簡単に開発できる。 Visual Studio があれば、ある程度はコーディン

グレスで開発できる。

Page 4: Internal ASP.NET

本当に簡単か? タイマー使いたいんですけど、うまく動きません。 テキストボックスに文字を入力したんですけど、

イベント拾えません。 とにかく、値を取得できません。 値が初期値に戻るんですが。

Page 5: Internal ASP.NET

ASP.NETはHTTPを意識しなくても良いようになっている それがまずい!

Page 6: Internal ASP.NET

当たり前だがHTTPの限界を超えられない。 HTTP はステートレスなプロトコルである事を常

に意識しよう。

Page 7: Internal ASP.NET

ASP.NET の処理の流れを知る

Page 8: Internal ASP.NET

ブラウザとWebサーバ

ブラウザ

Webサーバ

リクエスト

レスポンス

ブラウザ

リクエスト

レスポンス

Page 9: Internal ASP.NET

I IS

アプリケーションプール

w3wp.exew3wp.exe

AppDomain AppDomain

アプリケーションプール

w3wp.exe

AppDomain AppDomain

Page 10: Internal ASP.NET

AppDomain

HttpRuntime

HttpApplicationFactory

HttpApplication

HttpContext

HttpHandlerFactory

HttpHandler

HttpWorkerRequest

HttpApplication のプール

HttpApplication

HttpContext

HttpHandler

HttpWorkerRequest

Page 11: Internal ASP.NET

HttpRuntime ASP.NET パイプラインの入り口 ProcessRequest(HttpWorkerRequest wr) HttpContext 、 HttpApplication 、 HttpHandl

er を作りリクエストを処理する。 「プログラミング ASP.NET 2.0 」には、リクエ

スト毎にひとつのインスタンスが作成されるとあるが、多分まちがい。

アプリケーションドメイン毎にひとつ存在するだけのはず。

Page 12: Internal ASP.NET

HttpWorkerRequest リクエストをカプセル化したもの。 ASP.NET をホストするプロセスが作成

し、 HttpRuntime に渡す。 ASP.NET をホスティングするために

SimpleWorkerRequest が用意されている。

Page 13: Internal ASP.NET

HttpContext リクエスト→レスポンスに渡って使用するコンテ

キスト。 リクエストの度に生成される。

Page 14: Internal ASP.NET

HttpApplicationFactory HttpApplication のインスタンスをつくる プールに存在すればプール内の HttpApplication

を返す

Page 15: Internal ASP.NET

HttpApplication Global.asax ひとつのリクエストを担当する

Page 16: Internal ASP.NET

HttpApplicationのイベント リクエスト開始 認証 承認 キャッシュ解決 セッション取得 ハンドラ実行 セッション更新 キャッシュ生成 リクエスト終了

Page 17: Internal ASP.NET

IHttpModule FormsAuthenticationModule ErrorHandlerModule OutputCacheModule SessionStateModule

Page 18: Internal ASP.NET

DEMOIHttpModule

Page 19: Internal ASP.NET

IHttpHandlerFactory PageHandlerFactory IHttpHandlerFactory の利点は?

Page 20: Internal ASP.NET

IHttpHandler Page(ASP.default.aspx) HttpForddenHandler

IHttpHandler.ProcessRequest(HttpContext c)

Page 21: Internal ASP.NET

Pageのライフタイム

Page 22: Internal ASP.NET

Page

ページの生成Control

Load イベント

ProcessPostDataFirst

LoadViewStateFirst

Init イベント

LoadViewStateSecond

ProcessPostData Second

コントロールの生成

Change イベント

ポストバックイベント

PreRender イベント

SaveViewState

Page 23: Internal ASP.NET

特に注意すべきなのは、ポストデータの設定が2度ある事。

Page 24: Internal ASP.NET

Pageの生成

Default.aspx Default.aspx.cs

ASP.Default.aspx Class

Default Class

Page 25: Internal ASP.NET

おまけ 「 Advanced Development on IIS 7 」より

Page 26: Internal ASP.NET

IIS6

Page 27: Internal ASP.NET

IIS7