Está en la página 1de 17

ASP.NET Core 3.

0
MVC en C#
Juan Carlos Arroyave Arteaga
ASP.NET Core 3.0 MVC en C#
Al finalizar el curso el alumno tendrá las siguientes competencias
 
• Podrá crear soluciones en Visual Studio 2017 – 2019 para aplicaciones web con ASP
NET Core MVC
• Manejará la autenticación de usuarios con roles, permisos y accesos a funciones de
acuerdo con el rol
• Tendrá los conceptos de ASP.NET Core para desarrollar aplicaciones web comerciales
• Podrá desarrollar los métodos de control y las plantillas no sólo del lado del servidor
y sino también del lado del cliente, utilizando C#.
• Aprenderá a implementar el patrón de diseño MVC con las nuevas características de
las páginas y áreas que proporciona el framework Core
1. Introducción
¿Qué es ASP.NET Core?
Es un nuevo framework de código abierto y multiplataforma para la creación de
aplicaciones modernas conectadas a Internet, como aplicaciones web y APIs Web.

ASP.NET Core puede ejecutarse sobre el framework .NET completo o sobre .NET
Core.

.NET Core es una nueva versión modular del framework .NET que permite el uso
multiplataforma de .NET. Es un subconjunto del framework .NET por lo que no
tiene toda la funcionalidad del framework completo, y puede emplearse para
creación de aplicaciones web, de escritorio y móviles.
1. Introducción
¿Qué es ASP.NET Core?
• 1. .NET Core es nuevo, y escrito prácticamente desde cero
• 2. .NET Core es open source
• 3. .NET Core es multiplataforma
• 4. .NET Core es modular
• 5. .NET Core puede realizar desde línea de comandos las principales
operaciones
• 6. .NET Core puede distribuirse de varias formas
• 7. .NET Core no soporta todos los modelos de aplicación ni todos los
frameworks
Introducción
¿Que es MVC (Model-View-Controller)?

• El MVC o Modelo-Vista-Controlador es un patrón de arquitectura de software que,


utilizando 3 componentes (Vistas, Modelos y Controladores) separa la lógica de la
aplicación de la lógica de la vista en una aplicación.
• Fue descrito por primera vez1979 por Trygve Reenskaug, de los laboratorios de Xerox

• El Modelo que contiene una representación de los datos que maneja el sistema, su
lógica de negocio, y sus mecanismos de persistencia.
• La Vista, o interfaz de usuario, que compone la información que se envía al cliente y
los mecanismos interacción con éste.
• El Controlador, que actúa como intermediario entre el Modelo y la Vista, gestionando
el flujo de información entre ellos y las transformaciones para adaptar los datos a las
necesidades de cada uno.
2. Controladores en ASP NET Core
• Los controladores MVC son responsables de responder a las solicitudes
realizadas en un sitio Web de ASP.NET MVC. Cada solicitud del explorador se
asigna a un controlador determinado. Por ejemplo, imagine que escriba la
dirección URL siguiente en la barra de direcciones del explorador:

• http://localhost/Product/Index/3

• En este caso, se invoca un controlador llamado ProductController. Product es


responsable de generar la respuesta a la solicitud del explorador. Por ejemplo,
el controlador puede devolver una vista concreta al explorador o el
controlador podría redireccionar al usuario a otro controlador.
2.1Enrutamiento en ASP NET Core
• En webforms para ver un elemento podríamos tener un URL como la siguiente:

MiPrimeraAplicacionMVC/mostrarelemento.aspx?id=U1
https://localhost:44315/Test/Index/?Nombre=PETI
https://localhost:44315/Test/Index/?Nombre=Guillermo&Apellido=Puertas

• Con MVC podríamos tener una ruta como la siguiente

MiPrimeraAplicacionMVC/elemento/mostrar/U1

• La ruta en mvc esta obedeciendo el patrón siguiente:

{Controlador} / {Acción} / {Id}


2.1Enrutamiento en ASP NET Core
• Pasar un parámetro a través de la Url de manera implícita:
MiPrimeraAplicacionMVC/elemento/mostrar/Guillo&Puertas

• Pasar un parámetro de manera explicita:


MiPrimeraAplicacionMVC/elemento/mostrar/?Nombre=Guillo

• Pasar varios parámetros de a través de la Url:


MiPrimeraAplicacionMVC/elemento/mostrar/?Id=U1&nomre=Juan
2.2Métodos en ASP NET Core
• HttpGet
• El método GET solicita una representación de un recurso específico. Las peticiones que usan el método GET
sólo deben recuperar datos.

• HttpPost
• El método POST se utiliza para enviar una entidad a un recurso en específico, causando a menudo un cambio
en el estado o efectos secundarios en el servidor.

• HttpPut
• El modo PUT reemplaza todas las representaciones actuales del recurso de destino con la carga útil de la
petición.

