lunes, 15 de noviembre de 2010

Alta, Baja y Modificación de eventos

Para el alta, baja y modificación de eventos vamos a tener un Web Role que se encargue de actualizar una tabla. Se va a mostrar una lista de los eventos, en donde se podrá borrar o actualizar su contenido. Un evento está formado por: nombre, descripción, artista, fecha y un contador (más adelante va a ser utilizado para listar los eventos más consultados). Cuando se agregue un evento nuevo, se va a publicar un mensaje en Twitter informando los datos del evento cargado.


Conceptos de Table Storage

El servicio de Windows Azure Table Storage provee un almacenamiento estructurado que puede ser consultado.

Cada entidad y la tabla tienen tres propiedades: un PartitionKey, un RowKey y un Timestamp, que conjuntamente forman la clave única para cada entidad. Los resultados son retornados ordenados por PartitionKey y luego por RowKey.


Arquitectura

Alta de eventos:

Un Evento está compuesto por:

  • Artista
  • Lugar
  • Fecha
  • Descripción
  • Contador de visitas (Para listar los eventos más consultados, más adelante hablaremos más en detalle)

El web role almacena el evento en la tabla, y manda un mensaje al worker role mediante una cola de mensajes. El worker role se encarga de publicar el evento en Twitter.

Baja y Modificación de eventos:

Cuando se da de baja o modifica un evento, el web role se comunica con el storage para actualizar la tabla.


Implementación

Para orientarnos en la implementación seguimos este tutorial.


Problemas encontrados

Estuvimos teniendo problemas cuando queríamos actualizar los datos de un evento.

La excepción que obteníamos era: El valor del parámetro 'EventDate' no se puede convertir de 'System.String' a 'System.DateTime'.

  • Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
  • Detalles de la excepción: System.InvalidOperationException: El valor del parámetro 'EventDate' no se puede convertir de 'System.String' a 'System.DateTime'
Investigando acerca del error descubrimos que hay un error en el framework reconocido por Microsoft que no permite hacer este casteo correctamente. Aquí más información a cerca de este error.



No hay comentarios:

Publicar un comentario