Net Core - Conceptos Generales
Net Core - Conceptos Generales
Net Core - Conceptos Generales
UCNE
FACULTAD DE INGENIERÍA
ESCUELA DE SISTEMAS
.NET CORE
Conceptos Generales
Preparado por Ing. Nelson Abreu Ed. D.
Octubre 2019
Modelo Vista-Controlador (MVC)
Properties
El nodo Propiedades incluye el archivo launchSettings.json que
incluye los perfiles de Visual Studio de la configuración de
depuración. También se puede acceder a esta configuración
dando click derecho encima del nombre del proyecto en el
solution explorer y eligiendo la opción propiedades.
Directorios del Proyecto .Net Core
wwwroot
Se encuentra en el directorio raíz e incluye archivos
estáticos como CSS, imagénes, y JS. Además, contiene la
hoja de estilo y el archivo JS por defecto para el proyecto
site.css y site.js respectivamente, los subdiretorios para
los CSS y JS de Bootstrap y Jquery.
Todas los scripts que se utilicen en el proyecto deben ser
colocados dentro de este directorio.
appsettings.json
Es el archivo principal de opciones de configuración para una
aplicación web en .Net Core, sería el equivalente al web.config
de los proyectos .NET tradicionales. El archivo es un documento
json que define información de configuración concerniente a la
aplicación web.
Directorios del Proyecto .Net Core
El appsettings.json es un archivo muy simple que nos permite
establecer las variables de ejecución de nuestra aplicación y con
el que podemos elegir si queremos un único fichero o tener un
fichero por entorno, por ejemplo: appsettings.Development.json,
appsettings.Production.json, appsettings.Staging.json,
appsettings.XXX.json.
Cuando se usa NuGet para instalar un paquete, este copia los archivos de la
librería en la solución y automáticamente actualiza el proyecto (agrega
referencias, cambia los archivos config, etc). Si se elimina un paquete, NuGet
reversa cualquier cambio previamente realizado.
https://www.nuget.org/
Gestión de Bibliotecas o Frameworks
libman.json
Library Manager (LibMan) es una herramienta ligera de
gestión de bibliotecas del lado del cliente. LibMan descarga
bibliotecas y frameworks populares del sistema de archivos
o de una red de entrega de contenido (CDN). Los CDN
admitidos incluyen CDNJS, jsDelivr y unpkg. Los archivos de
biblioteca seleccionados se obtienen y se colocan en la
ubicación adecuada dentro del proyecto ASP.NET Core.
Gestión de Bibliotecas o Frameworks
Las ventajas de utilizar libman.json son:
Solo se descargan los archivos de biblioteca que necesita.
No se necesitan herramientas adicionales, como Node.js,
npm y WebPack, para adquirir un subconjunto de archivos
en una biblioteca.
Los archivos se pueden colocar en una ubicación
específica sin recurrir a tareas de compilación o copia
manual de archivos.
HOME CONTROLLER
MÉTODOS PÚBLICOS
Index Contacto
VIEWS
index.cshtml contacto.cshtml
Rutas en .Net Core
Tanto para los modelos, vistas y controladores, las
aplicaciones de MVC utilizan el sistema de enrutamiento de
ASP.NET Core, el cual decide cómo las URL son mapeadas
con los controladores particulares y sus acciones. Las
siguientes rutas enviarán el navegador a la acción Index del
controlador HomeController:
/
/Home
/Home/Index
Rutas en .Net Core
Para cambiar el formato predeterminado se debe ir al
archivo Startup.cs y ubicar la siguiente sección:
http://tusitio/Home/CalcularArea
Rutas .Net Core
Si los métodos en los controladores reciben parámetros,
como por ejemplo:
public string CalcularArea(double b, double a)
{
return string.Format(“El área es: {0}”, b*a/2);
}
http://tusitio/Home/CalcularArea?b=23.5&a=88.35
IActionResult
Cuando se utiliza el objeto IActionResult como tipo de
dato a retornar en un método de acción, se le instruye a
MVC que debe asociarlo con una vista. La vista es un
archivo que termina con .cshtml o .vbhtml y debe ser
agregado al proyecto.
@using NombreProyecto
@using NombreProyecto.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@using NombreProyecto.Helpers
@addTagHelper *, NombreProyecto
@using ReflectionIT.Mvc.Paging
@addTagHelper *, ReflectionIT.Mvc.Paging
Model Binding
Es una característica de MVC que permite convertir los
datos (name/id de HTML), recibidos vía la solicitud HTTP, al
dominio del modelo especificado en el View. Es decir copia
los valores de las etiquetas al modelo especificado para ser
usado. Evita utilizar Request.Form[] y
Request.QueryString[] para obtener los valores del
formulario pasados vía POST o GET respectivamente.
@model MvcApplication1.Models.Estudiante
@{
ViewBag.Title = "EstudianteRegistrado";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Estudiante Registrado</h2>
<p>
El estudiante <strong>@Model.Nombre @Model.Apellido</strong> fué registrado con éxito.
@if (Model.Sexo.Equals("F"))
{
@:El sexo es Femenimo.
}
else
{
@:El sexo es masculino.
}
</p>
Manejo de Formularios
[HttpPost]
public IActionResult Estudiante(Estudiante est)
{
return View("EstudianteRegistrado", est);
}
Esta forma de usar el View, envía los datos recibidos vía POST de
la clase modelo Estudiante al View EstudianteRegistrado.
Validación de Modelos
Las reglas de validación se colocan en la definición de la
clase que servirá del modelo en MVC.
Se debe importar el espacio de nombres:
System.ComponentModel.DataAnnotations
Algunos ejemplos:
[Required(ErrorMessage = "El nombre del estudiante no puede estar en blanco.")]
public string Nombre { get; set;}
https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations%28v=vs.110%29.aspx
Validación de Modelos
Validación de Modelos
[HttpPost]
public ActionResult Estudiante(Estudiante est)
{
if (ModelState.IsValid)
{
//Si no hay error..
return View("EstudianteRegistrado", est);
}
else
{
//si hay error.
return View();
}
}