SPDisposeChecker

Hace un par de días, un compañero de trabajo me comento la existencia de una herramienta de Microsoft, que es bastante interesante para aquellos que estén desarrollando para SharePoint y WSS. La herramienta se llama SPDisposeCheck, y nos proporciona una forma rápida de comprobar que en el código que desarrollemos estamos realizando la liberación de los objetos de forma correcta, además de avisarnos en algunas otras circunstancias, como puede ser el uso de métodos que devuelven objetos y no almacenamos el valor de retorno.
Una vez la hemos descargado e instalado (el directorio por defecto es: “C:Program FilesMicrosoftSharePoint Dispose Check” la forma de uso es la siguiente:
SPDisposeCheck [-debug] [–xml ]
-La opción “debug” es opcional y genera una salida con más información
-La opción “xml ” es opcional y genera un fichero xml con la salida, donde indica el nombre del fichero que utilizaremos para la salida.

A continuación se muestran dos ejemplos de uso:

Como se puede observar en el código de la imagen,se utilizan los objetos SPSite y SPWeb pero no se liberan al finalizar las operaciones
Codigo sin Dispose
Si se utiliza la herramienta SPDisposeCheck sobre la dll que genera este código, se puede comprobar que nos indica la línea donde se declara un objeto que posteriormente no es liberado.Un ejemplo de la salida:
Ejemplo de salida con errores

Como se puede observar en el código de la imagen,se utilizan los objetos SPSite y SPWeb y se liberan al finalizar las operaciones.

codigobueno

Si se utiliza la herramienta SPDisposeCheck sobre la dll que genera este código, se puede comprobar que nos indica que en este caso, se están liberando todos los objetos de forma correcta.Un ejemplo de la salida:
Ejemplo de salida sin errores

A continuación os dejo unos enlaces que puedes ser de utilidad:

Roger Lamb’s SharePoint Developer Blog
Best Practices: Using Disposable Windows SharePoint Services Objects
SharePoint Dispose Checker Tool

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *