Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

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: ,
Posted: 12/5/2008 5:45 por Gonzalo Perez | con 6 comment(s) |
Comparte este post:

Comentarios

devjoker ha opinado:

Hombre , mejor que mandarlo a casa ponerlo a hacer otras cosas ¿no? :-)

# May 12, 2008 5:11 PM

Gonzalo Perez ha opinado:

EL problema es que yo soy el que hago los mantenedores!!!

ajajajja

# May 12, 2008 5:38 PM

Jersson ha opinado:

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.

# May 12, 2008 5:52 PM

Gonzalo Perez ha opinado:

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

# May 13, 2008 4:38 AM

Gonzalo Perez ha opinado:

El Amigo Luis Ruiz Pavón escribió un articulo de esto mismo, esta muy bueno, visitenlo en:

geeks.ms/.../dynamic-data-web-applications-o-como-montar-r-225-pidamente-una-aplicaci-243-n-web-con-acceso-a-datos.aspx

# May 14, 2008 1:57 PM