I nuovi event receivers di SharePoint 2010
Data: 12/18/2009
Categoria: Sharepoint
Codice d'esempio


Gli event handler, all'interno dell'architettura di SharePoint sono da sempre stati uno degli strumenti più utilizzati dagli sviluppatori, in quanto permettono la personalizzazione delle normali procedure che l'utente finale effettua tramite interfaccia grafica, senza che quest'ultimo si accorgo di effettivi cambiamenti all'interfaccia stessa.
In SharePoint 2010, l'elenco degli eventi disponibili è notevolmente aumentato. Abbiamo infatti nuovi eventi riguardanti le operazioni effettuate dal motore di workflow, da quello di provisioning e da quello di incoming delle mail.
Vediamoli in dettaglio.

List events
Per quanto riguarda le operazioni effettuate su istanze di liste, sono stati aggiunti 4 nuovi eventi utili ad effettuare operazioni custom a fronte di un'aggiunta di una nuova lista o di una cancellazione.

A field was added

A field is being added

A field was removed

A field is being removed

A field was updated

A field is being updated

A list is being added

A list is being deleted

A list was added

A list was deleted



List item events
Per quanto riguarda, invece, le operazioni effettuate su singoli elementi, è stato aggiunto un solo evento riguardante la reazione da parte del singolo elemento ad una chiamata dal contesto. In parole povere, questo evento viene scatenato quando viene richiamata la classe SPContext all'interno di altri eventi sempre relativi all'elemento.

An item is being added

An item is being updated

An item is being deleted

An item is being checked in

An item is being checked out

An item is being unchecked out

An attachment is being added to the item

An attachment is being removed from the item

A file is being moved

An item was added

An item was updated

An item was deleted

An item was checked in

An item was checked out

An item was unchecked out

An attachment was added to the item

An attachment was removed from the item

A file was moved

A file was converted

The list received a context event



List e-mail events
Su liste configurate per la ricezione di messaggi e-mail è stato, finalmente, aggiunto un evento specifico appunto per la ricezione della mail. Prima era necessario gestire gli eventi ItemAdding o ItemAdded effettuare il parsing della mail e controllare manualmente gli allegati.

The list received an e-mail message



Workflow events
Questi sono gli eventi che mi ha fatto più piacere trovare all'interno di SharePoint 2010. Eventi per gestire le operazioni di inizio e fine di uno o più workflow.

A workflow is starting

A workflow was started

A workflow was postponed

A workflow was completed



Web events
Per quanto riguarda invece, siti e site collection, sono stati aggiunti due eventi (il sincrono e il rispettivo asincrono) per lanciare operazioni personalizzate a fronte del provisioning di un nuovo sito SharePoint 2010.

A site collection is being deleted

A site is being deleted

A site is being moved

A site is being provisioned

A site collection was deleted

A site was deleted

A site was moved

A site was provisioned



Ma la cosa più bella in assoluto, è la possibilità di creare questi eventi direttamente all'interno di Visual Studio 2010 attraverso uno dei suoi template di progetto o elemento. Il template in questione è il template "Event receiver", che prima fa scegliere all'utente finale quali degli eventi disponibili vuole gestire, poi in base alla scelta fatta, crea tutte le strutture di configurazione XML per gli eventi e i relativi file di codice (.cs o .vb) con la dichiarazione dei gestori degli eventi selezionati.

SharePoint 2010 event receiver Visual Studio 2010 template

List events Item eventsList events
Workflow events Web events

In allegato trovate un progetto Visual Studio 2010 con tutti i nuovi eventi gestiti (senza alcun tipo di implementazione però :)
Questo articolo è stato scritto sulla versione Beta 2 di SharePoint 2010 e Visual Studio 2010