SharePoint 2007 : Dispose Patterns et l'outil SPDisposeCheck

[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/>

Publié vendredi 30 janvier 2009 09:39 par phil
Classé sous , , ,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

About phil

Philippe Sentenac est Consultant SharePoint à Wygwam en région Parisienne. Il intervient essentiellement sur des missions liées à SharePoint (2007 et 2010 ) mais aussi autour du Web 2.0. Plus généralement, il s'intéresse à l'ASP.Net (MVC) , à Silverlight, et à tout ce qui est orienté Web en rapport avec les nouvelles technologies, qu'il pratique depuis 2006. Féru de développement, il est passionné par les problématiques de méthodologies et d'industrialisation du développement.

Les 10 derniers blogs postés

- [SharePoint] Roadshow Microsoft SharePoint Solutions par Le petit blog de Pierre / Pierre's little blog le il y a 3 heures et 8 minutes

- Les actualités de c2i.fr : 28 Mai - 3 Juin par Richard Clark le il y a 22 heures et 5 minutes

- [Office 365] Utiliser le modèle objet client SharePoint en PowerShell vers SharePoint Online par Blog de SPBrouillet (Pierrick BROUILLET) le 06-03-2012, 19:07

- Roslyn fluent APIs: RoslynHelper NuGet package par Matthieu MEZIL le 05-31-2012, 01:24

- Pour rappel ! Les spécifications des protocoles Office et SharePoint sont disponibles sur MSDN par Julien Chable le 05-29-2012, 12:33

- Joyeux anniversaire Nix par The diary of EBArtSoft le 05-29-2012, 01:00

- Imagine Cup 2012, Make a Sign en finale par Le Blog (Vert) d'Arnaud JUND le 05-23-2012, 12:57

- Kinect 1.5 is out ! par Cyril Sansus le 05-21-2012, 17:47

- Les actualités de la semaine sur c2i.fr (14 mai - 20 mai) par Richard Clark le 05-21-2012, 08:50

- Reactive Extensions : Consommer des services avec Rx Partie 3, les pièges à éviter par Léonard Labat le 05-20-2012, 23:45