Ya hemos hablado en ocasiones anteriores sobre los Tipos de Contenido (Content Types) de SharePoint, como por ejemplo en el artículo Tipos de Contenidos, Listas, Librerías de Documentos, y Vistas de MOSS 2007. En esta ocasión vamos a volver a tocar este tema, enfocándolo desde el punto de vista del desarrollador de soluciones para SharePoint 2010 y Visual Studio 2010, y centrándonos en la creación de Tipos de Contenido en SharePoint desde Visual Studio 2010.
Básicamente vamos a ver dos formas distintas de crear Tipos de Contenido (Content Types) desde Visual Studio:
- Utilizando la descripción XML del Tipo de Contenido. Es quizás el método más apropiado en la mayoría de los casos, pero tiene el inconveniente de que no permite depurar desde Visual Studio, aunque por contra es muy fácil importar un Tipo de Contenido existente en un Site de SharePoint (ej: desarrollado gráficamente desde la interfaz de SharePoint o con SharePoint Designer) en un proyecto de Visual Studio utilizando las extensiones CKSDev.
- Utilizando código, por ejemplo, desde los eventos de Activación y Desactivación de Características (Features). Probablemente más complejo y menos apropiado en la mayoría de ocasiones, tiene la ventaja de que puede ser depurado fácilmente desde Visual Studio.
Dicho esto, empezamos.
Crear Content Types utilizando la plantilla de Visual Studio y modificando el fichero Elements.xml
Abriremos Visual Studio 2010 y crearemos un proyecto de tipo Content Type para SharePoint 2010. Téngase en cuenta, que también es posible crear un nuevo proyecto de tipo Empty SharePoint Project, y seguidamente agregar un nuevo ítem de tipo Content Type. El resultado será el mismo.
Seleccionaremos la opción Deploy as a farm solution. Click Next para continuar.
A continuación deberemos seleccionar el Tipo de Contentido (Content Type) del que deseamos heredar o extender, al que denominaremos el Tipo de Contenido Padre. Click Finish para finalizar el asistente.
Realizado esto, habremos creado nuestro Proyecto de Visual Studio, con nuestro Content Type asociado a una Característica (Feature). A partir de aquí, el trabajo que realizaremos será modificando la descripción XML de nuestro Content Type, empezando por las propiedades que describe el Nombre, Grupo y Descripción de nuestro Tipo de Contenido. Es muy importante fijarse en la propiedad ID, un valor hexadecimal que contiene el ID del Tipo de Contenido Padre (0x0108 corresponde a Task) seguido de dos cero y de un valor hexadecimal de 16 bytes (cuál GUID).
Para continuar, añadiremos un par de Columnas de Sitio. Para no repetir lo mismo que ya hemos visto en otras ocasiones, añadiremos las mismas dos columnas que añadimos en el anterior Post Cómo crear Columnas de Sitio con Visual Studio 2010 en SharePoint 2010, en particular las columnas Approve y Approve Description del ejercicio Crear Columnas de Sitio incluyendo la descripción XML de columnas en el Elements.XML, tal y como se muestra en la siguiente pantalla capturada.
Volvemos al Elements.xml de nuestro Content Type, para realizar varias modificaciones. Básicamente, añadiremos dos nuevas columnas (Approve y Approve Description).
Con esto, prácticamente hemos acabado. El único detalle a tener en cuenta, sería crear una nueva Característica (Feature), de tal modo que asignemos las Columnas de Sitio a una Característica y el Tipo de Contenido a otra Característica, para seguidamente añadir una dependencia entre ambas Características, para garantizar el despliegue de las Columnas de Sitio antes del Content Type. Y con esto, ya estamos listos para compilar, desplegar y probar.
Crear Content Types utilizando código en la activación de la Feature
De forma similar a cómo hicimos en el anterior artículo Cómo crear Columnas de Sitio con Visual Studio 2010 en SharePoint 2010, en esta ocasión vamos a crear un Tipo de Contenido utilizando código, en particular, codificando los eventos de Activación y Desactivación de una Característica (Feature).
A continuación se muestra un pantallazo con parte del código fuente utilizado para la creación del Tipo de Contenido en el evento de Activación de una Característica.
La siguiente pantalla capturada muestra el código utilizando para eliminar el Tipo de Contenido al Desactivar dicha Característica (Feature).
Despedida y Cierre
Llegados a este punto, ya sólo queda incluir los enlaces de descarga correspondientes a los proyectos de Visual Studio realizados durante la creación del presente artículo, que pueden apreciarse a continuación.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.