SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Alejandro Miguel
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaDaniel Arndt Alves
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosFranklin Parrales Bravo
 
Presentacion Diseño Web
Presentacion Diseño WebPresentacion Diseño Web
Presentacion Diseño WebNicida Malca
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosVicente Alberca
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Oswaldo Hernández
 
Frameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones WebFrameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones WebEsteban Saavedra
 

What's hot (20)

Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da Disciplina
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas Operativos
 
Herramienta Protégé para la Web Semántica
Herramienta Protégé para la Web SemánticaHerramienta Protégé para la Web Semántica
Herramienta Protégé para la Web Semántica
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
CSS - CSS3
CSS - CSS3CSS - CSS3
CSS - CSS3
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
Arquitectura Web
Arquitectura WebArquitectura Web
Arquitectura Web
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Bases de Datos No Relacionales (NoSQL)
Bases de Datos No Relacionales (NoSQL) Bases de Datos No Relacionales (NoSQL)
Bases de Datos No Relacionales (NoSQL)
 
Presentacion Diseño Web
Presentacion Diseño WebPresentacion Diseño Web
Presentacion Diseño Web
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
 
Frameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones WebFrameworks para desarrollo de aplicaciones Web
Frameworks para desarrollo de aplicaciones Web
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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...
 

More from 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
 

More from 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
 

Recently uploaded

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Recently uploaded (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................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