viernes, 4 de junio de 2010

Event Handlers!!

Hola!!

como ayer dije, hoy hablaré de los events en Sharepoint. Hace relativamente poco que estoy trabajando con ellos, y creo que son muy interesantes y potentes.
Un event handler no es más que un tipo de trigger, un evento que se activa cuando algo ocurre, la traducción literal es control de eventos.
Un control handler se puede asociar a diferentes niveles:

  • A nivel de site: SPWebEventReceiver

  • A nivel de list: SPListEventReceiver

  • A nivel de listitem: SPListItemEventReceiver


Cada uno de los niveles posee una serie de métodos particulares y definidos según la clasificación anterior que hay en el siguiente blog msdn y que os ayudará muchísimo:

http://blogs.msdn.com/b/brianwilson/archive/2007/03/05/part-1-event-handlers-everything-you-need-to-know-about-microsoft-office-sharepoint-portal-server-moss-event-handlers.aspx

Como podréis observar hay diferentes métodos, para existe una diferencia significativa entre ellos, los acabados en -ed y los acabados en -ing.

Como os imagenaréis, la diferencia es que los acabados en -ed se ejecutan despues de la acción, en cambio los acabados en -ing se ejecutan antes de la acción.


Hay que tener en cuenta que los eventos before (acabados en -ing) bloquean el código de ejecución hasta que el evento no acaba, con lo que si no estan bien implementados nos pueden proveer de malas sorpresas.

Una vez explicados los event handlers, voy a explicaros mi método de asociación a listas, items o sites de Sharepoint.

Imaginaos (o probad mejor dicho :P) que ya tenéis un event implementado y lo habéis ya deployado en vuestra site collection. Pues bien, gracias a mis compañeros descubrí el siguiente programa:


MOSSEventManager:



Como veis es un programa donde te "capta" los site collections de tu Sharepoint, representado toda la estructura por sites, listas, etc... y en la parte derecha salen todos los eventos registrados. Observad el último (event1) es una prueba que yo implementé.
El siguiente paso es hacer click en la lista, site, etc... deseado, y hacer click en el evento que quieras asociar, luego hacemos click en Update List Events...y ya tenemos el evento asociado!

Así de sencillo. En Codeplex existe un sistema de administración de eventos, pero creo que es más sencillo el que yo utilizo, para gustos, colores!!

No hay comentarios:

Publicar un comentario