SlideShare una empresa de Scribd logo
1 de 40
Desarrollo de
Aplicaciones Web con
ASP.NET MVC 5
Módulo 1:Introducción a
ASP.NET MVC 5
Oscar Gensollen Arroyo
Microsoft Certified Trainer
MCSD Web + SharePoint
Arquitecto, Consultor en TI
oscar.gensollen@formativaperu.com
@oscargensollen
Agenda
 Arquitectura de ASP.NET MVC 5
 Web Forms versus MVC
 Creación y estructura de un proyecto
MVC
Desarrollo
Módulo 1
Arquitectura de ASP .NET MVC 5
 ASP .NET MVC es…
• Un nuevo tipo de proyecto para ASP .NET
• Una opción de desarrollo
• Mas control sobre el<html/>
• Un framework mas facil de probar
• No es para todos los casos
 Cuál es el punto con MVC?
• No es Web Forms vNext…es una alternativa más.
• Flexible, muy extensible
• Fundamental, parte de System.Web
• Integrado, NHibernate, Brail, etc, pueden ser
empleados con total libertad.
Arquitectura de ASP .NET MVC 5
 Motivaciones principales
 Clara separación de intereses
• Fácil testing con TDD
• Permite crear aplicaciones altamente mantenibles
 Extensible y conectable
• Soporta el reemplazo de cualquier componente
del sistema.
 Permite URLs claras y HTML simple
• Estructuras amigables SEO y REST
 Gran integración con ASP.NET
• Todos los proveedores de siempre funcionan
• Membership, Session, Caching, etc.
• Diseñador ASP.NET en VS2013
Arquitectura de ASP .NET MVC 5
Comparación de patrones
(1)
Arquitectura de ASP .NET MVC 5
Arquitectura de ASP .NET MVC 5
Browser
Controller
View Model
Database
Web Server HTTP
SQL
Routing
 http://host:port/Products/View/100
Arquitectura de ASP .NET MVC 5
Routing
 Decide que controlador responde a cada
petición
 Basándose en la URL
 Mapea una petición a una acción (método
de un controlador)
 Permite la creación de URLs personalizadas
con mucha facilidad
Arquitectura de ASP .NET MVC 5
El patrón MVC (mas explicado)
 Controlador
 Responde a las peticiones http
 Interactúa con el modelo
 Pasa los datos a la vista
 Modelo
 Contiene la lógica de negocio y datos
 Vista
 Representa visualmente (HTML) unos datos
Arquitectura de ASP .NET MVC 5
Controladores
 Manejan la lógica de presentación
 Son los que reciben las peticiones, en
base a una URL
 Derivan la petición a una acción
 Programáticamente un método
Arquitectura de ASP .NET MVC 5
Action Results
 Cada acción de un controlador debe
devolver un resultado que es enviado al
browser
 Ejemplos:
 ViewResult: Devuelve una vista (html)
 JsonResult: Devuelve datos en json
 FileResult: Devuelve el contenido de un
fichero
Arquitectura de ASP .NET MVC 5
Vistas
 Las vistas reciben datos del controlador y
muestran estos datos
 Se implementan mediante páginas .aspx
 Sin controles de servidor
 Sin «code-behind»
Arquitectura de ASP .NET MVC 5
Vistas parciales
 Una vista parcial es una vista que se
muestra dentro de otra vista
 Se implementan como controles .ascx
 Sin controles runat=«server»
 Sin code behind
 Dan soporte para reutilización y
composición
Arquitectura de ASP .NET MVC 5
Helpers
 ASP.NET MVC viene con clases que
ayudan a generar HTML de forma más
simple
 La propiedad HTML de las vistas accede al
HtmlHelper que tiene métodos para
generar código HTML típico (p.ej. Controles
html)
 La propiedad AJAX de las vistas accede al
AjaxHelper que tiene métodos para
generar código para interactuar con la
Ajax Library
Arquitectura de ASP .NET MVC 5
Modelo
 El modelo contiene toda la lógica de
nuestra aplicación
 Lógica de negocio
 Acceso a datos
 Los controladores interaccionan con el
modelo para obtener datos que son
pasados a las vistas
 ViewModels
