ASP.NET MVC
      - 概要と仕組み


12-D-3   小野 修司
         あおい情報システム株式会社
ASP.NET MVCとは

     -
 M       Model
     -
 V       View
     -
 C       Controller

     MVCパターンをASP.NET上に実装
ASP.NET MVC RCの内容
 ベースはASP.NET 3.5(SP1)
 dll
                                 - MVCの本体
   System.Web.Mvc.dll
             ...
テンプレートの構成
 Global.asax
   ルーティングの設定
 Controllersフォルダ
   コントローラクラス(xxxxController)
                          -2枚のページの切り替え(2...
ページの呼び出し

                  ルート


                        Controller

                           HomeController.cs
       ...
テストテンプレートの構成

 HomeControllerTest
   2アクションに対して2個のページ切り替えテスト


 AccountControllerTest
   8アクションに対して25個の認証動作テスト
コントローラの雛形追加
 Modelの準備
    POCO(Plain Old CLR Object)も利用できる
    IDataErrorInfo により検証を実装できる
 Add Controller
    アクションメソッドの雛形...
ビューの雛形追加
 Add View
  View名(自動で設定)
  Model指定
  Viewのタイプ指定
    Create
    Details
    Edit
    Empty
    List
  マスターページ指定
 フ...
Webフォーム(従来型ASP.NET)
         と
    ASP.NET MVC
Webフォーム
(従来型ASP.NET)の特徴
 コントロールのドラッグ&ドロップ
 イベントドリブン
  ポストバック
  ビューステート
 コードはできるだけ書かない
  ミスの入り込む余地を少なくする
  ユーザコントロール/カスタムコン...
ASP.NET MVCの特徴
 コントロールを使わない(使えない、ではなく)
  HTMLヘルパー
 URL(メソッド) = メッセージパッシング
 ロジックは責務を負うべき場所に記述
               - ビジネスロジック
  M...
ASP.NET MVC の仕組み
ASP.NETのページ呼び出し
                         HttpContext

                          Handler


リクエストパスからページのイ
ンスタンスを生成する
HttpCo...
MVCルーティング
MapRoute(拡張メソッド)は
MvcRouteHandlerを利用       HttpContext
  MvcHandlerを取得
                          Handler
リクエストパス...
MvcHandlerの
ProcessRequest内の処理
1. Controllerのインスタンスを生成
2. URLに指定されているアクションを実行
    メソッドを呼び出し、ActionResultを受け取る
3. ActionRes...
ASP.NET MVCの仕組み

 ASP.NETフレームワークの柔軟性、拡張性
 を活かして構築されたもの
  ASP.NETの機能を利用することが可能
   認証
   セッション管理 等
  Webフォームと共に利用することも可能
誰がためのASP.NET MVC
Upcoming SlideShare
Loading in …5
×

【12-D-3】 ASP.NET MVC - 概要と仕組み

5,320 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,320
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
100
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

【12-D-3】 ASP.NET MVC - 概要と仕組み

  1. 1. ASP.NET MVC - 概要と仕組み 12-D-3 小野 修司 あおい情報システム株式会社
  2. 2. ASP.NET MVCとは - M Model - V View - C Controller MVCパターンをASP.NET上に実装
  3. 3. ASP.NET MVC RCの内容 ベースはASP.NET 3.5(SP1) dll - MVCの本体 System.Web.Mvc.dll - テストのためのクラス群 System.Web.Abstractions.dll - SP1と同一 System.Web.Routing.dll プロジェクトテンプレート MVCアプリケーションテンプレート MVCテストテンプレート Visual Studioの拡張 雛形の作成(Add Controller/Add View) ウィンドウ移動補助(Go To View/Go To Controller) …
  4. 4. テンプレートの構成 Global.asax ルーティングの設定 Controllersフォルダ コントローラクラス(xxxxController) -2枚のページの切り替え(2アクション) HomeController -認証のサンプル実装(8アクション) AccountController Modelsフォルダ モデルクラスの定義 初期状態は空 Viewsフォルダ コントローラに対応するフォルダ フォルダの下層にアクションに対応するViewPageクラス (aspxファイル:<% %>によるインラインプログラミング) Scriptsフォルダ JQuery、MS AJAXのjsファイルを格納
  5. 5. ページの呼び出し ルート Controller HomeController.cs About() “/Home/About/” Views ブラウザ Controller About.aspx
  6. 6. テストテンプレートの構成 HomeControllerTest 2アクションに対して2個のページ切り替えテスト AccountControllerTest 8アクションに対して25個の認証動作テスト
  7. 7. コントローラの雛形追加 Modelの準備 POCO(Plain Old CLR Object)も利用できる IDataErrorInfo により検証を実装できる Add Controller アクションメソッドの雛形を生成 Index Details Create Create(Post用) Edit Edit(Post用) Deleteは生成されない セキュリティ面からDeleteの扱いには注意
  8. 8. ビューの雛形追加 Add View View名(自動で設定) Model指定 Viewのタイプ指定 Create Details Edit Empty List マスターページ指定 フォルダとaspxを生成
  9. 9. Webフォーム(従来型ASP.NET) と ASP.NET MVC
  10. 10. Webフォーム (従来型ASP.NET)の特徴 コントロールのドラッグ&ドロップ イベントドリブン ポストバック ビューステート コードはできるだけ書かない ミスの入り込む余地を少なくする ユーザコントロール/カスタムコントロールの活用 ロジックはコントロール内に隠蔽 コントロール指向の開発
  11. 11. ASP.NET MVCの特徴 コントロールを使わない(使えない、ではなく) HTMLヘルパー URL(メソッド) = メッセージパッシング ロジックは責務を負うべき場所に記述 - ビジネスロジック Model - 制御ロジック Controller - できるだけロジックを持たない View ユニットテストによりミスの入り込む余地を少なくする Model、Viewは置き換えが可能 オブジェクト指向の開発
  12. 12. ASP.NET MVC の仕組み
  13. 13. ASP.NETのページ呼び出し HttpContext Handler リクエストパスからページのイ ンスタンスを生成する HttpContextのHandlerプロパ Page ティにインスタンスをセット :IHttpHandler Handlerにセットされているオ ProcessRequest() ブジェクトのProcessRequest メソッドを呼び出す
  14. 14. MVCルーティング MapRoute(拡張メソッド)は MvcRouteHandlerを利用 HttpContext MvcHandlerを取得 Handler リクエストパスを書き換える ~/UrlRouting.axd リクエストパスからページのイ ンスタンスを生成する HttpContextのHandlerプロパ MvcHandler ティにインスタンスをセット :IHttpHandler HandlerをMvcHandlerに置 き換える Handlerにセットされているオ ProcessRequest() ブジェクトのProcessRequest メソッドを呼び出す
  15. 15. MvcHandlerの ProcessRequest内の処理 1. Controllerのインスタンスを生成 2. URLに指定されているアクションを実行 メソッドを呼び出し、ActionResultを受け取る 3. ActionResultのExecuteResultを呼び出す 返されたのがViewResultの場合(Viewメソッド) ViewPageのインスタンスを生成する (CreateInstanceFromVirtualPathメソッド) ViewPageのProcessRequestを呼び出す 返されたのがRedirectResultの場合 (Redirectメソッド) Response.Redirectを実行する
  16. 16. ASP.NET MVCの仕組み ASP.NETフレームワークの柔軟性、拡張性 を活かして構築されたもの ASP.NETの機能を利用することが可能 認証 セッション管理 等 Webフォームと共に利用することも可能
  17. 17. 誰がためのASP.NET MVC

×