SlideShare una empresa de Scribd logo
1 de 27
Desarrollo de Servicios
Web I
Unidad 1: Introducción al desarrollo web
Tema 1: ASP.NET Core MVC
2
1.1. Tema 1: ASP.NET Core MVC
3
Índice
1.1Tema 1: ASP.NET Core MVC
1.1.1. ASP.NET Core
1.1.2. ASP.NET Core MVC
1.1.3. Estructura del proyecto
1.1.4. Estructura MVC en ASP.NET Core
1.1.4.1. Controllers
1.1.4.2. Vistas
1.1.4.3. ViewModel
1.1.5. Sintaxis Razor y Scaffolding
1.1.6. Transferencia de datos: ViewBag, ViewData y TempData
1.1.7. Implementando acciones (GET/POST)
1.1.8. Url de enrutamiento
4
Capacidades
• Diseña las interfaces para una aplicación Web Core.
• Crea una aplicación web aplicando el patrón MVC.
5
Introducción
• Si ha aprendido a programar en una aplicación web ¿Cómo sería
programar una aplicación web el cual se ejecuta en diferentes
plataformas?
• Es especial si esta aplicación web implementa el patrón de arquitectura
MVC.
6
1.1.1ASP.NET Core
• ASP.NET Core es un nuevo framework de código abierto y
multiplataforma para la creación de aplicaciones modernas
conectadas a Internet y basadas en la nube.
• A través de este marco, es muy posible crear aplicaciones web y
servicios más efectivos junto con back-ends de aplicaciones móviles
e incluso aplicaciones de IoT.
Fuente .- Tomado de https://hakanguzel.com/efde-
bir-ust-model-guncellenirken-alt-modeller-nasil-
eklenir-guncellenir-silinir/
7
1.1.1. ASP.NET Core
Beneficios
• Rendimiento mejorado: Su compilador optimizará todo el código
cada vez que el código se vuelva a compilar.
• Soporte de multiplataforma: Permite crear aplicaciones web que
se ejecutan en Windows, Linux y Mac. El backend usará C#.
• Menor código: Pueden optimizar fácilmente su código
escribiendo declaraciones mucho menores.
• Mantenimiento más sencillo: Es más fácil administrarla y
mantenerla de manera efectiva.
• Asistencia para el desarrollo de aplicaciones web basadas en la
nube: En caso de que tenga un negocio, es una mejor opción
crear una aplicación basada en la nube en la era moderna actual.
Fuente .- Tomado de https://hakanguzel.com/efde-
bir-ust-model-guncellenirken-alt-modeller-nasil-
eklenir-guncellenir-silinir/
8
1.1.2. ASP.NET Core MVC
• Es un marco liviano, de código abierto y
altamente comprobable que se integra a la
perfección con ASP.NET Core.
• Proporciona una forma basada en patrones para
crear sitios web dinámicos. Nos da control total
sobre el marcado, admite el desarrollo basado
en pruebas y se adhiere a los estándares web
más recientes.
Fuente .- Elaboración Propia
9
1.1.2 ASP.NET Core MVC
• Con ASP.NET Core, usamos el mismo modelo de
programación unificado para crear aplicaciones
web MVC y Web API.
• En ambos casos, el controlador que creamos
hereda de la misma clase base de controlador y
devuelve IActionResult.
• IActionResult es una interfaz y tiene varias
implementaciones: ViewResult y JsonResult
Fuente .- Elaboración Propia
10
1.1.3. Estructura del proyecto
• Las dependencias se almacenan los dlls de la aplicación.
• Los archivos Program.cs y LaunchSettings.json configurarán el
servidor web y la canalización de ASP.NET Core.
• Los directorios Models, Views y Controllers contienen los
componentes de la arquitectura MVC.
• El directorio wwwroot contiene los archivos estáticos como CSS,
Javascript e imágenes.
• El archivo appsettings.json se usa para almacenar información
como cadenas de conexión o configuraciones específicas de la
aplicación y estas se almacenan en el formato JSON.
Fuente .- Elaboración Propia
11
1.1.4. Estructura MVC en ASP.NET Core
• El usuario interactúa con la interfaz de usuario: pulsa un botón,
enlace, etc. El controlador recibe la notificación de la acción
solicitada por el usuario a través de un gestor de eventos
(handler) o callback.
• El controlador accede manipulando al modelo, de acuerdo a la
acción solicitada por el usuario.
• El modelo retorna la información solicitada por el controlador.
• El controlador envía a la vista los datos actualizados. La vista
obtiene sus datos del modelo para generar la interfaz apropiada
para el usuario donde se refleja los cambios en el modelo. En
algunas implementaciones la vista no tiene acceso directo al
modelo, dejando que el controlador envíe los datos del modelo a
la vista.
• La interfaz de usuario espera nuevas interacciones del usuario,
comenzando el ciclo nuevamente.
Fuente .- Elaboración Propia
12
1.1.4.1 Controllers
• En la aplicación ASP.NET Core MVC, la clase de controlador debe
heredarse de la clase base de controlador.
• Cuando el cliente envía una solicitud al servidor, esa solicitud
pasa primero por el canal de procesamiento de solicitudes.
• Una vez que la solicitud pasa la canalización de procesamiento de
solicitudes, llegará al controlador. Dentro del controlador, hay
muchos métodos (llamados ActionResult) que realmente
manejan esa solicitud HTTP entrante.
• El ActionResult dentro del controlador ejecuta la lógica comercial
y prepara la respuesta que se envía al cliente que inicialmente
realizó la solicitud.
Fuente .- Elaboración Propia
13
Métodos y selectores del Action
• Una acción de controlador devuelve algo llamado resultado de acción. Un
resultado de acción es lo que devuelve una acción del controlador en
respuesta a una solicitud del explorador.
• ASP.NET admite varios tipos de resultados de acciones:
Acción Resultado
ViewResult Representa HTML y marcado
RedirectResult Representa una redirección a una nueva dirección URL
JsonResult Representa un resultado de notación de objetos JavaScript que se
puede usar en una aplicación AJAX
ContentResult Representa un resultado de texto
FileContentResult Representa un archivo descargable (con el contenido binario)
FilePathResult Representa un archivo descargable (con una ruta de acceso)
14
1.1.4.2 Vistas
• La Vista es la interfaz con la que el usuario final puede interactuar.
Son plantillas HTML con marcado Razor incorporado que generan
contenido que se envía al cliente.
• En la aplicación ASP.NET Core MVC, una vista es un archivo con la
extensión ".cshtml" (para lenguaje C#).
• Las vistas en ASP.NET Core MVC generalmente se devuelven
desde el método de acción del controlador. Usamos el tipo de
devolución ViewResult para devolver una vista desde un método
de acción.
Fuente .- Elaboración Propia
15
1.1.4.3 ViewModel
• Un ViewModel es un modelo que contiene más
de un modelo de datos necesarios para una vista
en particular.
• La combinación de varios objetos de modelo en
un solo objeto de modelo de vista nos
proporciona una mejor optimización.
Fuente .- Elaboración Propia
16
1.1.5. Sintaxis Razor y Scaffolding
• La sintaxis Razor proporciona una sintaxis de programación
para escribir código en páginas web donde el código se
incrusta en formato HTML.
• El código Razor se ejecuta en el servidor antes que la página
se envíe al explorador. Este código genera formato HTML y,
lo envía al explorador junto con cualquier código HTML
estático que contenga la página.
Fuente .- Tomado de https://hakanguzel.com/efde-
bir-ust-model-guncellenirken-alt-modeller-nasil-
eklenir-guncellenir-silinir/
17
1.1.5. Sintaxis Razor y Scaffolding
• Scaffolding es un método para construir aplicaciones
basadas en bases de datos.
• En esta técnica, el programador escribe una
especificación que describe cómo debe ser usada la
base de datos. Luego el compilador utiliza esa
especificación para generar el código que la aplicación
usará para crear, leer, actualizar y eliminar registros de
la base de datos.
Fuente .- Tomado de https://hakanguzel.com/efde-
bir-ust-model-guncellenirken-alt-modeller-nasil-
eklenir-guncellenir-silinir/
18
1.1.6. Transferencia de datos: ViewBag, ViewData y
TempData
• Es un contenedor construido alrededor de ViewData.
• Propiedad dinámica y utiliza las características dinámicas de C #
4.0.
• Durante la recuperación, no es necesario utilizar datos de
conversión de tipos.
• Se utiliza para pasar valor de Controller a View. Está disponible
solo para Solicitud actual. Se destruirá en la redirección.
Fuente .- Tomado de https://hakanguzel.com/efde-
bir-ust-model-guncellenirken-alt-modeller-nasil-
eklenir-guncellenir-silinir/
19
Transferencia de datos: ViewData
• Es un objeto de diccionario, es decir, definidos por clave y valore donde la
clave es una cadena, mientras que el valor es un objeto.
• Durante la recuperación, los datos deben ser convertidos en tipo a su tipo
original, ya que los datos se almacenan como objetos.
• Se utiliza para pasar valor de Controller a View. Está disponible solo para
Solicitud actual. Se destruirá en la redirección.
Fuente .- Tomado de https://hakanguzel.com/efde-
bir-ust-model-guncellenirken-alt-modeller-nasil-
eklenir-guncellenir-silinir/
20
Transferencia de datos: TempData
• Es un objeto de diccionario, que almacena clave y valor, la clave es una cadena, mientras que el valor es un
objeto.
• Durante la recuperación, los datos deben ser convertidos en tipo a su tipo original, ya que los datos se
almacenan como objeto.
• Se puede utilizar para pasar valor de Controlador a Vista y también de Controlador a Controlador.
• Está disponible para solicitudes actuales y posteriores. No se destruirá en la redirección.
21
1.1.7. Implementando acciones (GET/POST)
• El método Get (HttpGet) envía datos mediante una cadena de consulta.
• Los datos se adjuntan a la URL y son visibles para todos los usuarios. Sin embargo, no es seguro, pero es rápido.
• Se usa principalmente cuando no está publicando datos confidenciales en el servidor como nombre de usuario,
contraseña, información de tarjeta de crédito, etc.
22
• El método Post (HttpPost) oculta información de la URL y no vincula datos a la URL. Es más seguro que el método
HttpGet pero es más lento. Solo es útil cuando está pasando información confidencial al servidor.
• Más segura pero más lento que HttpGet.
• No tiene ninguna restricción para pasar datos y puede publicar variables de formulario ilimitadas.
• Se utiliza cuando se envían datos críticos.
1.1.7. Implementando acciones (GET/POST)
23
1.1.8. URL de Enrutamiento
• Al crear una aplicación ASP.NET MVC se define una tabla de enrutamiento que se encarga de decidir que
controlador gestiona cada petición Web basándose en la URL de dicha petición.
• En cada petición URL no se asigna un archivo físico del disco, sino que se asigna una acción de un controlador
(más un parámetro), que nos mostrará una vista específica.
Fuente .- Elaboración Propia
24
Conclusiones
• ASP.NET Core es un nuevo framework de código abierto y multiplataforma para la creación de aplicaciones
modernas conectadas a Internet y basadas en la nube. A través de este marco, es muy posible crear aplicaciones
web y servicios más efectivos junto con back-ends de aplicaciones móviles e incluso aplicaciones de IoT.
• Con ASP.NET Core, usamos el mismo modelo de programación unificado para crear aplicaciones web MVC y Web
API. En ambos casos, el controlador que creamos hereda de la misma clase base de controlador y devuelve
IActionResult. IActionResult es una interfaz y tiene varias implementaciones: ViewResult y JsonResult
• En la aplicación ASP.NET Core MVC, la clase de controlador debe heredarse de la clase base de controlador.
Cuando el cliente envía una solicitud al servidor, esa solicitud pasa primero por el canal de procesamiento de
solicitudes. Una vez que la solicitud pasa la canalización de procesamiento de solicitudes, llegará al controlador.
Dentro del controlador, hay muchos métodos (llamados ActionResult) que realmente manejan esa solicitud HTTP
entrante.
• La estructura Vista, es el responsable del uso de la información de la cual dispone para producir una interfaz de
presentación: pagina HTML.
25
Conclusiones
• ViewData, ViewBag y TempData se utilizan para transferir datos y objetos entre Controller a View o de un
Controller a otro en ASP.Net MVC.
• HttpGet y HttpPost, ambos son el método para publicar datos del cliente o datos del formulario en el servidor.
HTTP es un protocolo de transferencia de hipertexto que está diseñado para enviar y recibir datos entre el cliente
y el servidor mediante páginas web. HTTP tiene dos métodos que se utilizan para publicar datos desde páginas
web al servidor. Estos dos métodos son HttpGet y HttpPost.
• Razor proporciona una sintaxis de programación para escribir código en páginas web donde el código se incrusta
en formato HTML. Scaffolding es un método para construir aplicaciones basadas en bases de datos.
• Al crear una aplicación ASP.Net MVC se define una tabla de enrutamiento que se encarga de decidir que
controlador gestiona cada petición Web basándose en la URL de dicha petición.
• En cada petición URL no se asigna un archivo físico del disco, sino que se asigna una acción de un controlador
(más un parámetro), que nos mostrará una vista específica.
26
Referencias bibliográficas
• JetBrains (2021) Primeros pasos con ASP.NET Core y gRPC. Recuperado de https://blog-jetbrains-
com.translate.goog/dotnet/2021/07/19/getting-started-with-asp-net-core-and-
grpc/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc
• Microsoft (2022) ASP.NET. Recuperado de http://www.asp.net
• Santi Macias (2021) NET5: Introducción a gRPC para implementar servicios en C# y llamarlo con BloomRPC.
Recuperado de https://enmilocalfunciona.io/net5-implementacion-de-servicios-grpc/
• Udemy (2022) C# Asp.Net Core 2.1 con Angular -Desarrolla SPA (Full Stack). Recuperado de
https://www.udemy.com/course/c-aspnet-core-con-angular-typescript-desarrolla-una-spa/
www.cibertec.edu.pe
SEDE INDEPENDENCIA
Av. Carlos Izaguirre 233
Independencia – Lima
Teléfono: 633-5555
SEDE BREÑA
Av. Brasil 714 – 792
(CC La Rambla – Piso 3)
Breña – Lima
Teléfono: 633-5555
SEDE TRUJILLO
Calle Borgoño 361
Trujillo
Teléfono: (044) 60-2000
SEDE SAN JUAN DE LURIGANCHO
Av. Próceres de la Independencia 3023-3043
San Juan de Lurigancho – Lima
Teléfono: 633-5555
SEDE LIMA CENTRO
Av. Uruguay 514
Cercado – Lima
Teléfono: 419-2900
SEDE BELLAVISTA
Av. Mariscal Oscar R. Benavides 3866 – 4070
(CC Mall Aventura Plaza)
Bellavista – Callao
Teléfono: 633-5555
SEDE AREQUIPA
Av. Porongoche 500
(CC Mall Aventura Plaza)
Paucarpata - Arequipa
Teléfono: (054) 60-3535
GRACIAS

Más contenido relacionado

La actualidad más candente

8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacciónDCU_MPIUA
 
Documentación de Software
Documentación de Software Documentación de Software
Documentación de Software waqoak
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
Creando un servicio SOAP en Java con NetBeans
Creando un servicio SOAP en Java con NetBeansCreando un servicio SOAP en Java con NetBeans
Creando un servicio SOAP en Java con NetBeansDavid Fernández Puentes
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clasesRamiro Estigarribia Canese
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Manual de microsoft sql server full transact sql
Manual de microsoft sql server   full transact sqlManual de microsoft sql server   full transact sql
Manual de microsoft sql server full transact sqlRene Aguerrero
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOGuillermo Hernandez Miranda
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerMarcos Omar Cruz Ortrega
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 

La actualidad más candente (20)

8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción8.1.- IPO. Estilos y paradigmas de interacción
8.1.- IPO. Estilos y paradigmas de interacción
 
Documentación de Software
Documentación de Software Documentación de Software
Documentación de Software
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
Creando un servicio SOAP en Java con NetBeans
Creando un servicio SOAP en Java con NetBeansCreando un servicio SOAP en Java con NetBeans
Creando un servicio SOAP en Java con NetBeans
 
7.modelado de los requerimientos escenarios y clases
7.modelado de los requerimientos  escenarios y clases7.modelado de los requerimientos  escenarios y clases
7.modelado de los requerimientos escenarios y clases
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
Requisitos
RequisitosRequisitos
Requisitos
 
Manual de microsoft sql server full transact sql
Manual de microsoft sql server   full transact sqlManual de microsoft sql server   full transact sql
Manual de microsoft sql server full transact sql
 
Usabilidad web
Usabilidad webUsabilidad web
Usabilidad web
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTOUnidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
Unidad 3 TÉCNICAS PARA EL ANALISIS DE REQUERIMIENTO
 
Ejemplo dfd
Ejemplo dfdEjemplo dfd
Ejemplo dfd
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson Penker
 
Windows.forms.ejercicios
Windows.forms.ejerciciosWindows.forms.ejercicios
Windows.forms.ejercicios
 
Uso de modelos en capas
Uso de modelos en capasUso de modelos en capas
Uso de modelos en capas
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 

Similar a 5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx

MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)MVC & ASP.NET (Spanish)
MVC & ASP.NET (Spanish)Senior Dev
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Oscar Gensollen
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsPlain Concepts
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos Luis Fernando Aguas Bucheli
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxDiseoGrfico14
 
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
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Javaalvaro alcocer sotil
 
Paginas web diseño donamico.pptx
Paginas web diseño donamico.pptxPaginas web diseño donamico.pptx
Paginas web diseño donamico.pptxROBERTOAGUILLON3
 

Similar a 5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx (20)

ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
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-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
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Strust
StrustStrust
Strust
 
ASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard TomàsASP.NET MVC Core by Eduard Tomàs
ASP.NET MVC Core by Eduard Tomàs
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Modelo mvc
Modelo mvcModelo mvc
Modelo mvc
 
Spring Mvc Final
Spring Mvc FinalSpring Mvc Final
Spring Mvc Final
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptx
 
Introducción a ASP.NET MVC
Introducción a ASP.NET MVCIntroducción a ASP.NET MVC
Introducción a ASP.NET MVC
 
ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)ASP.NET 5 & MVC 6 (RC1)
ASP.NET 5 & MVC 6 (RC1)
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 
Paginas web diseño donamico.pptx
Paginas web diseño donamico.pptxPaginas web diseño donamico.pptx
Paginas web diseño donamico.pptx
 

5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptx

  • 1. Desarrollo de Servicios Web I Unidad 1: Introducción al desarrollo web Tema 1: ASP.NET Core MVC
  • 2. 2 1.1. Tema 1: ASP.NET Core MVC
  • 3. 3 Índice 1.1Tema 1: ASP.NET Core MVC 1.1.1. ASP.NET Core 1.1.2. ASP.NET Core MVC 1.1.3. Estructura del proyecto 1.1.4. Estructura MVC en ASP.NET Core 1.1.4.1. Controllers 1.1.4.2. Vistas 1.1.4.3. ViewModel 1.1.5. Sintaxis Razor y Scaffolding 1.1.6. Transferencia de datos: ViewBag, ViewData y TempData 1.1.7. Implementando acciones (GET/POST) 1.1.8. Url de enrutamiento
  • 4. 4 Capacidades • Diseña las interfaces para una aplicación Web Core. • Crea una aplicación web aplicando el patrón MVC.
  • 5. 5 Introducción • Si ha aprendido a programar en una aplicación web ¿Cómo sería programar una aplicación web el cual se ejecuta en diferentes plataformas? • Es especial si esta aplicación web implementa el patrón de arquitectura MVC.
  • 6. 6 1.1.1ASP.NET Core • ASP.NET Core es un nuevo framework de código abierto y multiplataforma para la creación de aplicaciones modernas conectadas a Internet y basadas en la nube. • A través de este marco, es muy posible crear aplicaciones web y servicios más efectivos junto con back-ends de aplicaciones móviles e incluso aplicaciones de IoT. Fuente .- Tomado de https://hakanguzel.com/efde- bir-ust-model-guncellenirken-alt-modeller-nasil- eklenir-guncellenir-silinir/
  • 7. 7 1.1.1. ASP.NET Core Beneficios • Rendimiento mejorado: Su compilador optimizará todo el código cada vez que el código se vuelva a compilar. • Soporte de multiplataforma: Permite crear aplicaciones web que se ejecutan en Windows, Linux y Mac. El backend usará C#. • Menor código: Pueden optimizar fácilmente su código escribiendo declaraciones mucho menores. • Mantenimiento más sencillo: Es más fácil administrarla y mantenerla de manera efectiva. • Asistencia para el desarrollo de aplicaciones web basadas en la nube: En caso de que tenga un negocio, es una mejor opción crear una aplicación basada en la nube en la era moderna actual. Fuente .- Tomado de https://hakanguzel.com/efde- bir-ust-model-guncellenirken-alt-modeller-nasil- eklenir-guncellenir-silinir/
  • 8. 8 1.1.2. ASP.NET Core MVC • Es un marco liviano, de código abierto y altamente comprobable que se integra a la perfección con ASP.NET Core. • Proporciona una forma basada en patrones para crear sitios web dinámicos. Nos da control total sobre el marcado, admite el desarrollo basado en pruebas y se adhiere a los estándares web más recientes. Fuente .- Elaboración Propia
  • 9. 9 1.1.2 ASP.NET Core MVC • Con ASP.NET Core, usamos el mismo modelo de programación unificado para crear aplicaciones web MVC y Web API. • En ambos casos, el controlador que creamos hereda de la misma clase base de controlador y devuelve IActionResult. • IActionResult es una interfaz y tiene varias implementaciones: ViewResult y JsonResult Fuente .- Elaboración Propia
  • 10. 10 1.1.3. Estructura del proyecto • Las dependencias se almacenan los dlls de la aplicación. • Los archivos Program.cs y LaunchSettings.json configurarán el servidor web y la canalización de ASP.NET Core. • Los directorios Models, Views y Controllers contienen los componentes de la arquitectura MVC. • El directorio wwwroot contiene los archivos estáticos como CSS, Javascript e imágenes. • El archivo appsettings.json se usa para almacenar información como cadenas de conexión o configuraciones específicas de la aplicación y estas se almacenan en el formato JSON. Fuente .- Elaboración Propia
  • 11. 11 1.1.4. Estructura MVC en ASP.NET Core • El usuario interactúa con la interfaz de usuario: pulsa un botón, enlace, etc. El controlador recibe la notificación de la acción solicitada por el usuario a través de un gestor de eventos (handler) o callback. • El controlador accede manipulando al modelo, de acuerdo a la acción solicitada por el usuario. • El modelo retorna la información solicitada por el controlador. • El controlador envía a la vista los datos actualizados. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo. En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista. • La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente. Fuente .- Elaboración Propia
  • 12. 12 1.1.4.1 Controllers • En la aplicación ASP.NET Core MVC, la clase de controlador debe heredarse de la clase base de controlador. • Cuando el cliente envía una solicitud al servidor, esa solicitud pasa primero por el canal de procesamiento de solicitudes. • Una vez que la solicitud pasa la canalización de procesamiento de solicitudes, llegará al controlador. Dentro del controlador, hay muchos métodos (llamados ActionResult) que realmente manejan esa solicitud HTTP entrante. • El ActionResult dentro del controlador ejecuta la lógica comercial y prepara la respuesta que se envía al cliente que inicialmente realizó la solicitud. Fuente .- Elaboración Propia
  • 13. 13 Métodos y selectores del Action • Una acción de controlador devuelve algo llamado resultado de acción. Un resultado de acción es lo que devuelve una acción del controlador en respuesta a una solicitud del explorador. • ASP.NET admite varios tipos de resultados de acciones: Acción Resultado ViewResult Representa HTML y marcado RedirectResult Representa una redirección a una nueva dirección URL JsonResult Representa un resultado de notación de objetos JavaScript que se puede usar en una aplicación AJAX ContentResult Representa un resultado de texto FileContentResult Representa un archivo descargable (con el contenido binario) FilePathResult Representa un archivo descargable (con una ruta de acceso)
  • 14. 14 1.1.4.2 Vistas • La Vista es la interfaz con la que el usuario final puede interactuar. Son plantillas HTML con marcado Razor incorporado que generan contenido que se envía al cliente. • En la aplicación ASP.NET Core MVC, una vista es un archivo con la extensión ".cshtml" (para lenguaje C#). • Las vistas en ASP.NET Core MVC generalmente se devuelven desde el método de acción del controlador. Usamos el tipo de devolución ViewResult para devolver una vista desde un método de acción. Fuente .- Elaboración Propia
  • 15. 15 1.1.4.3 ViewModel • Un ViewModel es un modelo que contiene más de un modelo de datos necesarios para una vista en particular. • La combinación de varios objetos de modelo en un solo objeto de modelo de vista nos proporciona una mejor optimización. Fuente .- Elaboración Propia
  • 16. 16 1.1.5. Sintaxis Razor y Scaffolding • La sintaxis Razor proporciona una sintaxis de programación para escribir código en páginas web donde el código se incrusta en formato HTML. • El código Razor se ejecuta en el servidor antes que la página se envíe al explorador. Este código genera formato HTML y, lo envía al explorador junto con cualquier código HTML estático que contenga la página. Fuente .- Tomado de https://hakanguzel.com/efde- bir-ust-model-guncellenirken-alt-modeller-nasil- eklenir-guncellenir-silinir/
  • 17. 17 1.1.5. Sintaxis Razor y Scaffolding • Scaffolding es un método para construir aplicaciones basadas en bases de datos. • En esta técnica, el programador escribe una especificación que describe cómo debe ser usada la base de datos. Luego el compilador utiliza esa especificación para generar el código que la aplicación usará para crear, leer, actualizar y eliminar registros de la base de datos. Fuente .- Tomado de https://hakanguzel.com/efde- bir-ust-model-guncellenirken-alt-modeller-nasil- eklenir-guncellenir-silinir/
  • 18. 18 1.1.6. Transferencia de datos: ViewBag, ViewData y TempData • Es un contenedor construido alrededor de ViewData. • Propiedad dinámica y utiliza las características dinámicas de C # 4.0. • Durante la recuperación, no es necesario utilizar datos de conversión de tipos. • Se utiliza para pasar valor de Controller a View. Está disponible solo para Solicitud actual. Se destruirá en la redirección. Fuente .- Tomado de https://hakanguzel.com/efde- bir-ust-model-guncellenirken-alt-modeller-nasil- eklenir-guncellenir-silinir/
  • 19. 19 Transferencia de datos: ViewData • Es un objeto de diccionario, es decir, definidos por clave y valore donde la clave es una cadena, mientras que el valor es un objeto. • Durante la recuperación, los datos deben ser convertidos en tipo a su tipo original, ya que los datos se almacenan como objetos. • Se utiliza para pasar valor de Controller a View. Está disponible solo para Solicitud actual. Se destruirá en la redirección. Fuente .- Tomado de https://hakanguzel.com/efde- bir-ust-model-guncellenirken-alt-modeller-nasil- eklenir-guncellenir-silinir/
  • 20. 20 Transferencia de datos: TempData • Es un objeto de diccionario, que almacena clave y valor, la clave es una cadena, mientras que el valor es un objeto. • Durante la recuperación, los datos deben ser convertidos en tipo a su tipo original, ya que los datos se almacenan como objeto. • Se puede utilizar para pasar valor de Controlador a Vista y también de Controlador a Controlador. • Está disponible para solicitudes actuales y posteriores. No se destruirá en la redirección.
  • 21. 21 1.1.7. Implementando acciones (GET/POST) • El método Get (HttpGet) envía datos mediante una cadena de consulta. • Los datos se adjuntan a la URL y son visibles para todos los usuarios. Sin embargo, no es seguro, pero es rápido. • Se usa principalmente cuando no está publicando datos confidenciales en el servidor como nombre de usuario, contraseña, información de tarjeta de crédito, etc.
  • 22. 22 • El método Post (HttpPost) oculta información de la URL y no vincula datos a la URL. Es más seguro que el método HttpGet pero es más lento. Solo es útil cuando está pasando información confidencial al servidor. • Más segura pero más lento que HttpGet. • No tiene ninguna restricción para pasar datos y puede publicar variables de formulario ilimitadas. • Se utiliza cuando se envían datos críticos. 1.1.7. Implementando acciones (GET/POST)
  • 23. 23 1.1.8. URL de Enrutamiento • Al crear una aplicación ASP.NET MVC se define una tabla de enrutamiento que se encarga de decidir que controlador gestiona cada petición Web basándose en la URL de dicha petición. • En cada petición URL no se asigna un archivo físico del disco, sino que se asigna una acción de un controlador (más un parámetro), que nos mostrará una vista específica. Fuente .- Elaboración Propia
  • 24. 24 Conclusiones • ASP.NET Core es un nuevo framework de código abierto y multiplataforma para la creación de aplicaciones modernas conectadas a Internet y basadas en la nube. A través de este marco, es muy posible crear aplicaciones web y servicios más efectivos junto con back-ends de aplicaciones móviles e incluso aplicaciones de IoT. • Con ASP.NET Core, usamos el mismo modelo de programación unificado para crear aplicaciones web MVC y Web API. En ambos casos, el controlador que creamos hereda de la misma clase base de controlador y devuelve IActionResult. IActionResult es una interfaz y tiene varias implementaciones: ViewResult y JsonResult • En la aplicación ASP.NET Core MVC, la clase de controlador debe heredarse de la clase base de controlador. Cuando el cliente envía una solicitud al servidor, esa solicitud pasa primero por el canal de procesamiento de solicitudes. Una vez que la solicitud pasa la canalización de procesamiento de solicitudes, llegará al controlador. Dentro del controlador, hay muchos métodos (llamados ActionResult) que realmente manejan esa solicitud HTTP entrante. • La estructura Vista, es el responsable del uso de la información de la cual dispone para producir una interfaz de presentación: pagina HTML.
  • 25. 25 Conclusiones • ViewData, ViewBag y TempData se utilizan para transferir datos y objetos entre Controller a View o de un Controller a otro en ASP.Net MVC. • HttpGet y HttpPost, ambos son el método para publicar datos del cliente o datos del formulario en el servidor. HTTP es un protocolo de transferencia de hipertexto que está diseñado para enviar y recibir datos entre el cliente y el servidor mediante páginas web. HTTP tiene dos métodos que se utilizan para publicar datos desde páginas web al servidor. Estos dos métodos son HttpGet y HttpPost. • Razor proporciona una sintaxis de programación para escribir código en páginas web donde el código se incrusta en formato HTML. Scaffolding es un método para construir aplicaciones basadas en bases de datos. • Al crear una aplicación ASP.Net MVC se define una tabla de enrutamiento que se encarga de decidir que controlador gestiona cada petición Web basándose en la URL de dicha petición. • En cada petición URL no se asigna un archivo físico del disco, sino que se asigna una acción de un controlador (más un parámetro), que nos mostrará una vista específica.
  • 26. 26 Referencias bibliográficas • JetBrains (2021) Primeros pasos con ASP.NET Core y gRPC. Recuperado de https://blog-jetbrains- com.translate.goog/dotnet/2021/07/19/getting-started-with-asp-net-core-and- grpc/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc • Microsoft (2022) ASP.NET. Recuperado de http://www.asp.net • Santi Macias (2021) NET5: Introducción a gRPC para implementar servicios en C# y llamarlo con BloomRPC. Recuperado de https://enmilocalfunciona.io/net5-implementacion-de-servicios-grpc/ • Udemy (2022) C# Asp.Net Core 2.1 con Angular -Desarrolla SPA (Full Stack). Recuperado de https://www.udemy.com/course/c-aspnet-core-con-angular-typescript-desarrolla-una-spa/
  • 27. www.cibertec.edu.pe SEDE INDEPENDENCIA Av. Carlos Izaguirre 233 Independencia – Lima Teléfono: 633-5555 SEDE BREÑA Av. Brasil 714 – 792 (CC La Rambla – Piso 3) Breña – Lima Teléfono: 633-5555 SEDE TRUJILLO Calle Borgoño 361 Trujillo Teléfono: (044) 60-2000 SEDE SAN JUAN DE LURIGANCHO Av. Próceres de la Independencia 3023-3043 San Juan de Lurigancho – Lima Teléfono: 633-5555 SEDE LIMA CENTRO Av. Uruguay 514 Cercado – Lima Teléfono: 419-2900 SEDE BELLAVISTA Av. Mariscal Oscar R. Benavides 3866 – 4070 (CC Mall Aventura Plaza) Bellavista – Callao Teléfono: 633-5555 SEDE AREQUIPA Av. Porongoche 500 (CC Mall Aventura Plaza) Paucarpata - Arequipa Teléfono: (054) 60-3535 GRACIAS