Pro aspnetmvc3framework chap11

626 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
626
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pro aspnetmvc3framework chap11

  1. 1. Pro ASP.NET MVC 3 FrameworkCHAPTER 11URLs, Routing, and Areas@84zume
  2. 2. 2目次1. Routing System2. Area3. Beautiful URL
  3. 3. 3Routing System
  4. 4. 4Routing Systemとは=URLをコントローラーやアクションと結び付ける仕組み• Webフォームとの違い  Webフォームは、ページの物理的な場所がURLになる  URL -> http://XXXX.com/Top.aspx  物理パス -> c:¥inetpub¥wwwroot¥XXXX¥Top.aspx=機能:Incoming URLの処理とOutgoing URLの生成• I:コントローラーとアクションへのマッピング• O:HTMLのリンクの生成
  5. 5. 5Incoming URLの話URLを通して、アプリケーションに入ってくるときの話。
  6. 6. 6URL Patternhttp://84zumeworks.com/Admin/Person/10 ホスト名 1st Segment 2nd Segment 3rd Segment MVCの良いところ これらを何にマッピングするかを 柔軟に実装・変更できることが良いとこ
  7. 7. 7 どこにマッピングルールを書くのか = Global.asax の Application_Start です。public class MvcApplication : HttpApplication{ protected void Application_Start() { //... RegisterRoutes(RouteTable.Routes); } public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }}RouteTableのRouteコレクションにマッピング情報を追加する
  8. 8. 8どうマッピングされるかIncoming URLhttp://84zumeworks.com/Admin/Person/10マッピングルール"{controller}/{action}/{id}"controller = “Admin”action = “Person”id = “10”
  9. 9. 9マッピングルールのバリエーションroutes.MapRoute( “84zumeWorksMap", 名前 マッピング方法 "{controller}/{action}/{id}/{*catchall}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new デフォルト値 { controller = "^H.*", httpMethod = new HttpMethodConstraint("GET"), customConstraint = new UserAgentConstraint("IE") 制約 }, new[] {"UrlsAndRoutes.Controllers"}); 探す名前空間
  10. 10. 10Outgoing URLの話HTMLに出力されるURLの話
  11. 11. 11どう出力されるか@Html.ActionLink(“Here”, “About”)<a ref=“Home/About”>Here</a>@Html.ActionLink( “Here”, “List”, “Catalog”, new {page=789})<a ref=“Catalog/List?page=789”>Here</a>※マッピングルールに従う。
  12. 12. 12Routing Systemの拡張ポイント
  13. 13. 13Routing Systemの拡張ポイント• RouteBaseをオーバーライドする。  {controller}や{action}以外のマッチング規則を追加できる。  サブドメインに基づくルーティングも書ける。  http://warehouse.84zumeworks.com/• IRouteHandlerを実装する。そもそものルーティングの仕組みを変更できる。→ちなみに…MVCRouteHandler(MvcHandler)はcontrollerのインスタンス化とかを内部的にしてる。
  14. 14. 14Area
  15. 15. 15Areaとは=大きなアプリを分割できる仕組み•例 • 右のような感じ • 階層がなんかいけてない• 分割例 • 本体 • 管理者画面 • http://84zumeworks.com/Admin • Adminエリアのデフォルトコントローラー • Adminコントローラー
  16. 16. 16Beautiful URL
  17. 17. 17URLは大事。 http://omniti.com/helps/national-geographic
  18. 18. 18おわりに
  19. 19. 19まとめ1. URLには2種類の意味があることを覚えるべし2. Areaをつかってサイトを上手に分割すべし3. きれいなURLを意識するべし
  20. 20. 20参考文献• CodePlex「ASP.NET MVC 3 RTM」 http://aspnet.codeplex.com/releases

×