[via Paul Andrew]
SPDisposeCheck avait été présenté dernièrement sur le blog de l'équipe SharePoint dans un post relativement récent : Announcing SPDisposeCheck tool for SharePoint Developers
C'est un outil qui va vous permettre de vérifier que vous libérez bien les ressources liées à différents objets SharePoint comme SPSite, SPWeb, SPLimitedWebPartManager.Web, etc... dans tout vos développements SharePoint.
En fait, il va s'assurer que vous respectez bien les bonnes pratiques spécifiés dans les posts suivants :
Par exemple, il va analyser votre code pour que vous évitiez de faire ce genre de choses (extrait du post de Roger Lamb's):
1: void SPLimitedWebPartManagerLeak()
2: {
3: using (SPSite siteCollection = new SPSite("http://moss"))
4: {
5: using (SPWeb web = siteCollection.OpenWeb())
6: {
7: SPFile page = web.GetFile("Source_Folder_Name/Source_Page");
8: SPLimitedWebPartManager webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared);
9: // SPWeb object webPartManager.Web leaked
10: } // SPWeb object web.Dispose() automatically called
11: } // SPSite object siteCollection.Dispose() automatically called
12: }
13:
14: void SPLimitedWebPartManagerNoLeak()
15: {
16: using (SPSite siteCollection = new SPSite("http://moss"))
17: {
18: using (SPWeb web = siteCollection.OpenWeb())
19: {
20: SPFile page = web.GetFile("Source_Folder_Name/Source_Page");
21: using (SPLimitedWebPartManager webPartManager = page.GetLimitedWebPartManager(PersonalizationScope.Shared))
22: {
23: try
24: {
25: // ...
26: }
27: finally
28: {
29: webPartManager.Web.Dispose();
30: }
31: }
32: } // SPWeb object web.Dispose() automatically called
33: } // SPSite object siteCollection.Dispose() automatically called
34: }
L'avantage évident de cet outil est d'être sur d'obtenir une application performante qui ne consomme pas plus de mémoire que nécessaire et qui ne conserve pas indéfiniment des objets SharePoint qui vont maintenir des accès couteux à la base de données SharePoint.
Bref un seul conseil à vous donner : allez le récupérer et tester le, ça va vous changer la vie !
Vous pouvez le télécharger sur le site de la MSDN Code Gallery : http://code.msdn.microsoft.com/SPDisposeCheck
<Philippe/>