Wednesday, April 13, 2011

SharePoint - Events & Features

Events:
Só alguns elementos da estrutura sharepoint permitem o attatch de um evento.

Uma outra nuance importante é os nomes dos eventos, os eventos terminados em "ing" ocorrem de forma sincrona os "eng" são evocados de forma assincrona.

Muito importante e que provavelmente tem a ver com uma falha de desenho do Sharepoint2007, quando ocorre um evento ele pode ser chamado varias vezes embora só exista uma razão real para tal acontecer, assim sendo deve haver uma preocupação de isolamento do código que corre dentro de um evento...sobre pena de ao não o fazermos o código correr varias vezes e ficar num estado estranho. As chamadas que refiro são executadas em concorrência.

Eventos de update e updating não devem efetuar a evocação ao update do item que alteraram, porque essa evocação já está implicita e no caso da evocarmos podemos correr o risco de gerar um Loop infinito...

Uma outra cautela importante é a forma de funcionamento do mecanismo de exceções dos eventos.

Minha experiência revela que eles são abafados dentro do próprio evento, a nova chamada ao mesmo evento. Portanto a titulo de ressalva deve ser feito tratamento interno de exceções no evento quanto mais não seja para casos de debugging.

Microsoft.SharePoint.SPWebEventReceiver:"Site Level"
Microsoft.SharePoint.SPListEventReceiver:"List Level"
Microsoft.SharePoint.SPItemEventReceiver:"List Item Level"

Features:
Quanto as features mais uma vez constatei a sua utilidade e facilidade de utilização, mas no desenho das soluções deve haver um cuidado de saber se realmente a feature pode ser ou não uma solução.

A principal ressalva a considerar é o scope de aplicação, é que dependendo do que a feature vai ativar poderá ter um scope distinto. No caso da utilização de features para fazerem o attatch de eventos o seu scope é web.

Referencias web importantes relativos aos dois temas:
http://msdn2.microsoft.com/en-us/library/ms460318.aspx

http://msdn2.microsoft.com/en-us/library/ms453149.aspx

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

No comments: