viernes, 19 de febrero de 2010

Optimizando Código: Sabía Ud. que si tiene el Id del Sitio puede accederlo directamente gracias al Modelo de Objetos de SharePoint

Aclaraciones:

El código esta escrito en C# y es para el modelo de objetos de SharePoint 2007.

Es necesario tener alguna básica pero fundamental experiencia escribiendo código para el modelo de objetos de SharePoint para comprender el código.

Recientemente me toco revisar código con el objetivo de optimizarlo y me encontré con ese segmento:

//Como referencia: reunionesWeb es del tipo SPWeb

foreach(SPWeb temp in reunionesWeb.Webs){
               if(temp.ID.Equals(new Guid(ReuWebGuid))){
                   //lblError.Text += "Encontré la Reunión! <br>";
                   reuWebSelected = temp;
               }
           }

Porque hacer esto si podemos hacer lo siguiente:

using (SPWeb reuWebSelected = reunionesWeb.Site.OpenWeb(new Guid(ReuWebGuid)))
{
                      EjecuteCodigoNecesario(reuWebSelected);
}

En vez de recorrer toda la lista de sitios accedemos el mismo por su ID.  Además debemos de ocuparnos del objeto SPWeb que aunque esta dentro del código manejado hay partes que accede haciendo invocaciones a componentes COM + que están fuera del Garbage Collector y por tanto necesitamos indicarle que destruya el objeto en memoria luego  utilizarlo para ello es el using.

Para los mas entendidos reunionesWeb y el Site de reunionesWeb también están en el código optimizado dentro de bloques using para que sean destruidos cuando ya no sean necesarios.

Estaré escribiendo una serie de artículos sobre el tema de optimización de código en SharePoint y las mejores practicas.

Code4Fun!,

Manolo Herrera

No hay comentarios.: