More Related Content
What's hot (20)
PDF
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)a know
PPTX
20111204 WebBroser Control Tips for Windows PhoneKenji Wada
PDF
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみたYuki Takei
PDF
図とコード例で多分わかる React と flux (工事中)Teloo
KEY
Sencha ug3 siesta_share久司 中村
Similar to 20090212 (20)
PDF
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
20090212
- 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
- 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 を生
成
- 10. Web フォーム
(従来型 ASP.NET )の特徴
コントロールのドラッグ&ドロップ
イベントドリブン
ポストバック
ビューステート
コードはできるだけ書かない
ミスの入り込む余地を少なくする
ユーザコントロール/カスタムコントロールの活用
ロジックはコントロール内に隠蔽
コントロール指向の開発
- 11. ASP.NET MVC の特徴
コントロールを使わない ( 使えない、ではなく)
HTML ヘルパー
URL (メソッド) = メッセージパッシング
ロジックは責務を負うべき場所に記述
Model - ビジネスロジック
Controller - 制御ロジック
View - できるだけロジックを持たない
ユニットテストによりミスの入り込む余地を少
なくする
Model 、 View は置き換えが可能
オブジェクト指向の開発
- 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 フォームと共に利用することも可能