SharePoint Server 2007 .. On Code!

Buenas a todos.


Disfrutando de unos días de playa y sol me he puesto a revisar un poco el modelo de objetos de nuestro amigo SharePoint ( vamos, lo que hace todo ser normal y corriente … estar en la playa y llevarse el portatil del curro [:-)].


Dentro del entorno web de administración que nos ofrece SharePoint es muy sencillo el crear nuevos sitios, listas y elementos en ellas, pero vamos a ver la forma de crear estos mismos elementos desde .Net.


Recordaros que el modelo de objetos .Net de SharePoint solo puede ejecutarse en una máquina en la que estén instalados los servicios SharePoint ( Windows SharePoint Services ) o Office SharePoint Server, por lo que las máquinas que utiliceis para desarrollo han de tener uno de estos dos productos instalados.


Bien, pues una vez dicho esto vamos a ver cuales serían los pasos necesarios para crear un nuevo sitio SharePoint.


Lo primero que hacemos es instanciar los objetos principales de todo el entorno SharePoint, que son la granja de servidores ( ya sea 1 o varios ), la colección de servidores que hay en la granaja y las aplicaciones web que hay creadas en ellos.







SPFarm _farm = SPWebService.ContentService.Farm;
SPServerCollection _servers = _farm.Servers;
SPWebApplicationCollection _apps = SPWebService.ContentService.WebApplications;

A este nivel tenemos acceso a todo el sistema de administración del servidor SharePoint pudiendo realizar modificaciónes de cualquier aplicación web que tenemos creada en nuestro sistema, así como aplicaciones no manejadas por SharePoint y que podrían estar publicando otras aplicaciones web de nuestro servidor.


El siguiente paso es obtener el objeto que hace referencia a la colección de sitios de la aplicación, abrirlo y obtener la colección de webs que hay configuradas en él.







SPSite _siteCollection = new SPSite(“http://localhost/”);
SPWeb SitioNivelSuperior = _siteCollection.OpenWeb();
SPWebCollection webCollection = SitioNivelSuperior.Webs;

A este nivel tenemos acceso a todos los elementos de la colección de sitios, por lo que podemos crear el nuevo sitio como queríamos hacer.







SPWeb _newWeb = webCollection.Add( “SubSitio”,
                                               “Tiítulo para el nuevo Subsitio”,
                                               “Descripción del nuevo SubSitio”,
                                               Convert.ToUInt32(1033),
                                               “STS#0”,  
                                               false,
                                               false);

El método de creación de nuevos sites requiere los siguientes parámetros:



  • URL del nuevo Sitio
  • Título del nuevo Sitio.
  • Descripción.
  • Identificador del idioma en el que está el servidor.
  • Plantilla que queremos utilizar para la creación del Sitio
  • Utilización de permisos únicos para este sitio o debe heredar del site superior.
  • En caso de existir … ¿debe modificarse el sitio existente para ajustar a la plantilla seleccionada?

 Una vez ejecutado este código, si todo ha ido bien, tenemos nuestro nuevo site creado y preparado para utilizarse.


 Vamos a continuar creando una lista en la que vamos a almacenar nuestra información. Para ello utilizamos el objeto ‘_newWeb’ que hace referencia al nuevo site que acabamos de crear. Vamos a crear una nueva lista.







SPListCollection _lists = nuevaWeb.Lists;
Guid IdLista = listas.Add(“Nueva Lista”, “Descripción de la nueva Lista”, SPListTemplateType.GenericList);

SPList lista = _lists.GetList(IdLista, true);
lista.OnQuickLaunch = true;

lista.Update();

Bien, pues ahora solo nos queda definir las columnas de datos que va a tener esta lista. 







lista.Fields.Add(“First Name”, SPFieldType.Text, true);
lista.Fields.Add(“LastName”, SPFieldType.Text, true);
lista.Fields.Add(“Phone”, SPFieldType.Text, true);
lista.Update();

 Genial! Ya tenemos creada la lista con nuestros campos y todo preparado para almacenar nueva información. Vamos a crear un par de elementos de prueba para ver como de sencillo es:







SPItem newItem = lista.Items.Add();

newItem[“First Name”] = “David”;
newItem[“LastName”] = “Herraiz “;
newItem[“Phone”] = “555 55 55 “;
newItem[“Email”] = “dherraiz@hotmail.com”;

newItem.Update();

Bien, pues si ahora nos acercamos a nuestro sitio SharePoint tendremos un site nuevo, con una lista nueva y nuestros elementos que hemos creado por código.


Espero haber sido de ayuda … me voy a la playa que me lo he ganado 🙂


Un Saludo! 

2 comentarios en “SharePoint Server 2007 .. On Code!”

  1. buenas ante todo, quisiera saber si estos codigos funcionan igual para SharePoint Portal 2003?
    Existe alguna manera de crear una intranet totalmente modificada a gusto en SharePoint Portal 2003?
    Gracias de antemano,
    Lord of the Rings

  2. Hola Lord.

    Si, claro, por supuesto!!

    Una de las cosas que más piden los clientes que solicitan una web basada en SPS es que no se parezca en nada a SPS … aunque suene un poco raro, no sería la primera vez que me piden algo así.

    En SPS 2003 es una tarea algo más compleja el cambiar el aspecto por completo, pero ahora en 2007 es una tarea bastante más sencilla.

    Un Saludo!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *