Your SlideShare is downloading. ×
0
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
20090212
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20090212

297

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
297
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×