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] Les sessions TechDays 2012… par Le blog de Patrick [MVP SharePoint] le il y a 6 heures et 24 minutes

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59