En este artículo vamos a ver cómo podemos gestionar una base de datos con WebMatrix.
1. Introducción
Pocas son las aplicaciones web que no hacen uso de alguna clase de persistencia de datos. Entre las distintas opciones, sin duda una base de datos es la más habitual. En WebMatrix tenemos un muy buen soporte para gestionar las bases de datos de nuestras aplicaciones, tanto para su definición como para la introducción y consulta de datos.En cuanto a las bases de datos que pueden gestionarse con WebMatrix, SQL Server Compact Edition viene como opción por defecto. SQL Server CE no es precisamente un producto novedoso, puesto que ya hace años que salieron sus primeras versiones, eminentemente orientadas a aplicaciones en SmartPhones.
Sin embargo, con WebMatrix se ha decidido dar un gran impulso a su desarrollo y reorientarla hacia un entorno más web. Para ello, entre las novedades que presenta, destacaríamos las siguientes:
- Funciona perfectamente con las APIs existentes de manejo de datos, como ADO.NET, Entity Framework e incluso ORMs de terceros como NHibernate.
- No requiere instalación ninguna. Simplemente hay que copiar los binarios de SQLCE al directorio bin de nuestra aplicación ASP.NET.
- Se ejecuta sobre entornos "medium trust", es decir, no es necesario que el administrador de nuestro hosting nos instale SQL Server CE para poder utilizarlo en nuestras aplicaciones web. Nosotros mismos podemos hacerlo, simplemente moviendo los binarios a la carpeta bin de nuestra aplicación web.
- Diseñadores gráficos tanto para WebMatrix como para Visual Studio (en todas sus ediciones).
Para la gente que esté más familiarizada con MySQL, WebMatrix también ofrece soporte. Por lo tanto, no quedan excusas para no utilizarlo, vengamos del entorno que vengamos.
2. Definir una base de datos
Antes de ver cómo podemos insertar, actualizar, borrar y consultar información de una base de datos, empecemos por lo más básico: cómo definir esa base de datos. En WebMatrix todas estas operaciones se hacen desde el espacio de trabajo de "Databases".Si nuestra aplicación no tiene todavía una base de datos, en la parte central podremos ver un enlace directo para añadir una nueva base de datos, bajo el mensaje "Add a Database to your site". Si pulsamos en él automáticamente nos creará un nuevo fichero .sdf (por defecto tendrá el mismo nombre que el proyecto), en la zona de la ventana dedicada a los elementos que comenten dicho proyecto. Podemos verlo en la imagen:
Una vez creada la base de datos, el siguiente paso es empezar a crear tablas en ella. Vamos a crear una primera tabla de nombre "Post". Es tan sencillo como pulsar el botón "New Table" que aparece en la barra de iconos superior.
Como vemos en la imagen, al crear la tabla se crea automáticamente una columna. Es necesario darle un nombre a esta columna si queremos poder guardar la tabla, de lo contrario nos aparecerá un mensaje de error indicándonos que es necesario cuando queramos guardar la tabla. Y si borramos la columna e intentamos guardar la tabla vacía, tampoco nos lo permitirá.
Para poder darle nombre a esta columna, simplemente nos dirigimos al grid de propiedades y en la sección (Name) indicamos el valor. En la imagen anterior también podemos ver resaltados los controles que podemos utilizar para añadir nuevas columnas (o eliminarlas), así como establecer relaciones entre tablas cuando ya exista más de una. Analicemos las propiedades que podemos definir para una columna y qué significa cada una:
- (Name): es el nombre que queremos darle a la columna. La columna no podrá guardarse si no le damos un identificador.
- Allow Nulls: nos sirve para indicar si permitimos que se almacenen valores nulos en la columna.
- Data Type: el tipo de datos que corresponde a la columna.
- Default Value: valor por defecto para la columna
- Is Identity?: sirve para indicar si la columna es identidad. SQL Server asigna automáticamente un valor a las columnas identidad cuando se inserta una fila. Las columnas de clave primaria suelen ser de identidad, para poder delegar la creación del valor de la clave. Sólo aplica a columnas de tipo numérico
- Length: sirve para indicar la longitud de la columna, en aquellas que tenga sentido, como cuando son de tipo nvarchar.
- Is Primary Key?: permite para indicar si la columna forma parte de la clave primaria de la tabla.
- PostId: columna de clave primaria y de identidad, de tipo bigint, no aceptará valores nulos.
- Titulo: columna de tipo nvarchar de 1000 de longitud.
- Contenido: columna de tipo ntext, para permitir que el contenido crezca sin límites.
- Autor: columna de tipo nvarchar de 100 de longitud. Permitiremos valores nulos en ella.
- Fecha: columna de tipo datetime.
En cuanto a las relaciones entre tablas, en este momento no es posible su creación para bases de datos SQL Server CE. Sin embargo, es una característica que se espera que esté próximamente disponible.
Con WebMatrix también podemos introducir datos en las tablas de nuestra base de datos. Basta con pulsar sobre el botón "Data" en la pestaña Table, una vez que hayamos seleccionado la tabla en la que queremos introducir la información. El proceso de edición es el típico de cualquier grid de datos. Es importante recordar que no podemos dejar sin información aquellas celdas asociadas a columnas que no soportan valores de nulo y que no podemos modificar las celdas de columnas de tipo identidad, puesto que esos valores son asignados por la base de datos de forma automática. WebMatrix nos avisará en caso de introducir datos cuyo formato no se ajusta al tipo de datos definido para la columna, evitando así que cometamos errores.
En la imagen podemos ver unas cuentas filas introducidas a través del editor de WebMatrix en la tabla "Post" creada anteriormente.
3. Conclusiones
Hemos visto cómo podemos crear tablas y columnas en WebMatrix de forma muy sencilla, así como introducir información, ya sean datos maestros o de prueba. En el próximo artículo aprenderemos cómo podemos consumir e insertar información de la base de datos, mediante código.Javier Holguera
Desarrollador senior con tecnología .NET en Payvision.