SPDisposeChecker desde Visual Studio

Recientemente publiqué una entrada que explicaba como se puede utilizar la herramienta SPDisposeCheck desde la consola, pero resulta que he encontrado una forma para poder ejecutarlo desde el Visual Studio (ya no hay excusas para no pasar esta herramienta por nuestro código).  Para hacer uso desde visual studio, y teniendo instalada la herramienta, tenemos que ir al menu Tools (o herramientas) y pulsar sobre External Tools (herramientas externas). Una vez hay, tenemos que crear una nueva y configurarlo de la forma que se indica en la imagen.

externaltools

Una vez este configurado, pulsamos en Apply y luego en Ok.

A partir de ahora, en el menú Tools (Herramientas) encontramos una opción SPDispose Check, la cual lanzara el SPDisposeCheck sobre la dll que se genera en nuestro proyecto y la salida de la herramienta, la tenemos en la ventana de salida de nuestro visual studio.

A continuación se muestran dos ejemplos con el código de la entrada anterior donde se pueden ver los resultados.

Salida VS con errores

Salida VS sin errores

En fin, ya no hay excusas.

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