Professional Documents
Culture Documents
Contenidos
Introduccin y evolucin Problemas de Web forms MVC Pattern ASP.NET MVC jQuery
Introduccin y evolucin
ASP.NET conforma un framework para el desarrollo web especficamente para el framework .NET Reemplazo de las clsicas pginas ASP (Active Server Pages) Es la alternativa ideada por Microsoft para competir con las existentes en el momento, principalmente en el mundo Java ASP.NET MVC surge no como reemplazo a tecnologa existente en .NET, sino como complemento
Introduccin y evolucin
Introduccin y evolucin
1993
Bajo nivel Ejecuta por fuera del servidor Alto consumo de recursos
1994-1995
Ejecuta en el servidor
Solamente es un wrapper para las consultas SQL y templates para formatear los resultados
Introduccin y evolucin
1996
2002-2003
Compilado Statefull UI
Orientacin a objetos
Extremadamente pesado HTML inentendible
6
Introduccin y evolucin
2005
2007
ASP.NET Ajax
2008
2009
Introduccin y evolucin
2010
2011
2012
Al momento de desarrollar ASP.NET Web Forms, Microsoft intent trasladar todas las metodologas utilizadas en Win Forms a una plataforma nueva y totalmente distinta a la web Con esto logr una rpida adopcin de la nueva plataforma por parte de los desarrolladores existentes Escondi las complejidades del protocolo HTTP (con su naturaleza de stateless) y el manejo de HTML
INCO - Facultad de Ingeniera Montevideo, Uruguay 9
Como contrapartida, todas estas facilidades para los nuevos desarrolladores, devinieron en aplicaciones web en muchos casos casi inusables o extremadamente pesadas para los tiempos que corran
Principales problemas
Conexin entre eventos del lado del cliente y del lado del servidor
Code behind
Testeo
10
Igualmente, web forms sigui desarrollndose y es ampliamente utilizado al da de hoy Incorporacin de AJAX A partir de la versin 4.0, empez a respetar seriamente algunos estndares web
11
MVC Pattern
El patrn Model-View-Controller (MVC) es un patrn arquitectnico Separa los componentes de una aplicacin web en tres capas Esto permite tener ms control sobre cada una de las partes individuales de la aplicacin Mayor facilidad para:
Desarrollar
Modificar
Testear
INCO - Facultad de Ingeniera Montevideo, Uruguay 12
MVC Pattern
13
MVC Pattern
Modelo:
Generalmente encapsula los datos almacenados en una base de datos, as como tambin el cdigo necesario para la manipulacin de los mismos
Vista:
Utilizadas para desplegar la informacin del modelo como una interfaz de usuario (UI)
Controlador:
Responde a la entrada del usuario, realiza operaciones sobre el modelo y selecciona las vistas a ser desplegadas, si corresponde
14
MVC Pattern
Es importante remarcar la importancia del modelo en la arquitectura MVC Es mediante el modelo que se representa todo el dominio de nuestra aplicacin, las entidades del mundo real, las reglas de negocio y las operaciones del mismo.
15
ASP.NET MVC
A raz del resurgimiento del patrn MVC esta vez aplicado a la web, con el auge de ciertos frameworks (Ruby on Rails, p.e.), se empieza a desarrollar en paralelo a la evolucin de web forms, una nueva plataforma para ASP.NET
Para no repetir errores, se implemento esta plataforma con varios puntos a tener en cuenta:
16
ASP.NET MVC
Open Source!
17
ASP.NET MVC
18
ASP.NET MVC
Los controladores en ASP.NET MVC son por lo general clases C#, que derivan de System.Web.Mvc.Controller Cada mtodo pblico en un controlador es llamado un action method, el cual se asocia a una URL mediante el sistema de ruteo de ASP.NET MVC
Cuando se realiza un pedido a una URL asociada a un action method de un controlador, se ejecuta el mismo, realizando lo que sea requerido en el modelo y seleccionando una vista para mostrar al usuario
19
ASP.NET MVC
ASP.NET MVC ofrece tambin la posibilidad de seleccionar distintos view engines, es decir, motores para las vistas En las primeras versiones se utilizaba el motor clsico de ASP.NET, el cual procesaba pginas .aspx
20
ASP.NET MVC
En cuanto al modelo, no existen restricciones en cuanto a la implementacin Se pueden utilizar clases C# comunes y acceso a la base de datos de la forma que se prefiera
ORM
ADO.NET
Etc
21
ASP.NET MVC
El concepto de Convention over configuration se hizo popular gracias a Ruby on Rails Se basa en el hecho de pre definir algunas convenciones, de forma tal de ahorrar tiempo al momento de crear una aplicacin configurando cosas
ASP.NET MVC
Como ejemplo de sugerencias, al crear un nuevo proyecto se crea una carpeta Scripts, donde se sugiere vayan todas las libreras y archivos javascript de la aplicacin Pero uno puede renombrar la carpeta, o ubicar estos archivos donde quiera Las convenciones si se deben respetar
Los controladores son clases que deben terminar con Controller: por ejemplo, ProductController Cuando se refiere a un controlador desde cualquier parte del proyecto, solamente se utiliza el nombre, el framework automticamente agrega el controller
INCO - Facultad de Ingeniera Montevideo, Uruguay 23
ASP.NET MVC
Las vistas y vistas parciales van en la carpeta /Views/ControllerName (por ejemplo, /Views/Product) El framework espera que la vista por defecto de un action method se nombre igual que el propio mtodo
Un action method de nombre List tiene una vista asociada por defecto List.cshtml Se puede retornar otra vista desde el propio action method
24
ASP.NET MVC
25
ASP.NET MVC
routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }
26
ASP.NET MVC
El motor de vistas Razor fue incorporado en la versin 3.0 de ASP.NET MVC Compila las vistas como forma de mejorar la performance
Se traducen a cdigo C# para compilarlas al momento de utilizarlas por primera vez Las clases compiladas se almacenan en disco hasta que la vista cambie
27
ASP.NET MVC
Cdigo embebido
<ul> @for (int i = 0; i < 10; i++){ <li>@i </li> } </ul>
Helpers HTML
@{ Html.BeginForm("Edit", "Home"); }
@{ Html.EndForm();}
<form action="/Home/Edit" method="post"> </form>
INCO - Facultad de Ingeniera Montevideo, Uruguay 28
ASP.NET MVC
Vistas parciales
Se
utilizan en escenarios donde se quiere reutilizar las mismas vistas en varios lados
@Html.Partial("VistaParcial")
29
ASP.NET MVC
Los action methods retornan un Action Result ASP.NET MVC provee distintos tipos de Action Result para tratar de abarcar las distintas posibilidades de respuesta al usuario
ViewResult
PartialViewResult
RedirectResult FileResult JsonResult
JavascriptResult
EmptyResult
30
ASP.NET MVC
ViewBag.Date = DateTime.Now;
return View(); } @{ ViewBag.Title = "Home Page"; } <h2>@ViewBag.Message</h2> <h3>@ViewBag.Date</h3>
INCO - Facultad de Ingeniera Montevideo, Uruguay 31
ASP.NET MVC
Como principal desventaja del ViewBag es que no es posible saber en tiempo de compilacin que datos se agregaron al objeto De existir errores solo se darn en tiempo de ejecucin
32
ASP.NET MVC
En los controladores existen formas de obtener ciertos datos, bsicamente a travs del objeto Request
33
ASP.NET MVC
Existe cierta metadata que podemos agregar a nuestro modelo para realizar validaciones De esta forma nos garantizamos mantener la integridad de datos en nuestra base, por ejemplo Las validaciones, igualmente, deben realizarse en todas las capas
34
ASP.NET MVC
ASP.NET MVC provee, al igual que muchos otros frameworks MVC, una herramienta llamada Scaffolding Consiste en la posibilidad de crear vistas a partir de un modelo definido, para ciertas operaciones predefinidas
Edit
Create
List Details Delete
O sea, bsicamente, mediante muy pocos pasos, es posible crear el ABM de las entidades de nuestro modelo
INCO - Facultad de Ingeniera Montevideo, Uruguay 35
ASP.NET MVC
Lamentablemente, la utilidad del scaffolding es puramente para prototipar o para que sea el punto de partida Temas como seguridad, validaciones, etc necesitan ser agregados igualmente
36
jQuery
Librera implementada en JavaScript puro, o sea, client side Incorporada por defecto en los proyectos ASP.NET MVC Provee facilidades para AJAX y modificacin del DOM Se abstrae de las distintas implementaciones de los navegadores
37
jQuery
Estructura plugins
jQuery UI
38
jQuery
La base de la librera es la funcin jQuery() Tiene un alias que significa exactamente lo mismo, $() Nos permite seleccionar elementos del DOM
39
jQuery
Los selectores permiten elegir el conjunto de elementos con el que vamos a operar A esos elementos le realizamos una operacin, por ejemplo:
Podemos seleccionar elementos en todo el documento, como hasta ahora, o en un determinado contexto
$(td, miElemento) selecciona todos los elementos td que sean descendientes de miElemento
40
jQuery
$([attr]) selecciona los elementos que contengan ese atributo $([attr] = val) selecciona los elementos que contengan ese atributo con el valor val
41
jQuery
:eq(n) toma el elemento n-1 de la seleccin :even, :odd toma los elementos pares o impares de la seleccin :first, :last, :header, :not(selector)
$(input:eq(7)) $(:header )
INCO - Facultad de Ingeniera Montevideo, Uruguay 42
O solos
jQuery
:enabled
ms
43
jQuery
De esta forma, podemos seleccionar los elementos porque sabemos que ya van a estar en pantalla
44
jQuery
$(#miTabla).addClass(miClaseCSS) toma la tabla con id miTabla, y le agrega la clase CSS miClaseCSS Tambin podemos usar la funcin css: $(tr:even).css(background-color, silver ) hasClass(miClase)
45
jQuery
Funciones de navegacin
parent()
siblings()
46
jQuery
Esto permite utilizar una funcin nuestra al momento de ejecutarse un evento en un elemento o en los elementos seleccionados
47
jQuery
Inicia un pedido AJAX utilizando las opciones que se pasen como parmetro para controlar la forma de realizar el pedido, as como tambin como se notifica a las funciones de callback
$.ajax({
url: http://miUrl,
dataType: json, type: POST, success: function(data){ alert(xito); } })
48
jQuery
Como ya vimos que es muy sencillo retornar datos JSON con ASP.NET MVC La funcin ajax utilizando el tipo json es ideal para solicitar datos va AJAX a las acciones de los controladores
49
jQuery
Efectos visuales
show()
slideDown() slideUp()
toggle()
50
jQuery
jQuery
jQuery UI
Plugins de jQuery
51
Preguntas
52