Salve a tutti,
può talvolta capitare che ci si trovi davanti alla necessità di dover riconoscere a run-time se il codice sviluppato per SharePoint 2010 appartenga ad una Sandboxed solution oppure no.
Purtroppo OOTB non c’è nessuna proprietà che possa fare al cado nostro ma è possibile ottenere tale informazione grazie ad un codice del genere 
1: static bool? _isSandboxed;
2: static bool IsSandboxed() {
3: if(!_isSandboxed.HasValue) {
4: try {
5: SPSecurity.RunWithElevatedPrivileges(delegate { });
6: _isSandboxed = false;
7: } catch (PolicyException) {
8: _isSandboxed = true;
9: }
10: }
11: return _isSandboxed.Value;
12: }
Saluti
Luigi
Salve a tutti,
chi conosce la piattaforma SharePoint 2007 conoscerà benissimo uno degli aspetti più “antipatici” degli event receivers e cioè l’impossibilità di eseguire in maniera sincrona eventi che vengono scatenati una volta che sono state eseguite le operazioni che li scatenano.
In particolare, prendendo ad esempio gli eventi ItemUpdating ed ItemUpdated è facile intuire che l’itemUpdating venga scatenato durante l’esecuzione di un aggiornamento di un item, con la contestuale possibilità di poter annullare l’aggiornamento stesso, mentre l’ItemUpdated venga scatenato DOPO che l’aggiornamento è stato eseguito, in un thread a parte, per effettuare altre operazioni (come potrebbe essere un aggiornamento a cascata, ecc…). Per stessa natura asincrona dell’evento ItemUpdated non era possibile ad esempio fare un redirect ad una pagina differente proprio perché non era garantito che l’evento stesso fosse eseguito prima che la response alla request originaria fosse stata spedita al browser.
Per risolvere queste problematiche è stato introdotto un nuovo parametro “Synchronization” utilizzabile nella definizione dell’event receiver (XML) o dall’object model. Vi lascio i riferimenti ufficiali con qualche esempio di utilizzo.
http://msdn.microsoft.com/it-it/library/gg981880.aspx
Saluti
Luigi