Your SlideShare is downloading. ×
  • Like
  • Save
Rute cu ASP.NET MVC
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Rute cu ASP.NET MVC

  • 1,820 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,820
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

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