• Save
Rute cu ASP.NET MVC
Upcoming SlideShare
Loading in...5
×
 

Rute cu ASP.NET MVC

on

  • 2,308 views

 

Statistics

Views

Total Views
2,308
Views on SlideShare
1,971
Embed Views
337

Actions

Likes
0
Downloads
1
Comments
0

4 Embeds 337

http://gabrielenea.blogspot.com 287
http://gabrielenea.blogspot.ro 41
http://www.slideshare.net 8
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Rute cu ASP.NET MVC Rute cu ASP.NET MVC Presentation Transcript

    • 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
    • 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
    • Rute, de la Iași la București cu ASP.NET MVC
      Gabriel Enea
      (developer la maxcode.ro, co-fondator al serviciului joobs.ro)
    • Agenda
      Lifecycle, Rutări URL 
    • !
      Rutele determină execuția unei acțiuni
      dintr-un controller!
    • 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
    • Ciclul de execuţie
    • ASP.NET MVCPOSTER:
    • 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
    • Definirea rutelor, sintaxă
      routes.MapRoute(
      Name, Url, [Defaults], [Constraints], [Namespaces]);
    • 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.
    • Exemplu
      routes.MapRoute(
      // Routename
      "Default",
      // URL withparameters
      "{controller}/{action}/{id}",
      // Parameter defaults
      new { controller = "Home", action = "Index", id = "" });
    • 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
    • Restricții
      Definirea a doi parametrii consecutivi fără delimitatori nu este permisă.
      Invalid: {controller}{action}/{id}
      Valid: {lang}-{country}/{controller}/{action}
    • 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.
    • 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 .
    • Laborator 2
      Vezi exercitiul: 01 - RouteDebugging.txt
      Scop: testare/debug rute
    • 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.
    • 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.
    • 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)
    • Generarea adreselor URL
      Metode utilitare pentru generarea URL-urilor:
    • Laborator 4
      Vezi exercițiul: 02 - Addjobsroutes.txt
      Scop: definirea de rute pentru
      un caz concret – JoobsBox.
    • ASP.NET MVC
      Q & A?
    • Rute, de la Iași la București cu ASP.NET MVC
      Gabriel Enea
      (developer la maxcode.ro, co-fondator al serviciului joobs.ro)
    • Seminar ASP.NET MVC
      Mulțumesc!
    • 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.
    • 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