Spec Explorer: Herramienta de test en base a modelos!

Uno de los blogs que habitualmente leo es el de Somasegar, y la verdad es que siempre me encuentro sorpresas como la que da título a este post. En este caso se trata de una herramienta denominada Spec Explorer que permite utilizar técnicas de testeo en base a modelos…vamos, que dado un modelo es capaz de testear su validez. La verdad es que la herramienta, disponible en DevLabs, tiene una pinta muy buen y creo que dará que hablar en un futuro no muy lejano:

Spec Explorer

Spec Explorer: Herramienta de test en base a modelos!

Uno de los blogs que habitualmente leo es el de Somasegar, y la verdad es que siempre me encuentro sorpresas como la que da título a este post. En este caso se trata de una herramienta denominada Spec Explorer que permite utilizar técnicas de testeo en base a modelos…vamos, que dado un modelo es capaz de testear su validez. La verdad es que la herramienta, disponible en DevLabs, tiene una pinta muy buen y creo que dará que hablar en un futuro no muy lejano:

Spec Explorer

SharePoint 2010: Eventos disponibles en listas, sitios y flujos de trabajo!

Otra de las novedades de SharePoint 2010 es la relativa al modelo de eventos que ha sido completamente re-hecho y se soportan más eventos añadidos a los disponibles en SharePoint 2007:

  • FeatureUpgrading.
  • WebAdding.
  • WebProvisioned.
  • ListAdding.
  • ListAdded.
  • ListDeleting.
  • ListDeleted.
  • WorkflowStarting.
  • WorkflowStarted.
  • WorkflowPostponed.
  • WorkglowCompleted.

Otra novedad importante es que con Visual Studio 2010 (VS 2010) se simplifica el proceso de creación de un evento ya que disponemos de una plantilla de proyecto para crear dichos eventos:

  • En VS 2010 dispondremos de la plantilla Event Receiver para crear estos elementos. Al seleccionar esta plantilla se inicia un asistente que nos irá guiando en la creación del evento.
  • En la primera pantalla del asistente, especificamos la url del sitio de SharePoint 2010 en el que queremos depurar el Event Receiver y el modo de despliegue. Fijaros que se puede desplegar en modo Sandbox o en modo Full Trust. Si lo desplegamos en modo Sandbox, aparecerá en la galería User code solutuion (Por lo tanto, aquí tenemos otro artefacto más que tiene pinta que se podrá desplegar en SharePoint Online v 2.0…veremos en que queda la cosa). si lo desplegaos en modo Full Trust, aparecerá como una feature.
  • En la siguiente pantalla, podemos ver la categoría de eventos disponibles y los eventos por categoría: List Events, List Item Events, List Email Events, Web Events y List Workflow Events
image image  image
  • Por ejemplo, en la categoría List Workflow Events podemos ver alguno de los eventos nuevos que vienen con SharePoint 2010.
  • Fijaros además que para los eventos de lista, podremos escoger el tipo de lista al que vincular el Event Receiver.
  • Además, podremos elegir más de un evento por categoría.
  • En mi caso, voy a elegir un evento de la categoría List Item Events y en concreto el evento An Item is being deleted para una lista de tipo Tasks.
  • Tras pulsar Finish en el asistente, se creará la estructura de proyecto del Event Receiver (típica de un artefacto de SharePoint 2010 en VS 2010).
image image image
  • El siguiente paso consiste en añadir el código asociado al tipo de evento seleccionado utilizando para ello la vista de código del elemento de tipo Event Receiver. Por ejemplo:

       public override void ItemDeleting(SPItemEventProperties properties)

       {

           if (properties.ListItem["Status"].ToString()!="Completed")

           {

               properties.Cancel = true;

               properties.ErrorMessage = "Sorry " +

                   properties.UserDisplayName +

                   " this task cannot be deleted because is not completed";

           }

       }

  • Tras compilar el código, no tenemos más que desplegarlo en el sitio elegido. El despliegue es tan simple como seleccionar el nombre del proyecto, hacer clic con el botón derecho del ratón y pulsar la opción Deploy.
  • Lo siguiente que haremos es comprobar que el manejador desplegado funciona de forma correcta. Para ello, intentamos borrar una tarea con la columna Status con el valor Completed.
  • Lógicamente, como se cumple la condición que hemos puesto en el código del manejador, el usuario será redirigido a la correspondiente página de error de SharePoint personalizada con el mensaje que hemos añadido en el código. En cambio, si tratamos de borrar una tarea con otro estado, esta se borrará sin problemas.
image image

Y hasta aquí llega este primer post sobre eventos y manejadores de eventos en SharePoint 2010. Espero que el post os haya resultado interesante.