Arquitectura de ASP .NET MVC 5
Arquitectura de ASP .NET MVC 5
Model
ControllerView
•Browser hace un
request /Products/
•La ruta es determinada
•El controlador es
activado
•La acción del
controlador es
invocada
•El controlador realiza
alguna lógica
•Se entrega la vista,
pasándole ViewData
•URLs son renderizadas,
apuntando a otros
controladoras
Desarrollo
Módulo 1
Creación y estructura de un proyecto MVC
 Para crear un nuevo proyecto MVC 5
1. Diríjase al menú File – New - Project como se
muestra en la figura:
Creación y estructura de un proyecto MVC
1. En las plantillas instaladas, seleccionar Visual C# Web
templates
2. Seleccione ASP. NET Web Application e indique el
nombre de su aplicación. Finalmente haga clic OK.
Creación y estructura de un proyecto MVC
 Dialogo de nuevo proyecto ASP .NET MVC
Creación y estructura de un proyecto MVC
 Application Templates
• Empty
• Web Forms
• MVC
• Web API
• Single Page Application
• Facebook
 Folders + Core References
• Web Forms
• MVC
• Web API
 Change Authentication
 No Authentication
 Individual User Accounts
 Organizational Accounts
 Windows Authentication
 Testing
Creación y estructura de un proyecto MVC
Creación y estructura de un proyecto MVC
Creación y estructura de un proyecto MVC (1)
 Carpetas de primer nivel por defecto (Basado en
convenciones)
Directorio Propósito
/App_Data Repositorio de archivos de datos que quieres leer o
escribir
/App_Start Contiene clases de configuración a nivel de
aplicación (autenticación, bundling, global action
filters, entre otros)
/Content Repositorio de los archivos CSS e imágenes, y otros
contenidos no dinámicos ni JavaScript
/Controllers Repositorio de las clases Controller que se encargan
de las solicitudes de URL
/fonts Contiene fuentes para Bootstrap
Creación y estructura de un proyecto MVC (2)
 Carpetas de primer nivel por defecto (Basado en
convenciones)
Directorio Propósito
/Models Repositorio de clases que representan y manipulan
los datos y objetos de negocio
/Scripts Repositorio de archivos de librería JavaScript y
scripts (.js)
/Views Repositorio para plantillas de archivos de UI que
son responsables para renderizacion, por ejemplo
de HTML
Desarrollo
Módulo 1
Web Forms versus MVC
¿Qué hizo ASP.NET por nosotros?
 Tomó las mejores prácticas de ASP
 Hizo fácil el desarrollo
 Siguió la senda de Visual Basic
 Manejado por eventos
 Expandió el entorno RAD a la Web
 Orientado hacia la productividad
 No exigió demasiados requerimientos de los
desarrolladores
 No era necesario saber HTML, ni JavaScript
Web Forms versus MVC
¿Qué es ASP .NET MVC?
 Es la implementación de la arquitectura MVC para
ASP .NET
 Alternativa a Web Forms
 Esta construido sobre ASP .NET
 Maneja el patrón «Front Controller»
 Expone la web tal como es
Web Forms versus MVC
Metas de ASP .NET MVC
 Permitir una clara separación de
responsabilidades
 Principio SRP
 Altamente mantenible
 Testeable por defecto
 Permitir un control completo sobre el HTML
 Habilitar URLs claras
 Amigable con REST
 Optimizado para buscadores (SEO)
 Basado en convenciones
 Convención sobre Configuración
Web Forms versus MVC
Web Forms
Web Forms versus MVC
VENTAJAS DESVENTAJAS
Productividad No tiene SoC de manera natural
RAD Hay que lidiar con el ViewState
Programación con estado Probar páginas es difícil
Controles enriquecidos Procesamiento y renderización
mezclados
Plataforma estable y madura Abstrae el JS y HTML (complica las
cosas con AJAX)
ASP .NET MVC
VENTAJAS DESVENTAJAS
Diseño claro, con una ordenada
separación de intereses
Carece de un «component model»
para hacer más fácil el diseño
Una delgada pila de ejecución Exige de mayores «skills» al
desarrollador
• Mejor comprensión de cómo
funciona la web
Control total sobre el HTML
Inclusive independencia de él
Total extensibilidad en todas sus
partes
Permite el desarrollo orientado a
pruebas (TDD)
Web Forms versus MVC
¿Por qué escoger MVC?
 Por una o varias de las siguientes razones:
