Nowością w 2010 jest tzw.: Developer Dashboard , który podaje wiele informacji dotyczących wykonującego się kodu. Nie jest on jednak aktywny domyślnie.
Aby włączyć Developer Dashboard możemy posłużyć się: PowerShellem, STSADM lub SharePoint API. Nie zależnie od metody, którą wybierzemy w celu jego włączenia/wyłączenia zawsze będziemy mogli ustawić dla niego następujące właściwości:
- On - włączony i pokazuje się zawsze u dołu każdej strony
|
 |
- Off - wyłączony
- OnDemand - włączony ale aby pokazał się na stronie trzeba kliknąć ikonkę w prawym górnym rogu strony |
 |
W takim razie gdy wiemy już jak to wygląda należy wybrać jeden ze sposobów i po prostu go włączyć:
- PowerShell (z poziomu konsoli SharePoint 2010 Management Shell)
UWAGA !!!
Wiele źródeł podaje, że powinno się wpisać następującą komendę:
(Get-SPFarm).PerformanceMonitor.DeveloperDashBoardLevel = "OnDemand"
Jednak nie działa ona w ostatecznej wersji SharePoint. Aby włączyć Developer Dashboard należy użyć komendy:
[Microsoft.SharePoint.Administration.SPWebService]:: ContentService.DeveloperDashboardSettings.DisplayLevel = 'OnDemand';
[Microsoft.SharePoint.Administration.SPWebService]:: ContentService.DeveloperDashboardSettings.Update();
- STSADM (z poziomu linii komend należy wykonać następującą instrukcję)
Stsadm -o setproperty -pn developer-dashboard -pv OnDemand
- SharePoint API (z poziomu kodu C# - można np.: napisać funkcję, która by pokazywała Dashboard Developer)
SPFarm farm = SPFarm.Local;
farm.PerformanceMonitor.DeveloperDashboardLevel = SPPerformanceMonitoringLevel.OnDemand;
farm.PerformanceMonitor.Update();
Dodatkowo dla Dashboard Developer można włączyć Trace. Robi się to np.: z PowelShella w następujący sposób:
[Microsoft.SharePoint.Administration.SPWebService]:: ContentService.DeveloperDashboardSettings.TraceEnabled = $true;
[Microsoft.SharePoint.Administration.SPWebService]:: ContentService.DeveloperDashboardSettings.Update();
Po wykonaniu tych poleceń u dołu widoczny jest link: |
 |
| Po kliknięciu tego linku pokazuje się pod Developer Dashboard standardowy Trace z ASP.NET |
 |
Gdy już mamy włączony Dashboard developer warto prześledzić grupy parametrów, które są w nim wyświetlane:
1. Web Server - Parę ogólnych informacji na temat strony. Na szczególną uwagę zasługuje parametr "Log Correlaction Id" ale o nim trochę później. |

|
2. Asserts and Criticals Events - wyjątki i błędy, które wystąpiły podczas ładowania strony. Można w to miejsce wpisywać również swoje. Robi się to poprzez skorzystanie z statycznej klasy SPCriticalTraceCounter:
SPCriticalTraceCounter.AddDataToScope(1234, “Moja kategoria”, 1, “Komunikat błędu”);
gdzie:
1234 - dowolny identyfikator błędu (będzie stanowił link do podglądu całego błędu z Callstack),
"Moja kategoria" - dowolna nazwa, będzie wyświetlana obok identyfikatora oraz we wszystkich komunikatach o błędzie,
1 - identyfikator błędu, do wyboru z:
1 Critical
4 Exception (Watson)
6 Assert
8 Warning
10 Unexpected
15 Monitorable
"Komunikat błędu" - reszta komunikatu o błędzie, wyjątku.
Efekt wykonania kodu z podaną komendą skutkuje pokazaniem się następującego komunikatu |
 |
| Po kliknięciu w identyfikator otworzy się nowe okno z pełną informacją o błędzie lub wyjątku: |
 |
| 3. Database Queries - Zapytania jakie zostały wykonane podczas ładowania strony. Aby zobaczyć całość zapytania należy kliknąć w nazwę - zapytanie w języku SQL. |
 |
| 4. Service Calls - wyświetla połączenia do serwisów WCF. |
 |
| 5. SPRequest Allocations - Liczba obiektów SPSite i SPWeb zaalokowanych w pamięci. |
 |
| 6. WebPart Events Offsets. |
 |
| 7. Inne - Metody poddane kontroli czasu wykonywania. |
 |
Jeśli chcemy aby również w niektórych miejscach w naszym kodzie również był mierzony czas wykonywania wystarczy umieścić ten kod w znacznikach:
using (new SPMonitoredScope("Mój webpart"))
{
//….
}
UWAGA !!!
Niestety nie działa to w Sandboxed Solutions.
W nowej wersji SharePointa do każdego błędu dołączony jest parametr tzw.: Correlaction Id. Ma to pomóc w łatwiejszym wyszukiwaniu i interpretowaniu błędów. Ten parametr zawsze jest w formacie guida (ab961971-84fa-45c7… itp). Można go zobaczyć na stronie z błędem, Developer Dashboard w sekcji Web Server i w innych miejscach.
Dlatego jeśli użytkownikowi wyskoczy błąd to wystarczy jak prześle Correlaction Id, które zostało mu wyświetlone. Ten parametr przypisywany jest też każdemu wpisowi w plikach logów w katalogu …\14\Logs\. Aby łatwiej było przeglądać te pliki warto wykorzystać narzędzie ULSViewer (dostępny do ściągnięcia pod adresem: http://code.msdn.microsoft.com/ULSViewer):
|
 |
| |
lub wykorzystać Excela.
Warto zobaczyć:
Zagnieżdżanie znaczników SPMonitoredScope
http://blog.mastykarz.nl/developer-dashboard-monitoring-performance-solutions/
|