Sutilezas del modelo de objetos de MOSS
Cuando queremos acceder al modelo de objetos de MOSS desde el código de una aplicación web, ya sabemos que tenemos objetos como SPContext, que nos permiten hacer llamadas como las siguientes para movernos por nuestros sitios o colecciones de sitios:
SPSite oSiteCollection = SPContext.Current.Site;
SPWeb oWebSite = SPContext.Current.Web;
o también desde una página o webpart:
SPWeb oWebSite = SPControl.GetContextWeb(this.Page.Context);
La cosa es que sobre las referencias que obtengamos mediante estas llamadas, no debemos llamar los métodos Close() ni Dispose() ya que Microsoft nos advierte de que el comportamiento podría ser impredecible.
Lo que conviene recordar es que cuando usemos el indexador
SPWeb oWebSite = SPContext.Current.Site.AllWebs[”miSitio”];
el objeto de tipo SPWeb resultante sí debe ser eliminado correctamente. Son cosas que conviene tener en cuenta para que nuestra aplicación no sufra de errores extraños o problemas considerables de rendimiento en el futuro.
Sobre SPContext una nota, y es que no espereis que funcione en un WorkFlow de MOSS.