Seminar ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului joobs.ro)<br />Codecamp de...
Agenda Zi<br />Introducere în ASP.NET MVC prin exemple<br />Rute, de la Iași la București cu ASP.NET MVC<br />Model-View-C...
Rute, de la Iași la București cu ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului j...
Agenda<br />Lifecycle, Rutări URL <br />
!<br />Rutele determină execuția unei acțiuni <br />dintr-un controller!<br />
URL Routing vs. URL Rewriting<br />URL Rewriting<br />mapare statică<br />“page-centric”<br />Ex. <br />/jobs/programatori...
Ciclul de execuţie<br />
ASP.NET MVCPOSTER:<br />
Definirea rutelor<br />Global.asax<br />Evenimentul Application_Start<br />classRouteCollection : Collection&lt;RouteBase&...
Definirea rutelor, sintaxă<br />routes.MapRoute(<br />Name, Url, [Defaults], [Constraints], [Namespaces]);<br />
Parametrii speciali<br />{controller} <br />Determină selecția controller-ului.<br />{action} <br />Determină selecția met...
Exemplu<br />routes.MapRoute(<br />		// Routename<br />          &quot;Default&quot;, <br />		// URL withparameters<br />&...
Laborator 1<br />Deschide Visual Studio 2008<br />Continuă cu:<br />File -&gt; New Project -&gt; ASP.NET MVC Web Applicati...
Restricții<br />Definirea a doi parametrii consecutivi fără delimitatori nu este permisă.<br />Invalid: {controller}{actio...
Contrângeri în formatul URL<br />Permit controlul valorilor parametrilor prin definirea de expresii regulate.<br />Ex. www...
De reținut<br />Alegerea rutelor se face “top-down”!<br />Prima regulă care se potrivește determină selectarea rutei, rest...
Laborator 2<br />Vezi exercitiul: 01 - RouteDebugging.txt<br />Scop: testare/debug rute<br />
Laborator 3<br />Exercițiu: <br />    Definiți o rută care să permită procesarea URL-urilor de forma <br />http://www.joob...
High-levelRequestRoutingPipeline<br />Modulul UrlRoutingModule caută pentru cererea HTTP curentă o rută înregistrată în ta...
Generarea adreselor URL<br />Se bazează pe același principiu folosit la selecția unei rute pentru o cerere HTTP.<br />Fiec...
Generarea adreselor URL<br />Metode utilitare pentru generarea URL-urilor:<br />
Laborator 4<br />Vezi exercițiul: 02 - Addjobsroutes.txt<br />Scop: definirea de rute pentru <br />    un caz concret – Jo...
ASP.NET MVC<br />Q & A?<br />
Rute, de la Iași la București cu ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului j...
Seminar ASP.NET MVC<br />Mulțumesc!<br />
Resurse ASP.NET MVC<br />codeplex.com/aspnet (Surse publice)<br />www.asp.net/mvc (Tutoriale video, Quickstarts)<br />webl...
Seminar ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului joobs.ro)Blog: http://gabr...
Upcoming SlideShare
Loading in...5
×

Rute cu ASP.NET MVC

1,858

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
1,858
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rute cu ASP.NET MVC

  1. 1. Seminar ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului joobs.ro)<br />Codecamp de toamnă la Iași // Codecamp.ro<br />19-21 nov 2009<br />
  2. 2. Agenda Zi<br />Introducere în ASP.NET MVC prin exemple<br />Rute, de la Iași la București cu ASP.NET MVC<br />Model-View-Controller și ASP.NET MVC. AJAX e minunat în combinație cu ASP.NET MVC<br />Magia testelor automate cu ASP.NET MVC <br />
  3. 3. Rute, de la Iași la București cu ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului joobs.ro)<br />
  4. 4. Agenda<br />Lifecycle, Rutări URL <br />
  5. 5. !<br />Rutele determină execuția unei acțiuni <br />dintr-un controller!<br />
  6. 6. URL Routing vs. URL Rewriting<br />URL Rewriting<br />mapare statică<br />“page-centric”<br />Ex. <br />/jobs/programatori -&gt; /jobs/categoria.aspx?id=10<br />URL Routing<br />maparedinamică<br />“resource-centric”<br />Nu efectuează rescrierea URL-ului<br />Generează URL-uri utilizând regulile de rutare<br />
  7. 7. Ciclul de execuţie<br />
  8. 8. ASP.NET MVCPOSTER:<br />
  9. 9. Definirea rutelor<br />Global.asax<br />Evenimentul Application_Start<br />classRouteCollection : Collection&lt;RouteBase&gt;<br />Instanță statică RouteTable.Routes<br />Metoda MapRoute – o metodă extensie peste tipul RouteCollection<br />Fiecare regulă este asociată unui obiect de tipul IRouteHandler<br />
  10. 10. Definirea rutelor, sintaxă<br />routes.MapRoute(<br />Name, Url, [Defaults], [Constraints], [Namespaces]);<br />
  11. 11. Parametrii speciali<br />{controller} <br />Determină selecția controller-ului.<br />{action} <br />Determină selecția metodei/acțiunii din controller care să fie invocată.<br />Notă: Controller-ul trebuie să fie o clasă care implementează interfața IController.<br />
  12. 12. Exemplu<br />routes.MapRoute(<br /> // Routename<br /> &quot;Default&quot;, <br /> // URL withparameters<br />&quot;{controller}/{action}/{id}&quot;, <br /> // Parameter defaults<br /> new { controller = &quot;Home&quot;, action = &quot;Index&quot;, id = &quot;&quot; });<br />
  13. 13. Laborator 1<br />Deschide Visual Studio 2008<br />Continuă cu:<br />File -&gt; New Project -&gt; ASP.NET MVC Web Application (Visual C#/Visual Basic)<br />F5 – Run (start debugging)<br />Scop: înţelegerea rutei implicite din fișierul Global.asax<br />
  14. 14. Restricții<br />Definirea a doi parametrii consecutivi fără delimitatori nu este permisă.<br />Invalid: {controller}{action}/{id}<br />Valid: {lang}-{country}/{controller}/{action}<br />
  15. 15. Contrângeri în formatul URL<br />Permit controlul valorilor parametrilor prin definirea de expresii regulate.<br />Ex. www.joobs.ro/blog/2009/11/21/codecamp-la-iasi<br />Regulă rută:<br />Routes.MapRoute(“blog”, “{an}/{luna}/{zi}/{*titlu}”,<br /> new { controller=“Blog”, action=“Index”, <br /> new { an=@”d{4}”, luna=@”d{2}”, zi=@”d{2}”}); <br />{*orice}<br />Catch-all route.<br />
  16. 16. De reținut<br />Alegerea rutelor se face “top-down”!<br />Prima regulă care se potrivește determină selectarea rutei, restulrutelor se ignoră.<br />Urmărește același pattern cu tratarea excepțiilor din .NET .<br />
  17. 17. Laborator 2<br />Vezi exercitiul: 01 - RouteDebugging.txt<br />Scop: testare/debug rute<br />
  18. 18. Laborator 3<br />Exercițiu: <br /> Definiți o rută care să permită procesarea URL-urilor de forma <br />http://www.joobs.ro/it/locuri-de-munca/java-programmer-la-bcl-group-in-bucuresti-1666<br /> , un controller și un view pentru afișarea detaliilor din adresa URL: titlu și id anunț.<br />Scop: definirea de rute pentru un caz concret.<br />
  19. 19. High-levelRequestRoutingPipeline<br />Modulul UrlRoutingModule caută pentru cererea HTTP curentă o rută înregistrată în tabela RouteTable.<br />Dacă s-a găsit, modulul de rutare extrage un obiect de tipul IRouteHandler.<br />Peste acesta se execută metoda GetHandler care returnează un obiect de tipul IHttpHandler (metoda ProcessRequest). <br />In mod implicit, IRouteHandler este implementat de MvcRouteHandler și IHttpHandler este implementat prin tipul MvcHandler. <br />Obiectul MvcHandler este responsabil cu selecția unui controller și execuția unei acțiuni.<br />
  20. 20. Generarea adreselor URL<br />Se bazează pe același principiu folosit la selecția unei rute pentru o cerere HTTP.<br />Fiecare regulă este testată cu un set de parametrii prin apelarea metodei Route.GetVirtualPath(RequestContext, RouteValueDictionary)<br />
  21. 21. Generarea adreselor URL<br />Metode utilitare pentru generarea URL-urilor:<br />
  22. 22. Laborator 4<br />Vezi exercițiul: 02 - Addjobsroutes.txt<br />Scop: definirea de rute pentru <br /> un caz concret – JoobsBox.<br />
  23. 23. ASP.NET MVC<br />Q & A?<br />
  24. 24. Rute, de la Iași la București cu ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului joobs.ro)<br />
  25. 25. Seminar ASP.NET MVC<br />Mulțumesc!<br />
  26. 26. Resurse ASP.NET MVC<br />codeplex.com/aspnet (Surse publice)<br />www.asp.net/mvc (Tutoriale video, Quickstarts)<br />weblogs.asp.net/scottgu/archive/tags/MVC/ (Articole, noutati ASP.NET MVC + exempleutilizare, byScottGu)<br />Directorul /Docs pus la dispoziție în cadrul training-ului.<br />Book: Professional ASP.NET MVC 1.0(Rob Conery, Scott Hanselman, PhilHaack, ScottGuthrie)<br />ASP.NET MVC Training Kit (http://tinyurl.com/yh7muf)<br />Notă: acestemateriale au stat la bazainformaţiilor din sesiunile seminarului ASP.NET MVC.<br />
  27. 27. Seminar ASP.NET MVC<br />Gabriel Enea<br />(developer la maxcode.ro, co-fondator al serviciului joobs.ro)Blog: http://gabrielenea.blogspot.com<br />Microblog: http://www.twitter.com/dotnet18<br />Email: gabriel.enea@joobs.ro<br />Codecamp de toamnă la Iași // Codecamp.ro<br />19-21 nov 2009<br />

×