1. Para estudiarlo
2. Para escribir código «testeable»
3. Para escribir código bien diseñado (capas
desacopladas)
4. Para entregar valor a tus clientes
5. Porque es el futuro y estará bien posicionado
6. Porque es muy flexible y puede manejar
cambios
7. Porque te vuelve un mejor desarrollador
8. Porque permite control total sobre el HTML
 Estilos, Accesibilidad, Compatibilidad entre
navegadores, cumplimiento con
estándares
Web Forms versus MVC
Escenarios que pueden presentarse
¿En cuál de ellos estas tú?
 1: Te gusta Web Forms y estas feliz con ello
 2: Mayormente te gusta Web Forms pero no
estas del todo contento
 3: Eres nuevo en ASP .NET
 4: Estas liderando un equipo de desarrollo
Web Forms versus MVC
1: Te gusta Web Forms y estas feliz
con ello
 Te sientes en control en ese modelo
 No te preocupa demasiado el tema del
viewstate
 No te preocupa mucho el tema de AJAX
y jQuery
 Puedes aprovechar al máximo la familia
de componentes visuales disponible
…Quédate con Web Forms
Web Forms versus MVC
2: Mayormente te gusta Web Forms
pero no estas del todo contento
 Te esfuerzas en mantener bajo control el
Viewstate
 Quieres introducir mas JavaScript en las
páginas
 Te sientes restringido por las abstracciones
que el modelo impone
…Considera usar ASP .NET MVC
Web Forms versus MVC
3: Eres nuevo en ASP .NET
 Y tienes experiencia suficiente en otros
frameworks
 Deseas un buen nivel de aprendizaje
(MVC no tiene secretos)
…ASP .NET MVC es para ti
Web Forms versus MVC
4: Estas liderando un equipo de
desarrollo
 ASP .NET MVC «crea» las condiciones
para producir software de alta calidad,
más rápido
 Puede tener o tener beneficio tangible
para el cliente
 Tiene un inmediato ROI (Retorno de
inversión) para ti y tu compañía
…migra tu equipo a ASP .NET MVC
Web Forms versus MVC
Momento de tomar una decisión
 Si el requerimiento es «tomar control sobre
el HTML», ASP .NET MVC es la respuesta
 Se gasta tiempo arreglando cosas con
Web Forms
 Ese tiempo se puede invertir en aprender
un enfoque arquitecturalmente superior
 ASP .NET MVC no es perfecto, pero es
superior de lejos
 Aprende a tu ritmo, pero empieza!
Web Forms versus MVC
¿Quieres más información?
Tenemos cursos en línea, en diversas
modalidades
¡Contáctanos!
 www.formativaperu.com
ventas@formativaperu.com

Más contenido relacionado

La actualidad más candente

Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y desplieguejoshell
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominioSCMU AQP
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos JavaJosé Mendoza
 
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) Germán Sánchez
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesSergio Sanchez
 
Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETJavier Roig
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDat@center S.A
 
Métodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaMétodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaDaniel Gómez
 
Introducción a HTML y CSS
Introducción a HTML y CSSIntroducción a HTML y CSS
Introducción a HTML y CSSAdriana Tienda
 

La actualidad más candente (20)

Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
Cuestionario Preparatorio Html, css y html 5
Cuestionario Preparatorio Html, css y html 5Cuestionario Preparatorio Html, css y html 5
Cuestionario Preparatorio Html, css y html 5
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Modelo del dominio
Modelo del dominioModelo del dominio
Modelo del dominio
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos Java
 
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING) METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
METODOLOGÍA UWE (UML-BASED WEB ENGINEERING)
 
Interface grafica
Interface graficaInterface grafica
Interface grafica
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
CSS
CSSCSS
CSS
 
Jsp ppt
Jsp pptJsp ppt
Jsp ppt
 
Unidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De ClasesUnidad 10 Mad Diagrama De Clases
Unidad 10 Mad Diagrama De Clases
 
HTML
HTMLHTML
HTML
 
Programacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NETProgramacion de aplicaciones Web con ASP.NET
Programacion de aplicaciones Web con ASP.NET
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Desarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a ObjetosDesarrollo de Software Orienta a Objetos
Desarrollo de Software Orienta a Objetos
 
Métodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - AlgoritmiaMétodos y Funciones - Java - Algoritmia
Métodos y Funciones - Java - Algoritmia
 
Introducción a HTML y CSS
Introducción a HTML y CSSIntroducción a HTML y CSS
Introducción a HTML y CSS
 

Destacado

Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCAngel Nuñez
 
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicasASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicasVíctor Acosta Santivañez
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCriojadotnet
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Rodolfo Finochietti
 
Arquitectura de Aplicaciones Web ASP.NET/MVP
Arquitectura de Aplicaciones Web ASP.NET/MVPArquitectura de Aplicaciones Web ASP.NET/MVP
Arquitectura de Aplicaciones Web ASP.NET/MVPIng. Jose Franco
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETJavier Roig
 
Introduccion microsoft.net
Introduccion microsoft.netIntroduccion microsoft.net
Introduccion microsoft.netEdison
 
Curso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NETCurso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NETEuroinnova Formación
 
Origen de la programación
Origen de la programaciónOrigen de la programación
Origen de la programaciónAlex Lopez
 
Tendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialTendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialSorey García
 
Proyecto de Aula
Proyecto de AulaProyecto de Aula
Proyecto de AulaN/A
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETRoberto Taborda
 
Historia de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónHistoria de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónLILIANA06
 
Requerimientos funcionales de un sistema de reservas
Requerimientos funcionales de un sistema de reservasRequerimientos funcionales de un sistema de reservas
Requerimientos funcionales de un sistema de reservasHumberto Rojas
 
Software para el control del proceso de reservas
Software para el control del proceso de reservasSoftware para el control del proceso de reservas
Software para el control del proceso de reservasluisruiz9015
 

Destacado (20)

Desarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVCDesarrollo Web con ASP.NET MVC
Desarrollo Web con ASP.NET MVC
 
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicasASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
ASP.NET Guia de desarrollo de sitios y aplicaciones web dinamicas
 
ASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVCASP .NET MVC: Desarrollo web con el patrón MVC
ASP .NET MVC: Desarrollo web con el patrón MVC
 
Origen de poo
Origen de pooOrigen de poo
Origen de poo
 
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
Nuevas características para Desarrollo Web en Visual Studio 2012 y ASP.NET MVC 4
 
ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2
 
Arquitectura de Aplicaciones Web ASP.NET/MVP
Arquitectura de Aplicaciones Web ASP.NET/MVPArquitectura de Aplicaciones Web ASP.NET/MVP
Arquitectura de Aplicaciones Web ASP.NET/MVP
 
Esquema
EsquemaEsquema
Esquema
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NET
 
Introduccion microsoft.net
Introduccion microsoft.netIntroduccion microsoft.net
Introduccion microsoft.net
 
Curso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NETCurso programación páginas web con ASP.NET
Curso programación páginas web con ASP.NET
 
Origen de la programación
Origen de la programaciónOrigen de la programación
Origen de la programación
 
Tendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarialTendencias de movilidad en el mercado masivo y empresarial
Tendencias de movilidad en el mercado masivo y empresarial
 
Soft hotel sistema
Soft hotel sistemaSoft hotel sistema
Soft hotel sistema
 
Proyecto de Aula
Proyecto de AulaProyecto de Aula
Proyecto de Aula
 
Arquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NETArquitectura N-Capas y ADo.NET
Arquitectura N-Capas y ADo.NET
 
Historia de los Lenguajes de Programación
Historia de los Lenguajes de ProgramaciónHistoria de los Lenguajes de Programación
Historia de los Lenguajes de Programación
 
Requerimientos funcionales de un sistema de reservas
Requerimientos funcionales de un sistema de reservasRequerimientos funcionales de un sistema de reservas
Requerimientos funcionales de un sistema de reservas
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 
Software para el control del proceso de reservas
Software para el control del proceso de reservasSoftware para el control del proceso de reservas
Software para el control del proceso de reservas
 

Similar a Desarrollo de Aplicaciones Web con ASP.NET MVC5

Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVCSebastián Rocco
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)Senior Dev
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptxSibilinoAndante
 
Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Gonzalo C.
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESJesus Caceres Tello
 
Web matrix session1
Web matrix session1Web matrix session1
Web matrix session1Gonzalo C.
 

