Contenido de la sesión. Qué es ASP.NET MVC. Comparación de MVC y WebForms 19/04/2013



Documentos relacionados
Sesión 23. Luisa Fernanda Rincón Pérez

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

BREVE INTRODUCCION A ASP.NET MVC

Desarrollo y servicios web

Aplicaciones web ricas con jquery y Ajax Jorge Bustos sp@danysoft.com

Programación Aplicada II Ing. Héctor Abraham Hernández

Programa de actualización profesional ACTI.NET. Desarrollo de aplicaciones empresariales con ASP.NET MVC y Visual Studio 2010

Curso de preparación del examen official de Microsoft : Especialista en Desarrollo Web con.net 4.0

Programa de Certificación e Integración Laboral. Desarrollo Web Universidad Autónoma de Chihuahua Facultad de Ingeniería

Desarrollo y servicios web

Tema 4. II - Cookies. Arquitecturas Distribuidas 11/12

BackflipSD Modelo de Diseño

Introducción a Visual Studio.Net

MAESTRO DE PHP PHP NIVEL 1

Manual de Uso XML-Whois de Neubox. Manual del Sistema de XML Whois de Neubox Versión

ASP.NET. Prof. Gina Huertas Camacho

Guí a pra ctica ASP.NET 4.0

Manual Sistema de Afiliados Lomas Travel

Componentes de una aplicación ASP.NET

Squipy v Introducción

Ejercicios de AJAX y REST

Desarrollo de Aplicaciones Web

Sharepoint es un producto de Microsoft destinado al desarrollo de Intranets Corporativas y Portales Públicos (manejador de contenidos).

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

STRATO LivePages Inicio rápido

Servidores Web E2B2C. Leandro Radusky Esteban Lanzarotti. Nov 2014

Programa de actualización profesional ACTI.NET. Desarrollo de Aplicaciones Web con ASP.NET MVC 5.0 y C#

PROGRAMACIÓN PÁGINAS WEB CON PHP

Kaldeera Advanced Forms 2009 Guía del usuario

Aplicaciones Web con Delphi

Tema 4: Tecnologías Web Java

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

INTroduccIóN... xv INTroduccIóN A LA PLATAForMA.NET... 1 FuNdAMENToS del desarrollo de APLIcAcIoNES WEB... 15

APLICACIONES INFORMÁTICAS de BASE de DATOS

Creación de controles de usuario

Programación páginas web con ASP.NET 3.5 (C#)

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

CAPÍTULO 3 VISUAL BASIC

Symfony Capa de Controladores (Lógica de presentación) Rodolfo Campos

Luis Omar Decena Gómez Mat.: Sistema Operativo 2. Prof.: José Doñe. < Crear un Servidor IIS en Windows 2003 Server>.

Introducción a aplicaciones Web. Laboratorio de Programación Lorena Castañeda Bueno

DESARROLLO DE APLICACIONES ASP.NET EN MVC

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

REGISTRO DE DOMINIOS CONECTIVIDAD ADSL HOSTING COMPARTIDO RED CORPORATIVA VPN SOPORTE TECNICO PROFESIONAL

Integración de servicios de almacenamiento virtual

Visual Studio Team System 2010

BASES DE DATOS AVANZADAS. Facultad de Estadística e Informática

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: cisvirtual@ucv.edu.pe. 1.

Experto en ASP.NET 4.5 en C# con Visual Studio 2012

CURSO DE PROGRAMACIÓN PHP MySQL

- MANUAL TÉCNICO - Implantación de software de Marketing Online

Diseño y desarrollo de el Generador de Tiendas virtuales usando Líneas de Diseño de productos

Experto en ASP.NET 4.5 en C# con Visual Studio 2012

Menús. Gestor de Menús

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

Quiz 11: Crear preguntas. Juan Quemada, DIT - UPM

ADMINISTRACION DE BASES DE DATOS CUN 2014

Manual del estudiante

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Capas de la arquitectura de referencia

Botón de Pago Instapago versión 1.1 TECNOLOGÍA INSTAPAGO C.A.

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

Generador de Proxy remoto JavaScript.

FRAMEWORK SPRING EN UNA APLICACIÓN WEB

PUBLICAR EN LA RED. Ponente: Javier Paricio Rodríguez

Introducción a las Redes de Computadoras. Obligatorio

MVC: Modelo-Vista-Controlador Índice

PRESENTACIÓN DEL PRODUCTO

GALA ASP.NET. L1. Evolución Aplicaciones Web. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Ingreso al Sistema. Manual de Usuarios del Sistema Integral de Presupuesto y SINVP

Capa de Aplicación (Parte 2 de 2)

Tema 1 HTTP y aplicaciones web

Guía para usar APIs de SMS Masivos

Framework para el desarrollo ágil de aplicaciones

Las Novedades de VisualStudio.Net

Integración de Magento & Dynamics NAV

El sistema está solicitandome ingresar nuevamente porque mi sesión ha expirado. Qué significa esto?

Documentación Técnica Conector

Aplicaciones en Tiempo Real con node.js Por: Oscar Gracia. Aplicaciones en tiempo real con node.js. Marzo

México, D.F. 01 de enero del 2015

Internet Information Server

ASP.NET 4.5 en C# con Visual Studio 2012 Diseño y desarrollo de aplicaciones Web

Objetivos: Dirigido a: Desarrolladores de Páginas Web con conocimientos previos de HTML, desarrollo de Scripts de cliente y servidor.

Fundamentos de programación Estudia las estructuras de control y cómo definir funciones en JavaScript.

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Manual Intranet Área de Sistemas

Servidor DNS sencillo en Linux con dnsmasq

Movistar Tu Web Manual de Usuario

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

Introducción a Google Calendar Breve guía sobre algunas de sus funcionalidades destacables.

Una guía rápida para. Crear Boletines de Noticias

Manual de Proveedores. Ingreso al Sistema

Ayuda básica relativa al interfaz web

Transcripción:

ASP.NET MVC 4 Jorge Bustos j.bustos@danysoft.com, Servicios Profesionales sp@danysoft.com www.danysoft.com 18.04.2013 Contenido de la sesión Qué es ASP.NET MVC Comparación de MVC y WebForms 1

ASP.NET MVC Pero esto qué es? Qué es MVC Patrón arquitectónico Propicia la Separación de preocupaciones (Separation of concerns) Modelo: entidades + reglas de negocio Vista: lo que se mostrará en la IU Controlador: coordina comunicación con usuario, flujo de aplicación, y lógica de la aplicación 2

ASP.NET MVC Aplicación del patrón MVC a ASP.NET Modelo: incluye las capas de datos y lógica de negocio Vista: plantillas que generarán HTML Controlador: recibe entrada de usuario, usa lógica de negocio para decidir la vista que devuelve y la devuelve al usuario El 4º jugador: rutas Entrada del usuario, desde navegador: URL solicitada, que puede incluir parámetros Método (generalmente POST y GET) Adicionalmente puede haber: QueryString?provincia=28 valores de formulario (POST de formulario) JSON (petición AJAX, por ej. Con jquery) Enrutamiento: Elige controlador y acción Pasa parámetros (Model Binding) 3

Ejemplos de rutas Primer vistazo a MVC: Estructura de carpetas: Models, Views, Controllers Rutas: "{controller}/{action}/{id}" defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional} Ejemplos de rutas: p /Home/Index /Home/ / Controladores Clases que heredan de Controller Sus métodos son Acciones Al ejecutar un método se devuelve un ActionResult: ViewResult RedirectToActionResult JsonResult etc. El resultado se procesará y enviará al navegador 4

Vistas Son plantillas (.aspx o Razor) Reciben información del controlador para poderse generar Pueden generarse independientemente o dentro de un layout Razor Lenguaje de definición de plantillas No es nuevo (es C# o VB) Fácil de aprender Se edita con cualquier editor de texto Tiene soporte de Intellisense Compacto Soportan layouts (similar a páginas maestras) 5

Plantilla Razor Helpers para las plantillas Se usan en las plantillas (Razor o aspx) Son métodos de de extensión Pueden generar Tags de HTML @Html.TexBoxFor(m => m.nombre) Urls: @Url.Action( Ver, Producto, new { id = id }) Inyectar scripts unobstrusive para AJAX, etc. Soportan Intellisense (los hay tipados) 6

Flujo de ASP.NET MVC ASP.NET MVC La demo! 7

Filtros de MVC Filtros: Sencillos: son atributos Totalmente extensibles Autorización, filtrado de peticiones, selección de métodos, control de caché, validación casi cualquier cosa a lo largo del flujo ASP:NET MVC [HttpPost] [NoCache] // filtro personalizado public ActionResult Nuevo(Producto producto) Devolviendo cosas que no son páginas Los controladores devuelven ActionResult: ViewResult PartialViewResult FileResult ContentResult HttpStatusCodeResult (sin autorización, no encontrado ) JavaScriptResult JsonResult RedirectResult, RedirectToRouteResult Personalizados 8

ASP.NET MVC contra WebForms Lo que hace muy bien WebForms Arrastrar, soltar, clic! Diseñador visual con arrastrar + soltar + doble clic No hay que ver a penas el HTML Eventos con doble clic Simula eventos, que no existen en la web Mantenimiento automático de valores de controles (ViewState) En un medio sin estado Generación de HTML Inyección de scripts 9

ASP.NET Web Forms: La gran mentira Surgió para facilitar la vida a los programadores de aplicaciones Windows Oculta el modelo web sin estado (stateless) y sin eventos Consecuencias: Programación alejada del modelo Web Dificultad de soporte de AJAX, scripts de cliente, etc. Escaso control sobre el HTML generado Lo que complica WebForms: Pruebas unitarias, AJAX y Scripts de cliente Hacer pruebas unitarias: Gran dependencia del contexto (HttpContext) Las pruebas requieren el Web Host Hacer AJAX: Implementado con UpdatePanel Ciclo de vida entero de la página Postbacks de toda la página, incluido ViewState Imposibilidad de generar fragmentos de HTML Chapucear o usar Web Service ara devolver JSON Scripts de cliente: HTML e Ids fuera de nuestro control 10

Lo bueno de MVC: separación de preocupaciones (Separation of concerns) Separación de preocupaciones: p Model: lógica de negocio (y proyectos adicionales) View: pinta la IU Controller: flujo de aplicación, llamadas a lógica de negocio, devolución de datos para generar las vistas Los cross-concerns (requisitos transversales: autorización, logging, caché, etc.) se gestionan con filtros Más bueno de MVC: Convenciones (Convention over configuration) La ejecución de la aplicación usa los nombres de: Controladores ControladorController en carpeta Controllers Acciones (métodos de los controladores) Vistas en carpeta Views/Controlador/Accion Las convenciones están para ayudar pero Las convenciones están para ayudar, pero muchas se pueden saltar 11

Otra cosa buena de MVC: arquitectura muy fácil de probar Arquitectura muy fácil de probar: Capas muy bien separadas Fácil de hacer código desacoplado: soporta inyección de dependencias Posibilidad de emplear TDD Más cosas buenas de MVC Devuelve cualquier tipo de información aceptable para el navegador: Páginas completas, con o sin plantilla o parciales JSON (para AJAX) Redirecciones, Http Status Archivos, Contenido general Gran control sobre HTML y scripts de cliente: Incluido soporte jquery (Validation, unobstrusive) Extensibilidad (Helpers, Filtros, ViewEngines, factorías de controladores ) Validación, incluida por DataAnnotations 12

Viendo MVC con ojos de WebFormer Dónde están mis archivos.aspx? Ahora son rutas + controladores Esto se parece al ASP de los 90! Las plantillas sólo pintan la vista Y el IsPostback? MVC sólo sabe de GET y POST Y el ViewState? No existe, ni falta que hace! Se pueden mezclar? Claro, los dos funcionan sobre ASP.NET Pasándose a MVC Olvida (casi) todo lo que sabes de WebForms! 13

http://www.danysoft.com/visualstudio w.danysoft. www com 14