TOC

This article has been localized into Spanish by the community.

Trabajando con bases de datos:

Empecemos

En los artículos previos, decidimos un motor de base de datos (MS SQL Server, y para desarrollo y testing: El SQL Server Express LocalDB) y el framework de base de datos/ORM (Dapper). En este artículo, te ayudare a empezar con ambos, para que puedas proceder y aprender mas en como hacer tus proyectos ASP.NET MVC funcionen junto con una base de datos.

Durante los siguientes artículos, construiremos una completa pero simple TODO-list o lista de cosas por hacer. Además del motor de base de datos y el framework, como lo discutiremos ahora, necesitaras un nuevo proyecto nuevo de ASP.NET MVC Core para esto. El proceso de crear un proyecto ha sido definido previamente en este tutorial, así que sí esta inseguro de como hacerlo, solo regresa a leero.

Configurando SQL Server Express (LocalDB)

Como mencionamos en uno de los artículos previos, Microsoft SQL Server viene con una versión de desarrollo fácil de configurar llamada SQL Server Express (LocalDB). La última parte del nombre es muy descriptivo: en vez de correr una versión completa de SQL Server con todos sus servicios en tu máquina de desarrollo, la cual puede ser alcanzada (en teoría) desde cualquier otra máquina, la alternativa LocalDB es una versión recortada de SQL Server la cual solamente puede ser alcanzada localmente en tu computadora. También, en vez de estar disponible 24/7 como un servicio constante, la LocalDB es iniciada cuando se necesite.

La LocalDB esta instalada junto con Visual Studio (a menos que tu activamente le digas al instalador no hacerlo) y puedes tener control de ella desde dentro de Visual Studio. Sí no ves la ventana Herramientas para hacer eso, solo ve al menu Ver y haz clic en Explorador de objetos SQL Server:

La ventana del Explorador de objetos SQL Server aparecerá y se verá algo así:

Trata desplegar el nodo (localdb), para que puedas ver las bases de datos, etc. Sí no has usado tu LocalDB antes (y asumo que no, ya que estas leyendo este tutoruial) el nodo Bases de datos estará vacío. Necesitamos hacer algo con eso, creando una nueva base de datos para nuestro proyecto TodoList;

Creando una nueva base de datos

En el dialogo que se muestra, pon un nombre apropiado a tu base de datos - yo llame a la mía TodoList, justo como el proyecto de Visual Studio que cree para este propósito.

Agregar una tabla

Una base de datos SQL Server puede contener múltiples tablas, las cuales almacenan los datos. Una tabla es muy parecida a una clase en tu código - ellas contienen la información sobre una entidad especifica. Para nuestro proyecto, necesitamos una tabla que almacene todos los elementos encontrados en nuestra lista de cosas por hacer (TODO list). Un nombre adecuado para esta tabla sería por lo tanto TodoListItems.

Agregar una tabla es tan fácil como agregar una base de datos:

Se presentará la ventana de Diseño de Tablas, donde puedes agregar las filas que necesitas para esta tabla. Aquí esta como se ve mi tabla TodoListItems:

Puedes volver a crear el registro que tengo, o sí quieres ahorrar tiempo: Copia el SQL debajo en la parte T-SQL del diseñador:

CREATE TABLE [dbo].[TodoListItems]
(
    [Id] INT NOT NULL PRIMARY KEY IDENTITY,
    [AddDate] DATETIME NOT NULL,
    [Title] NVARCHAR(200) NOT NULL,
    [IsDone] BIT NOT NULL DEFAULT 0
)

Cuando lo hayas hecho, simplemente da clic en el botón Update(puedes verlo en la cima de la captura de pantalla). Esto hará que Visual Studio aplique el SQL a tu base de datos y por lo tanto crear la nueva tabla - la verás aparecer inmediatamente en el Explorador de Objetos SQL Server. ¡Felicidades!, tienes nueva base de datos con una tabla con registros - en otras palabras, ¡el backend esta listo para usarse!

Agregando Dapper

Con la base de datos en su lugar, ahora solo necesitamos el framework de base de datos, como lo discutimos en artículos pasados. Gracias al sistema de paquetes NuGet, instalar una librería de terceros en tu proyecto es muy fácil. Puedes hacerlo desde la UI, o usando la Consola NuGet: Desde el menú Herramientas, selecciona Administrador de Paquetes NuGet -> Consola de Administrador de Paquetes. La Consola se abrirá en una ventana Herramienta como esto:

Ahora escribe el siguiente comando y presiona Enter:

Install-Package Dapper

¡Esto hará que el administrador NuGet instale la última versión de la librería Dapper en tu proyecto!

Cuando hablamos sobre almacenamiento persistente, el cual es por ejemplo una base de datos como SQL Server, es frecuentemente mencionado el concepto de CRUD. Lo que respresenta Create, Read, Update, Delete (Crear, Leer, Actualizar, Borrar) - estas son las operaciones que estarás haciendo todo el tiempo cuando trabajes con bases de datos. Sin embargo, Dapper solamente incluye métodos para hacer la lectura. Esto porque quisieron conservar la librería tan ligera y rápida como fuera posible: realizara todo el mapeo por ti, y puedes tener los datos de la base de datos, pero si quieres hacer una de las otras operaciones, tendrás que escribir manualmente el SQL.

¡Pero no te preocupes! Hay muchas extensiones de Dapper de terceros, las cuales pueden extender la funcionalidad de Dapper para hacer estas operaciones tanto como otras operaciones útiles. Dapper.Contribes un gran ejemplo de esto - simplemente agrega las operaciones CRUD como Insert(), Update() y Delete() que necesitamos. Puede ser instalada tan fácil como el Dapper mismo y justo como Dapper, simplemente extiende las clases que estarás usando de cualquier forma. Corre el siguiente comadno en la Consola de Administrador de Paquetes:

Install-Package Dapper.Contrib

Con eso en su lugar, finalmente estamos listos para proceder.

Resumen

Tenemos ahora una base de datos, incluyendo una tabla para contener nuestros elementos de nuestra TODO-List, y tenemos nuestro framework (Dapper) instalado. En el siguiente artículo, continuaremos el esfuerzo de crear nuestra TODO-Lista en ASP.NET MVC.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!