SPMonitoredScope e Performance
Salve a tutti,
molti di voi probabilmente conosceranno la Developer Dashboard introdotta in SharePoint 2010, ma è possibile personalizzare tale Dashboard in modo da farle visualizzare dati relativi al codice che scriviamo? In questo caso infatti possiamo utilizzare la classe SPMonitoredScope così come nell’esempio sottostante:
using (SPMonitoredScope monitoredScope = new SPMonitoredScope("My Monitored Scope"))
{
SPList testList = site.Lists.TryGetList("Test List");
if (testList != null)
{
SPListItem listItem = testList.Items.Add();
listItem["Title"] = string.Format("Test Item {0}", Guid.NewGuid().ToString());
listItem["City"] = "Somewhere";
listItem["Quantity"] = 3;
listItem.Update();
}
}
Grazie a questa classe tutto ciò che è contenuto nello using viene monitorato e tracciato e ne è poi possibile visualizzare il riepilogo nella dashboard.

Qualora volessimo scendere ad un livello di dettaglio maggiore invece potremmo utilizzare diversi blocchi using innestati:
using (SPMonitoredScope monitoredScope = new SPMonitoredScope("My Monitored Scope"))
{
SPList testList;
using (SPMonitoredScope getListMonitor = new SPMonitoredScope("Get List"))
{
testList = site.Lists.TryGetList("Test List");
}
using (SPMonitoredScope addListItemMonitor = new SPMonitoredScope("Add List Item"))
{
if (testList != null)
{
SPListItem listItem = testList.Items.Add();
listItem["Title"] = string.Format("Test Item {0}", Guid.NewGuid().ToString());
listItem["City"] = "Somewhere";
listItem["Quantity"] = 3;
listItem.Update();
}
}
}

Saluti
Luigi