• HttpDelete
• El método DELETE borra un recurso en específico.
2.3Pasar datos entre Controlador y
Vista
• ViewData

• El ViewData es utilizado para pasar datos del controller a la vista, ya que su duración es solo durante el actual request, una vez que
este termina, este dato se abra borrado, de ahi que su uso es solo temporal, comúnmente es usado para mandar mensajes de error a
la vista, otro dato importante en cuanto su uso, es que lo utilizar como si fuera un arreglo.

• ViewBag

• El ViewBag se utiliza, al igual que el ViewData, para pasar datos del controller a la vista, su duración también es solo durante el
request actual, y una vez terminado este, el dato es borrado, a diferencia del ViewData, este se utiliza para pasar objetos, es decir se
utiliza directamente y no se necesita tratar como arreglo.

• TempData

• Su especial cualidad es, la duración hasta el siguiente request, es decir que si estamos en una acción (dentro del controller), podemos
guardar el dato y utilizarlo en el siguiente request; al igual que el ViewData, este se utiliza como un vector.

• Session

• El sesión a diferencia de los 3 anteriores, persiste por mas tiempo, este no muere en los siguientes request’s, al igual de los anteriores,
se puede guardar cualquier dato y este se almacena
2.3Pasar datos entre Controlador y
Vista
• ViewData • TempData
• En el controlador:
public ActionResult Index() • En el controlador:
{ public ActionResult Index()
ViewData["SomeProperty"] = "Hello"; {
return View(); TempData["SomeProperty"] = "Hello";
}
return View();
• En la vista: }
@ViewData["SomeProperty"]
• En la vista:
• ViewBag @TempData["SomeProperty"]
• En el controlador:
public ActionResult Index()
{ • Session
ViewBag.SomeProperty = "Hello";
return View(); • HttpContext.Session.SetString("sessionString",
} "MiCadena");
• En la vista: • HttpContext.Session.GetString("sessionString");
@ViewBag.SomeProperty
3. Creando la base de datos en
el servidor
• Instalación de SQL Server => instalación desatendida “ConfigurationFile.ini”

Setup.exe /Q /Action=install /ConfigurationFile=ConfigurationFile.INI /iacceptsqlserverlicenseterms


/SQLSYSADMINACCOUNTS=“Dominio/Usuario“

• Instalación SQL Server Managment Studio – Explorador de objetos SQL Server

• Cadena de conexión => web.config / app.config / appsetting.json

"DefaultConnection": "Data Source=JUAN-VIRTUAL\\SQLEXPRESS;Initial catalog=Empleados;Persist


Security Info=True;User ID=sa;Password=SQLDE_1"

"Connectionlocaldb": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebApplication1-
53bc9b9d-9d6a-45d4-8429-2a2761773502;Trusted_Connection=True;MultipleActiveResultSets=true"
3. Creando la base de datos en
el servidor
• Recomendación, utilizar autenticación mixta:
Autenticación Windows (con credenciales del usuario del sistema)
Autenticación SQL Server (credenciales de un perfil especifico de la base de
datos)

• El usuario “sa” es un usuario del SQL, la contraseña asignada permite


la administración total de la base de datos.
3. Creando la base de datos en
el servidor
• Windows Management Framework 3.0 (PowerShell 3.0)
https://www.microsoft.com/en-us/download/details.aspx?id=34595

• Migraciones
• Consola de administrador de Nuget
• Add-Migration Migracion1
• Update-database
• Remove-Migration Migracion1
4. Creando una vista - Helpers
• Los Helpers son funciones las cuales nos regresan una cadena, es decir un string con las cuales nos
podemos ayudar para crear controles en nuestra vista de forma sencilla, por ejemplo, hay helpers que
nos ayudan a crear los inputs, combos, radio botones, etc, a continuación una lista con los helpers de
html mas usados que ya vienen incluidos con el framework:
• Html.Beginform
Html.EndForm
Html.ActionLink
Html.Hidden
Html.Label
Html.Password
Html.CheckBox
Html.RadioButton
Html.ListBox
Html.DropDownList
Html.TextArea
Html.TextBox
4. Creando una vista - Helpers
• La lista anterior solo se crea el elemento como tal, es decir, no se enlaza con una
propiedad del modelo, y por lo tanto no se realiza una validación del mismo,
utilizando los siguientes helpers (generalmente terminan con un For) se tienen
elemento enlazados a una propiedad del modelo:
• Html.HiddenFor
Html.LabelFor
Html.PasswordFor
Html.CheckBoxFor
Html.RadioButtonFor
Html.DropDownListFor
Html.ListBoxFor
Html.TextBoxFor
Html.TextAreaFor
4. Creando una Vista - Helpers
• Para emplear los helpers la sintaxis es:

• @Html.Label("Nombre")
• @Html.TextBox("txtNombre")

• @Html.LabelFor(m=>m.Nombre)
• @Html.TextBoxFor(m => m.Nombre)

También podría gustarte