[code camp 2009] desarrollando sitios web escalables con asp.net mvc (rodolfo finochietti + leandro...
DESCRIPTION
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)TRANSCRIPT
![Page 1: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/1.jpg)
Construcción de sitios escalables con
ASP.NET MVC
Mariano SánchezLeandro BoffiRodolfo Finochietti (MVP)
![Page 2: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/2.jpg)
Modelo-Vista-Controlador
Model
ControllerView
Xerox PARC 1978http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html
![Page 3: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/3.jpg)
ASP.NET MVCUn nuevo framework para Web
DevelopmentUn nuevo tipo de proyecto en Visual
StudioMás control sobre el HTMLMás testeableNo es una nueva versión de ASP.NET
Web FormsEsta basado en ASP.NET
![Page 4: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/4.jpg)
¿Que ofrece?SoC (Separation of Concerns)
TDD por defaultMantenibilidad
Url y HTML mas limpioSEO y REST friendly
/Usuarios/Buscar/MatíasCSS Friendly
<html> <div> <label> <span>
Modelo de programación mas performanteNo hay ViewStateNo hay modelo de eventos
![Page 5: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/5.jpg)
Demo Hola Mundo
![Page 6: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/6.jpg)
¿Como trabaja?Navego a http://.../Productos/Listar Se determina
la ruta
El controller Productos es
creado
Un método Listar del
controller es invocado
Se ejecuta la logica del controller
Se dibuja la vista pasándole
la ViewData
Se dibujan Urls que apuntan a otras acciones
de otros controllers
![Page 7: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/7.jpg)
Rutas
www.sitio.com/products/report/33/2008/11
![Page 8: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/8.jpg)
URIs amigablesLegibles
www.sitio.com/products.aspx?module=reports&productId=33&year=2008&m=11
www.sitio.com/products/report/33/2008/11
Predecibleshttp://es.wikipedia.org/wiki/Microsoft
![Page 9: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/9.jpg)
Ruteo – URIs amigablesSe agregan rutas a la RouteTable globalEl Mapeo crea un objeto RouteData (un diccionario de
key/values)protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.Add(
"Blog/bydate/[year]/[month]/[day]",new { controller="blog", action="showposts" },new { year=@"\d{1,4}", month= @"\d{1,2}",
day = @"\d{1,2}"});}
![Page 10: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/10.jpg)
Controlador – Uso Básico
Escenarios, Objetivos y DiseñoLas URLs indican “acciones” del Controlador, no páginas Las acciones deben declarase en el Controlador.El Controlador ejecuta lógica y elige la vista.
public ActionResult ShowPost(int id) { Post p = PostRepository.GetPostById(id); if (p != null) { View(p); } else { View("nosuchpost", id); }}
![Page 11: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/11.jpg)
Vistas – Uso BásicoEscenarios, Objetivos y Diseño:
Generan HTML u otro tipo de contenido. Helpers pre-definidos.
Pueden ser .ASPX, .ASCX, .MASTER, etc.Pueden reemplazarse con otras
tecnologías:Template engines (NVelocity, Spark, …).Formatos de salida (images, RSS, JSON, …).Pueden definirse vistas Mock para testing.
El controlador ofrece datos a la VistaDatos Loosely Typed o Strongly Typed .
![Page 12: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/12.jpg)
Demo ASP.NET MVC
![Page 13: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/13.jpg)
¿Qué hay del lado del cliente?
![Page 14: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/14.jpg)
jQueryOpen Source
MIT y GPLCross Browser
Internet Explorer 6+, Firefox 2+, Opera 9+, and Safari 2+
Liviano 15k
Adoptado por MicrosoftIntegrado con Visual StudioSoporte 7/24
![Page 15: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/15.jpg)
jQuery
Selectors
Animations
Plugins
![Page 16: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/16.jpg)
jQuery Selectors
$(“#userName”)
$(“input:text”)
$(“.required”)
$(“#grid tr:even”)
![Page 17: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/17.jpg)
jQuery Animations
$(…).show() $(…).hide()
$(…).slideDown() $(…).slideUp()
$(…).fadeIn() $(…).fadeOut()
![Page 18: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/18.jpg)
jQuery Pluginshttp://plugins.jquery.com/
•Ajax (182)
•Animation and Effects (253)
•Browser Tweaks (67)
•Data (122)
•DOM (123)
•Drag-and-Drop (30)
•Events (119)
•Forms (317)
•Integration (88)
•JavaScript (130)
•jQuery Extensions (198)
•Layout (162)
•Media (108)
•Menus (80)
•Metaplugin (24)
•Navigation (131)
•Tables (64)
•User Interface (571)
•Utilities (291)
•Widgets (211)
•Windows and Overlays (89)
![Page 19: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/19.jpg)
¿Qué hay de AJAX?
![Page 20: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/20.jpg)
AJAX en ASP.NET MVCAJAX MVC
AJAX Helpers, Vistas ParcialesASP.NET AJAX Framework (Client Side)
Vistas del tipo JSONXMLHttpRequestjQuery
![Page 21: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/21.jpg)
Demo ASP.NET MVC + jQuery + AJAX
![Page 22: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/22.jpg)
ExtensibilidadTan simple o complejo como se quiera
Facil de extenderSe puede usar con IOC, o no
Se lleva bien con otrosNHibernate para el Modelo, Spark Engine para las VistasO cualquier otra cosa!
![Page 23: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/23.jpg)
Demo Extensibilidad
![Page 24: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/24.jpg)
ConclusionesFunciona muy bien!Esto no es Web Forms 4.0
Se trata de tener alternativas. Auto vs. Moto.
Máximo control sobre URLs y HTMLURLs amigables: SEO y REST
Gran integración con ASP.NET
![Page 25: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/25.jpg)
¿Preguntas?
![Page 26: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/26.jpg)
RecursosASP.NET MVC: http://www.asp.net/mvc/ASP.NET MVC Nerd Dinner Sample:
http://tinyurl.com/aspnetmvcScott Guthrie:
http://weblogs.asp.net/scottgu/
![Page 27: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/27.jpg)
[email protected] http://twitter.com/rodolfofhttp://weblogs.shockbyte.com.ar/rodolfof
[email protected]¡NO TIENE TWITTER!http://weblogs.asp.net/marianos
[email protected] http://twitter.com/leandroboffi http://agileculture.net/lboffi/
¡GRACIAS!
![Page 28: [Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo Finochietti + Leandro Díaz Guerra + Mariano Sánchez)](https://reader035.vdocuments.site/reader035/viewer/2022062418/55639faed8b42aae0d8b49ae/html5/thumbnails/28.jpg)