ASPNET Profiling on the beach

No, no es el nombre de una bebida en el Aca Drinks de la costera, aunque no sería mala idea ponerle a una así…

Estoy delirando, creo que dos semanas dando entrenamiento entre el sol, la arena y el mar me han afectado. Todos los días me siento a revisar el curso que estoy impartiendo y a programar en .NET 2.0 en una palapa frente a la playa (o a veces en la alberca), conectado a Internet vía Wireless… la verdad que esto es vida, si señor.

El día de hoy vimos como extender los User Profile usando ASP.NET 2.0. Un user profile es una colección de propiedades que permite, entre otras cosas personalizar o almacenar datos referentes a una aplicación web. Lo interesante del user profile en .NET 2.0, es que ASP.NET se encarga de agrupar todas estas propiedades en una clase autogenerada en tiempo de ejecución y esconde toda la plomería que se encuentra detrás de esto (como por ejemplo el almacenamiento).

Podemos extender el User Profile de una aplicación directamente desde el Web.Config. A continuación vemos un ejemplo de los tags necesarios para añadir una colección:

    1 <profile>

    2   <properties>

    3     <add name=«RFC« type=«string« />

    4     <add name=«Edad« type=«int« />

    5   </properties>

    6 </profile>

Lo que estamos haciendo es añadir un par de propiedades adicionales al sistema de profiling. Es bastante sencillo. El tag type puede ser cualquier tipo compatible con el CLR, dándonos un amplio espectro de variables.

Ahora si quieres usar algún control personalizado o custom, puedes utilizar un ensamblado que se encuentre dentro de tu proyecto o en el GAC. Imagina que tienes un tipo que almacena clases dentro de tu ensamblado, asi lo definirías dentro del web.config:

   21 <profile>

   22   <properties>

   23       <add name=«Carrito«

   24               type=«Tarabu.Carrito, Intellekt.Tarabu«

   25               serializeAs=«xml« />

   26   </properties>

   27 </profile>

El atributo serializeAs nos define como almacenaremos el objeto dentro de la base de datos. Podría ser Binary también en caso de que nuestro contenedor de datos no permita serialización.

Por último, podemos acceder a estar propiedades del user profile de las siguiente manera:

   13 protected void Page_Load(object sender, EventArgs e)

   14 {

   15     // muestra los datos que estan en el profile, papi

   16     if (!Page.IsPostBack)

   17     {

   18         Response.Write(Profile.Edad);

   19         Response.Write(Profile.RFC);

   20     }

   21 }

Muy interesante, ¿ven que podemos obtener las propiedades definidas en el Profile como si fueran propiedades de una clase? Esto esta cool, ya que si queremos extender nuestra base de datos de usuarios no necesitamos meternos a modificar una tabla, sino solamente el web.config.

Cheers! Paradise [ip]


Comentarios

Deja una respuesta