SlideShare ist ein Scribd-Unternehmen logo
1 von 6
ASP.NETの仕組みと
ASP.NET MVCの仕組み
あおい情報システム株式会社
    小野 修司
ASP.NETとASP.NET MVC

                  ルート                               ルート


                    Default.aspx                     Controller
                                                        HomeController.cs
“/Default.aspx”                                              Index()
                                   “/Home/Index/”
                                                      Views

     ブラウザ                             ブラウザ              Controller

                                                              Index.aspx
ASP.NETの仕組み
                           HttpContext

                            Handler


• リクエストパスからページ
  のインスタンスを生成する
• HttpContextのHandlerプロパ                     Page
  ティにページをセットする
                                         :IHttpHandler


• Handlerにセットされている                       ProcessRequest()
  オブジェクトの
  ProcessRequestメソッドを呼
  び出す
ASP.NET MVCの仕組み
• 設定されているルート情報
  からHandlerを取得              HttpContext
  – MvcHandler
                             Handler
• リクエストパスを書き換え
  る
  – ~/UrlRouting.axd
• リクエストパスからページ
  のインスタンスを生成する
                                           MvcHandler
• HttpContextのHandlerプロパ
                                          :IHttpHandler
  ティにページをセットする
• HandlerをMvcHandlerに置き
  換える                                     ProcessRequest()
• Handlerにセットされている
  オブジェクトの
  ProcessRequestメソッドを呼
  び出す
              ◆UrlRoutingModuleによる追加操作◆
MvcHandlerのProcessRequest
• Controlerのインスタンスを生成
• Actionメソッドを呼び出す
• ActionResultのExecuteResultを呼び出す

  – 返されたのがViewResultの場合(Viewメソッド)
    • ViewPageのインスタンスを生成する
    • ViewPageのProcessRequestを呼び出す

  – 返されたのがRedirectResultの場合(Redirectメ
    ソッド)
    • Response.Redirectを実行する
ポイント
• HttpModuleとHttpHandlerというASP.NETの基
  礎となる仕組みを活用してMVCフレームワー
  クを実現している
  – HttpModule - UrlRoutingModule
  – HttpHandler - McvHandler


• ASP.NETの仕組みはそのまま、拡張されたも
  のと考えられるので、認証/承認などの
  ASP.NETの機能は従来どおり利用することが
  できる

Weitere ähnliche Inhalte

Was ist angesagt?

ASP.NET MVC のルーティング設定を少しだけ REST ぽくする
ASP.NET MVC のルーティング設定を少しだけ REST ぽくするASP.NET MVC のルーティング設定を少しだけ REST ぽくする
ASP.NET MVC のルーティング設定を少しだけ REST ぽくするdany1468
 
RESTful APIとしてのRailsとクライアントとしてのJavaScript
RESTful APIとしてのRailsとクライアントとしてのJavaScriptRESTful APIとしてのRailsとクライアントとしてのJavaScript
RESTful APIとしてのRailsとクライアントとしてのJavaScriptNaoto Koshikawa
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
Start React with Browserify
Start React with BrowserifyStart React with Browserify
Start React with BrowserifyMuyuu Fujita
 
Ma gician <wide version> @meguro.es 2019/10/10
Ma gician <wide version> @meguro.es 2019/10/10Ma gician <wide version> @meguro.es 2019/10/10
Ma gician <wide version> @meguro.es 2019/10/10Eucen Stew
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話ushiboy
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみたYuki Takei
 
ハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイドハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイドLocalyticsJP
 

Was ist angesagt? (11)

Study Intro Backbone
Study Intro BackboneStudy Intro Backbone
Study Intro Backbone
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
ASP.NET MVC のルーティング設定を少しだけ REST ぽくする
ASP.NET MVC のルーティング設定を少しだけ REST ぽくするASP.NET MVC のルーティング設定を少しだけ REST ぽくする
ASP.NET MVC のルーティング設定を少しだけ REST ぽくする
 
RESTful APIとしてのRailsとクライアントとしてのJavaScript
RESTful APIとしてのRailsとクライアントとしてのJavaScriptRESTful APIとしてのRailsとクライアントとしてのJavaScript
RESTful APIとしてのRailsとクライアントとしてのJavaScript
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Start React with Browserify
Start React with BrowserifyStart React with Browserify
Start React with Browserify
 
Ma gician <wide version> @meguro.es 2019/10/10
Ma gician <wide version> @meguro.es 2019/10/10Ma gician <wide version> @meguro.es 2019/10/10
Ma gician <wide version> @meguro.es 2019/10/10
 
Asset Pipeline for Perl
Asset Pipeline for PerlAsset Pipeline for Perl
Asset Pipeline for Perl
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
 
ハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイドハイブリッドアプリへのLocalytics導入ガイド
ハイブリッドアプリへのLocalytics導入ガイド
 

Andere mochten auch

каширин 1 отбор инн проектов вост округ
каширин 1 отбор инн проектов вост округкаширин 1 отбор инн проектов вост округ
каширин 1 отбор инн проектов вост округUNOVA
 
A adolescência tiago luis
A adolescência tiago luisA adolescência tiago luis
A adolescência tiago luisrosecleinunes21
 
Seja bem vindo ao mundo otaku.gif
Seja bem vindo ao mundo otaku.gifSeja bem vindo ao mundo otaku.gif
Seja bem vindo ao mundo otaku.gifaksomxdx
 
Apresentação de rita cajazeira cederj
Apresentação de rita cajazeira  cederjApresentação de rita cajazeira  cederj
Apresentação de rita cajazeira cederjcaxuxa24
 
Leitura dos dados da pesquisa cnbb setor setembro de 2011
Leitura dos dados da pesquisa cnbb setor setembro de 2011Leitura dos dados da pesquisa cnbb setor setembro de 2011
Leitura dos dados da pesquisa cnbb setor setembro de 2011Rafael Barros
 
256447 stem-cell-transplantation
256447 stem-cell-transplantation256447 stem-cell-transplantation
256447 stem-cell-transplantationabctutor
 
presentaciones digitales
presentaciones digitalespresentaciones digitales
presentaciones digitalescaro2525
 
Subsídio de prepação livreto
Subsídio de prepação   livretoSubsídio de prepação   livreto
Subsídio de prepação livretoRafael Barros
 
Dia do professor
Dia do professorDia do professor
Dia do professormonicazanol
 
Recursos educativos digitales
Recursos educativos digitalesRecursos educativos digitales
Recursos educativos digitalesandressantacruz88
 

Andere mochten auch (20)

каширин 1 отбор инн проектов вост округ
каширин 1 отбор инн проектов вост округкаширин 1 отбор инн проектов вост округ
каширин 1 отбор инн проектов вост округ
 
A adolescência tiago luis
A adolescência tiago luisA adolescência tiago luis
A adolescência tiago luis
 
Seja bem vindo ao mundo otaku.gif
Seja bem vindo ao mundo otaku.gifSeja bem vindo ao mundo otaku.gif
Seja bem vindo ao mundo otaku.gif
 
Apresentação de rita cajazeira cederj
Apresentação de rita cajazeira  cederjApresentação de rita cajazeira  cederj
Apresentação de rita cajazeira cederj
 
A primavera jake
A primavera jakeA primavera jake
A primavera jake
 
Leitura dos dados da pesquisa cnbb setor setembro de 2011
Leitura dos dados da pesquisa cnbb setor setembro de 2011Leitura dos dados da pesquisa cnbb setor setembro de 2011
Leitura dos dados da pesquisa cnbb setor setembro de 2011
 
Raul van Riezen
Raul van RiezenRaul van Riezen
Raul van Riezen
 
Manual SQL
Manual SQLManual SQL
Manual SQL
 
Triaje en escena
Triaje en escenaTriaje en escena
Triaje en escena
 
Quemaduras. Tratamiento quirurgico
Quemaduras. Tratamiento quirurgicoQuemaduras. Tratamiento quirurgico
Quemaduras. Tratamiento quirurgico
 
caballada
caballadacaballada
caballada
 
256447 stem-cell-transplantation
256447 stem-cell-transplantation256447 stem-cell-transplantation
256447 stem-cell-transplantation
 
presentaciones digitales
presentaciones digitalespresentaciones digitales
presentaciones digitales
 
Subsídio de prepação livreto
Subsídio de prepação   livretoSubsídio de prepação   livreto
Subsídio de prepação livreto
 
Anemia y embarazo
Anemia y embarazoAnemia y embarazo
Anemia y embarazo
 
intefaz de flash
intefaz de flashintefaz de flash
intefaz de flash
 
Bioseguridad medica
Bioseguridad medicaBioseguridad medica
Bioseguridad medica
 
Dia do professor
Dia do professorDia do professor
Dia do professor
 
Recursos educativos digitales
Recursos educativos digitalesRecursos educativos digitales
Recursos educativos digitales
 
Vulcão Puyehue
Vulcão PuyehueVulcão Puyehue
Vulcão Puyehue
 

Ähnlich wie 20080630

[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
MVCになぞらえて理解するReact
MVCになぞらえて理解するReactMVCになぞらえて理解するReact
MVCになぞらえて理解するReactiPride Co., Ltd.
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Hideki Hashizume
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
Spring mvc
Spring mvcSpring mvc
Spring mvcRyo Asai
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 
Pro aspnetmvc3framework chap11
Pro aspnetmvc3framework chap11Pro aspnetmvc3framework chap11
Pro aspnetmvc3framework chap11Hideki Hashizume
 
WordPress REST API と Vue.js を使ったフロントエンド開発
WordPress REST API と Vue.js を使ったフロントエンド開発WordPress REST API と Vue.js を使ったフロントエンド開発
WordPress REST API と Vue.js を使ったフロントエンド開発Hiromasa Tanaka
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか 私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか Kenta Yamamoto
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようTasuku Otani
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 

Ähnlich wie 20080630 (20)

ASP.NET MVC 1.0
ASP.NET MVC 1.0ASP.NET MVC 1.0
ASP.NET MVC 1.0
 
20120609
2012060920120609
20120609
 
20080524
2008052420080524
20080524
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
MVCになぞらえて理解するReact
MVCになぞらえて理解するReactMVCになぞらえて理解するReact
MVCになぞらえて理解するReact
 
Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19Pro aspnetmvc3framework chap19
Pro aspnetmvc3framework chap19
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Mvc conf session_1_osada
Mvc conf session_1_osadaMvc conf session_1_osada
Mvc conf session_1_osada
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
20100313
2010031320100313
20100313
 
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
 
20120128
2012012820120128
20120128
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
Pro aspnetmvc3framework chap11
Pro aspnetmvc3framework chap11Pro aspnetmvc3framework chap11
Pro aspnetmvc3framework chap11
 
WordPress REST API と Vue.js を使ったフロントエンド開発
WordPress REST API と Vue.js を使ったフロントエンド開発WordPress REST API と Vue.js を使ったフロントエンド開発
WordPress REST API と Vue.js を使ったフロントエンド開発
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか 私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか
 
UnicastWS vol.2
UnicastWS vol.2UnicastWS vol.2
UnicastWS vol.2
 
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 

Mehr von 小野 修司 (20)

20140322
2014032220140322
20140322
 
20121215
2012121520121215
20121215
 
20120616
2012061620120616
20120616
 
20120425
2012042520120425
20120425
 
20111203
2011120320111203
20111203
 
20110607
2011060720110607
20110607
 
20100224
2010022420100224
20100224
 
20100218 lt
20100218 lt20100218 lt
20100218 lt
 
20100218
2010021820100218
20100218
 
20091207
2009120720091207
20091207
 
20090711
2009071120090711
20090711
 
20090418
2009041820090418
20090418
 
20090328
2009032820090328
20090328
 
20081003
2008100320081003
20081003
 
20080627 2
20080627 220080627 2
20080627 2
 
20080627 1
20080627 120080627 1
20080627 1
 
20080213
2008021320080213
20080213
 
20080201
2008020120080201
20080201
 
20071204
2007120420071204
20071204
 
20071030
2007103020071030
20071030
 

20080630

  • 2. ASP.NETとASP.NET MVC ルート ルート Default.aspx Controller HomeController.cs “/Default.aspx” Index() “/Home/Index/” Views ブラウザ ブラウザ Controller Index.aspx
  • 3. ASP.NETの仕組み HttpContext Handler • リクエストパスからページ のインスタンスを生成する • HttpContextのHandlerプロパ Page ティにページをセットする :IHttpHandler • Handlerにセットされている ProcessRequest() オブジェクトの ProcessRequestメソッドを呼 び出す
  • 4. ASP.NET MVCの仕組み • 設定されているルート情報 からHandlerを取得 HttpContext – MvcHandler Handler • リクエストパスを書き換え る – ~/UrlRouting.axd • リクエストパスからページ のインスタンスを生成する MvcHandler • HttpContextのHandlerプロパ :IHttpHandler ティにページをセットする • HandlerをMvcHandlerに置き 換える ProcessRequest() • Handlerにセットされている オブジェクトの ProcessRequestメソッドを呼 び出す ◆UrlRoutingModuleによる追加操作◆
  • 5. MvcHandlerのProcessRequest • Controlerのインスタンスを生成 • Actionメソッドを呼び出す • ActionResultのExecuteResultを呼び出す – 返されたのがViewResultの場合(Viewメソッド) • ViewPageのインスタンスを生成する • ViewPageのProcessRequestを呼び出す – 返されたのがRedirectResultの場合(Redirectメ ソッド) • Response.Redirectを実行する
  • 6. ポイント • HttpModuleとHttpHandlerというASP.NETの基 礎となる仕組みを活用してMVCフレームワー クを実現している – HttpModule - UrlRoutingModule – HttpHandler - McvHandler • ASP.NETの仕組みはそのまま、拡張されたも のと考えられるので、認証/承認などの ASP.NETの機能は従来どおり利用することが できる