Como desarrollar un Sitio Web Empresarial en 5 Minutos con ASP .Net Dynamic Data


Dynamic Data es una tecnología que Microsoft lanzo desde ASP Net Futures por inicios del año 2007 si no me equivoco, todavía con Visual Studio 2005, pero su maduración fue con la integración de LINQ en las betas del Visual Studio 2008 el cual fue incluido como release final con el Service Pack 1 del .Net Framework 3.5.

Eso de desarrollarlo en 5 Minutos parece un sueño pero es una realidad la cual se da si ya tenemos nuestra base de datos creada para que sea realidad los 5 minutos. Otra utilidad es entregar los mantenimientos de catálogos funcionando sin mas que hacer….. bueno esto sin mas ….. es relativo porque depende de las validaciones de negocio que quisieramos incluir.

No significa que Dynamic Data agregará todas las validaciones de negocio, sino que solamente agrega las validaciones de negocio que logra leer del esquema de la base de datos como que un campo no acepte vacíos(nulos) o que la entrada concuerde con el tipo de dato de cada campo, la longitud del campo, etc.

Adicionalmente se pueden agregar validaciones especificas pero eso implicaría mas de 5 minutos, así que para el ejemplo no realizaremos ninguna validación adicional y además utilizaremos la famosísima base de datos Northwind.

Para empezar creemos en Visual Studio un nuevo proyecto, elegimos el lenguaje de nuestro agrado(para el ejemplo utilizaré VB .Net) y utilizaremos la plantilla «Aplicación web de datos dinámicos», le colocamos el nombre de al proyecto como AplicacionConDynamicData.

La plantilla  crea unos archivos y ademas en algunos deja ejemplos a manera de comentarios para configurar algunas funcionalidades.

Posteriormente que el IDE ha creado el proyecto damos clic derecho sobre el proyecto y agregamos un nuevo elemento(Agregar\Nuevo elemento).

Elejimos Clases de LINQ to SQL y le ponemos el nombre de Northwind.dbml(la extension no es necesaria ponersela)

Abrimos el Explorador de Servidores (que es donde se ubican las conexiones a bases de datos) y verificamos que tengamos una hacia Northwind o nuestra base de datos empresarial. Expandemos las tablas y seleccionamos todas las tablas. Arrastramos las tablas hacia el layout del LINQ y magicamente se creará como que fuera el diagrama de la base de datos, pero lo que el IDE realmente hace son entidades LINQ que representan cada tabla de las que seleccionamos de la base de datos. Vean tambien como hacer un Mantenimiento Windows con LINQ.

Con nuestras entidades LINQ creadas abrir el Global.asax que lo encontramos en el Explorador de Soluciones y en el método RegisterRoutes( que es un método incluido por la plantilla del proyecto) incluiremos el siguiente codigo:

model.RegisterContext(GetType(NorthwindDataContext, New ContextConfiguration() With {.ScaffoldAllTables = True})

Nota: El cual por cierto aparece en los comentarios y lo unico que hay que hacer es que a ese código que aparece en forma de comentario es cambiarle el nombre del contexto de datos(que para el caso del ejemplo es el que agregamos anteriormente con el nuevo elemento Clases LINQ to SQL) que para el ejemplo es NorthwindDataContext y ademas al final es necesario pone en True en ScaffoldAllTables para que se incluyan todas las tablas del modelo LINQ to SQL.

Luego corremos la aplicación (Si es todo lo que haremos y ya tenemos una aplicación que al menos  ingresa/modifica/elimina y consulta datos de todas las tablas que seleccionamos previamente y creamos sus entidades LINQ).

Esta es la página principal que deja la plantilla de Dynamic Data, en el cual lista todas las tablas para poder ver/agregar/modificar sus registros.

Y ademas al elegir una de las tablas noten que tambien quedan relacionadas y podemos navegar, filtrar por las tablas foraneas o hijas.

Si ven la tabla Categories tiene acceso a ver los registros de Products enviando de parámetro la categoría.

En fin con esta técnica, la cual existe con Ruby on Rails, PHP (Cake PHP),  JSP y otras tecnologías web, conocida por su nombre en ingles Scaffolding o Scaffold quien es quien permite atraves de las entidades LINQ to SQL realizar las operaciones CRUD(Create, Read, Update and Delete en español, Insertar, Leer, Actualizar y Eliminar) para cada base de datos, el cual con la plantilla que utiliza GridView, DetailsView, FormsView, LINQDataSource, yu otras cosas mas es lo que hace de manera tan sencilla tener un inicio de aplicación sin mucho esfuerzo.

En otro post profundizare del tema. Espero sea de utilidad para los que no conocían esta tecnología.

«El fracaso tiene mil excusas, el éxito no requiere explicación»

  1. No trackbacks yet.

Deja un comentario