REALIZAR UN CRUD CON ASP.NET CORE MVC 3.
0 O SUPERIOR
Pre requisitos:
Visual Studio 2019 16.3.0 o superiror
NET Core 3.0 o superior
SQL Server 2017 o superior
Crear una base de datos, con el nombre Inventario
Y crear una tabla productos:
Create Table Productos(
Id BigInt Identity(1,1) Primary Key,
Nombre Varchar(100) Not Null,
Categoria Varchar(100),
Color Varchar(20),
PrecioUnit Decimal Not Null,
CantidadDisponible BigInt Not Null,
FechaCreacion DateTime Default(GetDate()) Not null)
Crear una aplicacion Asp.net Core
Luego seleccione la plantilla Web Application (Model-View-Controller), y cree con el nombre
de la solucion AdministracionInventario
Tomar nota que al crear des-cheque la opción Https
Instalar los siguientes paquetes con Nuget:
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design – Este paquete
ayuda a generar controladores y vistas.
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 3.0.0-
preview8.19405.11 Este paquete ayuda a crear el context de la base de datos y un modelo
de clases desde la base de datos.
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 3.0.0-
preview8.19405.11 Es el proveedor de la base de datos que permite trabajar con Entity
Framework Core con SqlServer.
Scaffolding
ASP.NET Core tiene una característica llamada scaffolding, que usa plantillas T4 para generar
código de funcionalidades comunes para ayudar a evitar que los desarrolladores escriban código
repetitivas, lo usamos para realizar las siguientes operaciones:
Genere clases de entidad POCO y una clase de contexto para la base de datos.
Genere código para las operaciones de creación, lectura, actualización y eliminación
(CRUD) del modelo de base de datos utilizando Entity Framework Core, que incluye
controladores y vistas.
Los POCO (Plain Old CLR Object) son entidades simples que definen el modelo y se usan para persistir. las POCO son
tambien DTO cuando se usan ademas para transportar los datos entre las diferentes capas o sea si usamoss una entidad
en la capa de negocio, o en el repositorio seria un POCO.
Si ademas usa ese POCO para enviar los datos a la UI seria un DTO, ya que esa entidad tambien la usas para comunidad
dos capas hay algunas variantes en una arquitecura distribuida por lo general las POCO y las DTO son clases diferentes y
se usa un conversor para pasar de una a otra, por lo general se usan framework como automapper
Las DTO estan mas relacionadas cuando hay un transporte entre capas, las vamos a ver diferenciado cuando implementas
WCF para separar la capa de negocio y la UI, los DataContract son claros DTO (Data Transfer Object)
Conectar la aplicación con la base de datos
Ejecute el siguiente comando en Package Manager Console para realizar ingeniería inversa de la
base de datos para crear clases de POCO de contexto y entidad de base de datos a partir de
tablas. El comando scaffold creará una clase POCO solo para las tablas que tienen una clave
primaria.
Scaffold-DbContext “Server=ABCSERVER;Database=Inventory;Integrated Security=True”
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Connection: establece la cadena de conexión de la base de datos.
Provider: establece qué proveedor usar para conectar la base de datos.
OutputDir: establece el directorio donde se generarán las clases POCO.
Abra el archivo InventarioContext. Veremos que las credenciales de la base de datos están
codificadas en el método OnConfiguring.
No es una buena práctica tener credenciales de SQL Server en la clase C #, teniendo en cuenta
los problemas de seguridad. Por lo tanto, elimine este método OnConfiguring del archivo de
contexto.
Y copiamos en el archivo appsettings.json
Ahora podemos registrar el servicio de contexto de la base de datos (InventarioContext) durante el
inicio de la aplicación.
En el siguiente código, la cadena de conexión se lee del archivo de configuración de la aplicación y
se pasa al servicio de contexto.
Este servicio de contexto se inyecta con los controladores necesarios mediante inyección de
dependencia.
Operaciones CRUD
Crear un nuevo controlador:
Ahora tenemos operaciones CRUD totalmente funcionales para la tabla Productos.
Luego, cambie la ruta de aplicación predeterminada para cargar el Controlador de productos en
lugar del controlador de inicio.
Abra el archivo Startup.cs y, bajo el método Configurar, cambie el controlador predeterminado a
Productos.
Con la ayuda del motor de scaffolding, los desarrolladores no necesitan escribir operaciones CRUD
para cada modelo de base de datos.
CORRER LA APLIACION