20090212
Upcoming SlideShare
Loading in...5
×
 

20090212

on

  • 425 views

 

Statistics

Views

Total Views
425
Views on SlideShare
425
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

20090212 20090212 Presentation Transcript

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