La creación de Deficiones de Sitio (Site Definitions) es una interesante herramienta, que puede ayudarnos bastante en la automatización de creación de nuevos Sites, personalizados conforme a nuestras necesidades, algo que podemos conseguir desarrollando una Solución con Visual Studio, en la que principalmente deberemos personalizar un par de ficheros XML (WebTemp*.xml y Onet.xml). A continuación describimos brevemente cómo podemos desarrollar este tipo de soluciones, a modo de introducción.
Crearemos un nuevo Proyecto en Visual Studio 2010 de tipo Site Definition, asegurándonos de seleccionar el Net Framework 3.5 y asignaremos el nombre que deseemos para el Proyecto (en nuestro caso, lo llamaremos MySiteDef). En el Wizard para la creación del Proyecto, seleccionaremos la opción Deploy as a farm solution.
Este tipo de Proyectos no suelen incluir código fuente, tan sólo suele utilizarse lenguaje declarativo (XML). Sin embargo, Visual Studio por defecto siempre compila y genera un ensamblado (DLL) con cada Proyecto para ser desplegado con la Solución (WSP), incluso aunque no contenga ninguna clase. Por lo tanto, salvo que por algún motivo estemos incluyendo código fuente en nuestro Proyecto de Visual Studio, será recomendable establecer la propiedad Include Assembly In Package a False en las Propiedades del Proyecto.
El contenido de nuestro nuevo Proyecto de Visual Studio será el siguiente: una página Default.html, y un par de ficheros XML: WebTemp*.xml y Onet.xml.
Principalmente deberemos personalizar los ficheros XML. Para hacernos una primera idea:
- Ficheros WebTemp*.xml. Permite definir qué (y cuantas) Plantillas deseamos crear.
- Ficheros Onet.xml. Permite definir el contenido de cada Plantilla, es decir, la configuración de sus barras de navegación, Características (Features), Listas y Librerías, etc.
Editaremos el fichero WebTemp*.xml, añadiendo tantas configuraciones (elementos Configuration) como Plantillas de Sitio deseemos crear. En nuestro caso de ejemplo, deseamos crear un par de Plantillas de Sitio, que aparecerán ambas en una Pestaña denominada IT Governance (DisplayCategory). Es importante asegurarse que los IDs de los elementos Template sean únicos, para lo cual, podemos utilizar valores por encima de 10000, y cuidar que no coincida con IDs de otras personalizaciones.
Seguidamente editaremos el fichero onet.xml, cuyo aspecto inicial (al crear el proyecto de Visual Studio) es el siguiente.
En nuestro caso de ejemplo, modificaremos el fichero onet.xml, de forma similar a como se muestra en el siguiente ejemplo:
Realizado esto, podremos compilar y desplegar nuestra Solución de Visual Studio en SharePoint, tras lo cual podremos crear nuevos Sites utilizando las nuevas Definiciones de Sitio (Site Definitions).
A modo informativo, nos puede interesar conocer que en cualquier Granja de SharePoint, podemos encontrar un fichero WebTemp.xml en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1033\XML (el caso de 1033 es para una instalación de SharePoint en inglés), que nos puede servir a modo de ejemplo para saber cómo realizar nuestras personalizaciones.
Igualmente, podemos encontrar un fichero Onet.xml en C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML, que nos puede servir a modo de ejemplo para saber cómo realizar nuestras personalizaciones.
Y también podemos encontrar varios ficheros Onet.xml por debajo de C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\SiteTemplates, que igualmente nos pueden servir a modo de ejemplo para saber cómo realizar nuestras personalizaciones.
A continuación se incluyen algunos enlaces de interés, para quien desee ampliar más información:
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.