ASP.NET Dynamic Data Web Site ( O enviar para la casa al developer que hace los mantenedores :P )

Hace un tiempo hizo su aparición Dynamic Data Web Site, como parte de ASP.NET 3.5 Extensión y me ha llamado bastante la atención, más que nada por las posibilidades que nos brinda, no voy a entrar en detalles, ya que para eso, les pido que visiten www.asp.net.  Revisando esta nueva tecnología, es que quiero compartir mi experiencia,

 

1) Seleccionando el Template Dynamic Data Website, que como decíamos vienen el con ASP.NET 3.5 Extensions Preview, en mi caso, el code behind en VB.NET :)

image

 

Paso siguiente, utilicé la archi-conocida base de datos Northwind, para luego crear agregar un Ítem “LINQ to SQL Classes”  , y arrastramos las tablas desde nuestro server explorer a el área de trabajo de datac.dbml

 image

 

En la siguiente imagen vemos las tablas de Northwind mapeadas a clases.

image 

Nuestro solution Explorer se verá como el siguiente, donde tenemos la carpeta App_Shared ,en la cual encontraremos las plantillas que nos permitirán navegar entre nuestras trablas.

image

 

Algo super importante es modificar el web.config de tal manera que:

<dynamicData dataContextType=“” enableTemplates=true>

<mappings queryStringKeyPrefix=“”  pattern=~/{table}/MiEjemplo/{viewName}.aspx>

<add actions=list,details viewName=Detalle templateFile=ListDetailsTemplate.aspx/>

 

enableTemplates=true“: nos permita trabajar con las plantillas mencionadas.

pattern=~/{table}/MiEjemplo/{viewName}.aspx : nos indica cual va a ser el patron que va seguir nuestra URL para la navegación fíjate que hice un pequeño cambio, para el ejemplo.(MiEjemplo)

 viewName=Detalle“: vamos a poder setear el nombre que aparecerá en la URL cuando estemos viendo el detalle de una tabla.

Importante es remarcar que podemos modificar el template “ListDetailsTemplate.aspx” así como también la MasterPage para que tenga un look&Field más “amistoso” a nuestra organización. Al iniciar nuestro proyecto obtendremos una lista con links a las tablas que estaban mapeadas.

 

image

Fijándonos en la URL podemos revisar que está funcionando nuestro seteo del web.config sobre el pattern, y lo que esta muy cool, fíjate que en Categorías no solo se muestra la foreing key, si no la relación realizada. Desde cada página puedes agregar,modificar y eliminar  registros.

image

Si tratas de hacer modificar o insertar un valor cuyo tipo de dato es incorrecto (según la BD) , se levantará un error que se te enviará a pantalla(todo esto es configurable con los templates)

image

Es más, si quieres crear nuevas reglas de validación, puedes ir al codebehing del item LINQ to SQL Classes, y comenzamos a modificar las métodos de las clases, para el ejemplo, vamos a modificar en datac.designer.vb la clase Product, para que cuando se desee cambiar el nombre del producto y si este es menor de 5 caracteres, se levante una exception.

 

<Table(Name:=“dbo.Products”)> _

Partial Public Class Product

Private Sub OnProductNameChanging(ByVal value As String)

        If value.Length < 5 Then

            Throw New Exception(“Debe Ingresar valores mayores a 5 Caractéres”)

        End If

    End Sub

 

image

Nada de mal? con un esfuerzo mínimo, el paso siguiente customizar el template por tabla, cambiar los css, la MasterPage, de hecho si van a www.asp.net verán como se puede customizar los controles para la manipulación de los datos, con controles ajax por ejemplo y se ve muy cool!

Espero que les haya servido, nos vemos!

Gonzalo

Etiquetas de Technorati: ,

5 comentarios sobre “ASP.NET Dynamic Data Web Site ( O enviar para la casa al developer que hace los mantenedores :P )”

  1. Yo consideraría los aspectos de performance si es que se usa LINQ como parte del mantenimiento, me refiero a las instrucciones SQL que genera “por debajo”.

    Un Saludo.

  2. Claro que sí , y es una discusión válida que he escuchado, sobre el real performance de LinQ, abrimos la discusión???

    Saludos,
    gonzalo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *