lunes, 10 de septiembre de 2007 22:19
por
jorgedieguez
SharePoint - WebPart con el árbol de sitios
Estos días he estado "jugando" con las extensiones de VisauStudio para los Windows SharePoint Services(VSeWSS)
Las extensiones hacen que los experimentos con desarrollo SharePoint sean muy cómodos y fáciles.
Para mis experimentos he creado una maquina virtual(virtualPC) con:
- Windows Server 2003
- WSS3
- Visual Studio 2005
- Visual Studio 2005 Extensions
La instalación no tiene ningún misterio y en poco tiempo tenemos un entorno para explorar las posibilidades de desarrollo de SharePoint.
Mi primer experimento consiste en hacer un WebPart que pinte el árbol de los sitios.
El Webpart utiliza el control árbol de ASP.NET 2, recorre la jerarquía de sitios y añade los nodos correspondientes.
Lo primero es abrir Visual Studio y crear el proyecto tipo WebPart
El código que introducimos es:
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace TreeWebPart
{
[Guid("9bff5178-c411-4ede-a7fa-42be6d5df451")]
public class TreeWebPart : System.Web.UI.WebControls.WebParts.WebPart
{
public TreeWebPart()
{
this.ExportMode = WebPartExportMode.All;
}
private void ListSubWebs(SPWeb Web, TreeNode TreeNode)
{
TreeNode.Text = Web.Title;
TreeNode.NavigateUrl = Web.Url;
foreach (SPWeb WWeb in Web.GetSubwebsForCurrentUser())
{
TreeNode ContainerNode = new TreeNode();
TreeNode.ChildNodes.Add(ContainerNode);
ListSubWebs(WWeb, ContainerNode);
}
}
protected override void CreateChildControls()
{
base.CreateChildControls();
TreeView SitesTree = new TreeView();
SPSite ContextSite = SPContext.Current.Site;
SPWebCollection RootSites = ContextSite.RootWeb.Webs;
foreach(SPWeb RootSubSite in RootSites)
{
TreeNode RootTreeNode=new TreeNode();
SitesTree.Nodes.Add(RootTreeNode);
ListSubWebs(RootSubSite, RootTreeNode);
}
this.Controls.Add(SitesTree);
}
protected override void Render(HtmlTextWriter writer)
{
RenderChildren(writer);
}
}
}
Ahora solo falta presionar la tecla (F5) para ver el resultado, las extensiones de SharePoint compilarían el Webpart, crearan el fichero de despliegue, desplegaran el webpart y reiniciaran el IIS(tantas cosas con solo pulsar una tecla:-))
Nos queda ir a SharePoint y añadir nuestro nuevo WebPart a la página.
Ahora podemos incluso hacer depuración de nuestro WebPart, utilizando el menú "Debug" - "Attach to process" y seleccionando el proceso w3wp.exe.
Todo esto hace más agradable la experiencia con el desarrollo en SharePoint liberando al desarrollador de pesadas manipulaciones para desplegar el WebPart.
Ahora bien una vez hechos los experimentos fáciles hay que aplicar las buenas prácticas. No hay que olvidar que un WebPart puesto por nosotros en una página es una pieza que se ejecutara por muchos usuarios al mismo instante y en solicitudes sucesivas.
En la siguiente URL adjunta se enumeran las técnicas que se deben aplicar para desarrollar WebParts:
http://msdn2.microsoft.com/en-us/library/bb687949.aspx