Resumiendo varias referencias en la red de las mejores prácticas elaboré la siguiente tabla para referencia de los desarrolladores en SharePoint.
Aclaración:
Esta es una guía rápida de referencia. Si no ha desarrollado con el modelo de objetos de SharePoint le será difícil comprenderlo al inicio. Le recomiendo lea las referencias y experimente con el modelo de objetos primero.
| Mala u Obsoleta Práctica | Práctica Recomendada | Breve Explicación |
| SPControl.GetContextSite(context) | SPContext.Current.Site | Para compatibilidad con versiones anteriores WSS V2.0 |
| SPControl.GetContextWeb(context) | SPContext.Current.Web | Para compatibilidad con versiones anteriores WSS V2.0 |
| SPList.Items.Count | SPList.ItemsCount | Cargará toda la lista de elementos. En vez de ello utilice la propiedad. |
| SPList.Items[Guid] | SPList.GetItemByUniqueId(Guid) | Cargará toda la lista de elementos. En de Vez obtendrá el elemento que esta buscando. |
| SPList.Items[Int32] | SPList.GetItemById(Int32) | Cargará toda la lista de elementos. En de Vez obtendrá el elemento que esta buscando. |
| SPList.Items.GetItemById(Int32) | SPList.GetItemById(Int32) | Cargará toda la lista de elementos. En de Vez obtendrá el elemento que esta buscando. |
| for(idx){ SPList.Items[idx] } | SPListItemCollection oListItems = oList.Items; for(idx){ oListItems[idx] } | En el for loop carga los elementos una y otra vez. En vez de ello declare SPListItemCollection y carge solo una vez. |
| SPWeb.Lists [string] | SPWeb.GetList(string) | Carga toda las listas del sitio. En vez de ello Obtenga la lista especifica. |
| SPQuery oQuery = new SPQuery(); | SPQuery oQuery = new SPQuery(); oQuery.RowLimit = 2000; | Especifique siempre el limite de filas a retornar. En vez de obtener una lista de quien sabe cuantos elementos. |
| SPContext.Current.Site | NO EXPLICIT DISPOSE REQUIRED | |
| SPContext.Current.Web | NO EXPLICIT DISPOSE REQUIRED | |
| new SPSite(url) | using(SPSite s = new SPSite(url)){} | Utilice Using para hacer el Dispose |
| SPSite.OpenWeb() | using(SPWeb w = s.OpenWeb()){} | Utilice Using para hacer el Dispose |
| foreach(SPWeb w = SPSite.AllWebs){} | foreach(SPWeb w = SPSite.AllWebs){ try{} finally{ if(w != null)w.Dispose(); } } | Utilice try finally para hacer el Dispose Explicito. |
| SPSite.RootWeb | NO EXPLICIT DISPOSE REQUIRED | |
| SPWeb.ParentWeb | NO EXPLICIT DISPOSE REQUIRED | |
| SPWeb nuevo = SPWeb.Webs.Add(); | using(SPWeb nuevo = SPWeb.Webs.Add()) { …} | Utilice Using para hacer el Dispose |
| foreach(SPWeb w = SPSite.Webs){} | foreach(SPWeb w = SPSite.Webs){ try{} finally{ if(w != null)w.Dispose(); } } | Utilice try finally para hacer el Dispose Explicito. |
Code4Fun!,
Manolo Herrera
Referencias en la Web:
http://blogs.devhorizon.com/blogs/reza_on_blogging/archive/2006/07/16/414.aspx
http://msdn.microsoft.com/en-us/library/aa973248.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spcontrol.aspx
No hay comentarios.:
Publicar un comentario