Similar a Desarrollo de Aplicaciones Web con ASP.NET MVC5 (20)

Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Mvc4 Intro
Mvc4 IntroMvc4 Intro
Mvc4 Intro
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)
 
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx
 
ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010Web matrix razor_aspnetmvc_finalv2_techdays2010
Web matrix razor_aspnetmvc_finalv2_techdays2010
 
Patron mvc struts
Patron mvc strutsPatron mvc struts
Patron mvc struts
 
MVC
MVCMVC
MVC
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
Web matrix session1
Web matrix session1Web matrix session1
Web matrix session1
 
Introducción a Asp.Net Mvc
Introducción a Asp.Net MvcIntroducción a Asp.Net Mvc
Introducción a Asp.Net Mvc
 
Arquitectura java web
Arquitectura java webArquitectura java web
Arquitectura java web
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
Mvc
MvcMvc
Mvc
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
[Code Camp 2009] Desarrollando sitios web escalables con ASP.NET MVC (Rodolfo...
 

Más de Oscar Gensollen

Usando Azure para habilitar APIs
Usando Azure para habilitar APIsUsando Azure para habilitar APIs
Usando Azure para habilitar APIsOscar Gensollen
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azureOscar Gensollen
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJSOscar Gensollen
 
Introducción a Knockout
Introducción a KnockoutIntroducción a Knockout
Introducción a KnockoutOscar Gensollen
 
Introducción a Backbone
Introducción a BackboneIntroducción a Backbone
Introducción a BackboneOscar Gensollen
 

Más de Oscar Gensollen (6)

Usando Azure para habilitar APIs
Usando Azure para habilitar APIsUsando Azure para habilitar APIs
Usando Azure para habilitar APIs
 
Iniciando con containers en azure
Iniciando con containers en azureIniciando con containers en azure
Iniciando con containers en azure
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Introduccion a AngularJS
Introduccion a AngularJSIntroduccion a AngularJS
Introduccion a AngularJS
 
Introducción a Knockout
Introducción a KnockoutIntroducción a Knockout
Introducción a Knockout
 
Introducción a Backbone
Introducción a BackboneIntroducción a Backbone
Introducción a Backbone
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Desarrollo de Aplicaciones Web con ASP.NET MVC5

  • 1. Desarrollo de Aplicaciones Web con ASP.NET MVC 5 Módulo 1:Introducción a ASP.NET MVC 5 Oscar Gensollen Arroyo Microsoft Certified Trainer MCSD Web + SharePoint Arquitecto, Consultor en TI oscar.gensollen@formativaperu.com @oscargensollen
  • 2. Agenda  Arquitectura de ASP.NET MVC 5  Web Forms versus MVC  Creación y estructura de un proyecto MVC
  • 4.  ASP .NET MVC es… • Un nuevo tipo de proyecto para ASP .NET • Una opción de desarrollo • Mas control sobre el<html/> • Un framework mas facil de probar • No es para todos los casos  Cuál es el punto con MVC? • No es Web Forms vNext…es una alternativa más. • Flexible, muy extensible • Fundamental, parte de System.Web • Integrado, NHibernate, Brail, etc, pueden ser empleados con total libertad. Arquitectura de ASP .NET MVC 5
  • 5.  Motivaciones principales  Clara separación de intereses • Fácil testing con TDD • Permite crear aplicaciones altamente mantenibles  Extensible y conectable • Soporta el reemplazo de cualquier componente del sistema.  Permite URLs claras y HTML simple • Estructuras amigables SEO y REST  Gran integración con ASP.NET • Todos los proveedores de siempre funcionan • Membership, Session, Caching, etc. • Diseñador ASP.NET en VS2013 Arquitectura de ASP .NET MVC 5
  • 7.
  • 8. Arquitectura de ASP .NET MVC 5 Browser Controller View Model Database Web Server HTTP SQL
  • 10. Routing  Decide que controlador responde a cada petición  Basándose en la URL  Mapea una petición a una acción (método de un controlador)  Permite la creación de URLs personalizadas con mucha facilidad Arquitectura de ASP .NET MVC 5
  • 11. El patrón MVC (mas explicado)  Controlador  Responde a las peticiones http  Interactúa con el modelo  Pasa los datos a la vista  Modelo  Contiene la lógica de negocio y datos  Vista  Representa visualmente (HTML) unos datos Arquitectura de ASP .NET MVC 5
  • 12. Controladores  Manejan la lógica de presentación  Son los que reciben las peticiones, en base a una URL  Derivan la petición a una acción  Programáticamente un método Arquitectura de ASP .NET MVC 5
  • 13. Action Results  Cada acción de un controlador debe devolver un resultado que es enviado al browser  Ejemplos:  ViewResult: Devuelve una vista (html)  JsonResult: Devuelve datos en json  FileResult: Devuelve el contenido de un fichero Arquitectura de ASP .NET MVC 5
  • 14. Vistas  Las vistas reciben datos del controlador y muestran estos datos  Se implementan mediante páginas .aspx  Sin controles de servidor  Sin «code-behind» Arquitectura de ASP .NET MVC 5
  • 15. Vistas parciales  Una vista parcial es una vista que se muestra dentro de otra vista  Se implementan como controles .ascx  Sin controles runat=«server»  Sin code behind  Dan soporte para reutilización y composición Arquitectura de ASP .NET MVC 5
  • 16. Helpers  ASP.NET MVC viene con clases que ayudan a generar HTML de forma más simple  La propiedad HTML de las vistas accede al HtmlHelper que tiene métodos para generar código HTML típico (p.ej. Controles html)  La propiedad AJAX de las vistas accede al AjaxHelper que tiene métodos para generar código para interactuar con la Ajax Library Arquitectura de ASP .NET MVC 5
  • 17. Modelo  El modelo contiene toda la lógica de nuestra aplicación  Lógica de negocio  Acceso a datos  Los controladores interaccionan con el modelo para obtener datos que son pasados a las vistas  ViewModels Arquitectura de ASP .NET MVC 5
  • 18. Arquitectura de ASP .NET MVC 5 Model ControllerView •Browser hace un request /Products/ •La ruta es determinada •El controlador es activado •La acción del controlador es invocada •El controlador realiza alguna lógica •Se entrega la vista, pasándole ViewData •URLs son renderizadas, apuntando a otros controladoras
  • 19. Desarrollo Módulo 1 Creación y estructura de un proyecto MVC
  • 20.  Para crear un nuevo proyecto MVC 5 1. Diríjase al menú File – New - Project como se muestra en la figura: Creación y estructura de un proyecto MVC
  • 21. 1. En las plantillas instaladas, seleccionar Visual C# Web templates 2. Seleccione ASP. NET Web Application e indique el nombre de su aplicación. Finalmente haga clic OK. Creación y estructura de un proyecto MVC
  • 22.  Dialogo de nuevo proyecto ASP .NET MVC Creación y estructura de un proyecto MVC
  • 23.  Application Templates • Empty • Web Forms • MVC • Web API • Single Page Application • Facebook  Folders + Core References • Web Forms • MVC • Web API  Change Authentication  No Authentication  Individual User Accounts  Organizational Accounts  Windows Authentication  Testing Creación y estructura de un proyecto MVC
  • 24. Creación y estructura de un proyecto MVC
  • 25. Creación y estructura de un proyecto MVC (1)  Carpetas de primer nivel por defecto (Basado en convenciones) Directorio Propósito /App_Data Repositorio de archivos de datos que quieres leer o escribir /App_Start Contiene clases de configuración a nivel de aplicación (autenticación, bundling, global action filters, entre otros) /Content Repositorio de los archivos CSS e imágenes, y otros contenidos no dinámicos ni JavaScript /Controllers Repositorio de las clases Controller que se encargan de las solicitudes de URL /fonts Contiene fuentes para Bootstrap
  • 26. Creación y estructura de un proyecto MVC (2)  Carpetas de primer nivel por defecto (Basado en convenciones) Directorio Propósito /Models Repositorio de clases que representan y manipulan los datos y objetos de negocio /Scripts Repositorio de archivos de librería JavaScript y scripts (.js) /Views Repositorio para plantillas de archivos de UI que son responsables para renderizacion, por ejemplo de HTML
  • 28. ¿Qué hizo ASP.NET por nosotros?  Tomó las mejores prácticas de ASP  Hizo fácil el desarrollo  Siguió la senda de Visual Basic  Manejado por eventos  Expandió el entorno RAD a la Web  Orientado hacia la productividad  No exigió demasiados requerimientos de los desarrolladores  No era necesario saber HTML, ni JavaScript Web Forms versus MVC
  • 29. ¿Qué es ASP .NET MVC?  Es la implementación de la arquitectura MVC para ASP .NET  Alternativa a Web Forms  Esta construido sobre ASP .NET  Maneja el patrón «Front Controller»  Expone la web tal como es Web Forms versus MVC
  • 30. Metas de ASP .NET MVC  Permitir una clara separación de responsabilidades  Principio SRP  Altamente mantenible  Testeable por defecto  Permitir un control completo sobre el HTML  Habilitar URLs claras  Amigable con REST  Optimizado para buscadores (SEO)  Basado en convenciones  Convención sobre Configuración Web Forms versus MVC
  • 31. Web Forms Web Forms versus MVC VENTAJAS DESVENTAJAS Productividad No tiene SoC de manera natural RAD Hay que lidiar con el ViewState Programación con estado Probar páginas es difícil Controles enriquecidos Procesamiento y renderización mezclados Plataforma estable y madura Abstrae el JS y HTML (complica las cosas con AJAX)
  • 32. ASP .NET MVC VENTAJAS DESVENTAJAS Diseño claro, con una ordenada separación de intereses Carece de un «component model» para hacer más fácil el diseño Una delgada pila de ejecución Exige de mayores «skills» al desarrollador • Mejor comprensión de cómo funciona la web Control total sobre el HTML Inclusive independencia de él Total extensibilidad en todas sus partes Permite el desarrollo orientado a pruebas (TDD) Web Forms versus MVC
  • 33. ¿Por qué escoger MVC?  Por una o varias de las siguientes razones: 1. Para estudiarlo 2. Para escribir código «testeable» 3. Para escribir código bien diseñado (capas desacopladas) 4. Para entregar valor a tus clientes 5. Porque es el futuro y estará bien posicionado 6. Porque es muy flexible y puede manejar cambios 7. Porque te vuelve un mejor desarrollador 8. Porque permite control total sobre el HTML  Estilos, Accesibilidad, Compatibilidad entre navegadores, cumplimiento con estándares Web Forms versus MVC
  • 34. Escenarios que pueden presentarse ¿En cuál de ellos estas tú?  1: Te gusta Web Forms y estas feliz con ello  2: Mayormente te gusta Web Forms pero no estas del todo contento  3: Eres nuevo en ASP .NET  4: Estas liderando un equipo de desarrollo Web Forms versus MVC
  • 35. 1: Te gusta Web Forms y estas feliz con ello  Te sientes en control en ese modelo  No te preocupa demasiado el tema del viewstate  No te preocupa mucho el tema de AJAX y jQuery  Puedes aprovechar al máximo la familia de componentes visuales disponible …Quédate con Web Forms Web Forms versus MVC
  • 36. 2: Mayormente te gusta Web Forms pero no estas del todo contento  Te esfuerzas en mantener bajo control el Viewstate  Quieres introducir mas JavaScript en las páginas  Te sientes restringido por las abstracciones que el modelo impone …Considera usar ASP .NET MVC Web Forms versus MVC
  • 37. 3: Eres nuevo en ASP .NET  Y tienes experiencia suficiente en otros frameworks  Deseas un buen nivel de aprendizaje (MVC no tiene secretos) …ASP .NET MVC es para ti Web Forms versus MVC
  • 38. 4: Estas liderando un equipo de desarrollo  ASP .NET MVC «crea» las condiciones para producir software de alta calidad, más rápido  Puede tener o tener beneficio tangible para el cliente  Tiene un inmediato ROI (Retorno de inversión) para ti y tu compañía …migra tu equipo a ASP .NET MVC Web Forms versus MVC
  • 39. Momento de tomar una decisión  Si el requerimiento es «tomar control sobre el HTML», ASP .NET MVC es la respuesta  Se gasta tiempo arreglando cosas con Web Forms  Ese tiempo se puede invertir en aprender un enfoque arquitecturalmente superior  ASP .NET MVC no es perfecto, pero es superior de lejos  Aprende a tu ritmo, pero empieza! Web Forms versus MVC
  • 40. ¿Quieres más información? Tenemos cursos en línea, en diversas modalidades ¡Contáctanos!  www.formativaperu.com ventas@formativaperu.com