GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Cómo crear Tipos de Contenido (Content Types) con Visual Studio 2010 en SharePoint 2010


El presente artículo describe paso a paso la creación de Tipos de Contenido (Content Types) en SharePoint 2010 con Visual Studio 2010, tanto utilizando su descripción XML en el correspondiente fichero elements.xml, como mediante código utilizando la API de SharePoint, para lo cual se incluyen un par de proyectos de Visual Studio a modo de ejemplo.

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.

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.

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.

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).

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.

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).

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.

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).

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.

Descargar ZIP con Proyecto Visual Studio para crear Tipos de Contenido usando eventos de Característica (ContentTypeByFeatureEventReceiver.zip)

Descargar ZIP con Proyecto Visual Studio para crear Tipos de Contenido usando el fichero elements.xml (ContentTypeByTemplate.zip)

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.

 


[Fecha del Artículo (UTC): 29/11/2012]
[Autor: GuilleSQL]



Escribir un Comentario

Para poder escribir un comentario, debe Iniciar Sesión con un usuario.

Si no dispone de un usuario, puede Registrarse y hacerse miembro.

Si dispone de un usuario, pero no recuerda sus credenciales de acceso, puede Restablecer su Contraseña.

Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Esta información se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This information is provided "AS IS" with no warranties, and confers no rights.

Copyright © 2007 GuilleSQL, todos los derechos reservados.
GuilleSQL.com y GuilleSQL.net son también parte de Portal GuilleSQL.

Visitas recibidas (Page Loads) en GuilleSQL (fuente: StatCounter):

screen resolution stats
Visitas