Algo que tenemos que realizar muy habitualmente al desarrollar una solución de SharePoint 2010 utilizando Visual Studio 2010, es definir Columnas de Sitio (Site Columns). Básicamente podemos hacerlo de dos formas, utilizando código (es decir, programando los eventos de activación y desactivación de la correspondiente Feature) o incluyendo la descripción XML de las columnas en ficheros elements.xml (esta última opción, quizás la más habitual).
En ambos casos, puede resultar de gran comodidad crear gráficamente las Columnas de Sitio, utilizando SharePoint Designer o desde la Administración de nuestro Sitio. De este modo, podremos a continuación exportar las Columnas de Sitio para obtener el XML correspondiente a las mismas ó importarlas directamente en nuestro proyecto de Visual Studio si tenemos intaladas las extensiones CKSDev, evitando tener que escribir nosotros el código XML de las columnas desde cero. O al menos, nos servirá para modelar nuestra aplicación, antes de empezar su codificación, que también es una buena práctica.
En cualquier caso, es importante tener en cuenta que sí bien es cierto que utilizar la descripción XML de las Columnas de Sitio es más cómodo, debemos recordar que desplegar las Columnas mediante código nos permitirá poder Depurar, algo que podemos necesitar en ciertas ocasiones.
Crear Columnas de Sitio utilizando código en la activación de la Feature
Abriremos Visual Studio 2010 y crearemos un proyecto de tipo Empty SharePoint Project para SharePoint 2010.
Seleccionaremos la opción Deploy as a farm solution. Click Finish para continuar.
Añadiremos una nueva Característica (Feature) al Proyecto de Visual Studio.
Seguidamente, añadiremos un nuevo Event Receiver a la Característica (Feature).
En el evento FeatureActivated, escribiremos el código necesario para crear las Columnas de Sitio conforme a nuestras necesidades. En nuestro caso de ejemplo creamos dos Columnas de Sitio, una completamente por código, y la otra utilizando la descripción XML de la columna que deseamos crear.
En el evento FeatureDeactivating, escribiremos el código necesario para eliminar las Columnas de Sitio que creamos al activar la Característica (Feature).
Realizado esto, habremos acabado nuestro trabajo, y ya tan sólo tendremos que compilar y ejecutar nuestra Solución de SharePoint, para poder comprobar como crea y elimina las Columnas de Sitio al Activar y Desactivar la Característica (Feature).
Crear Columnas de Sitio incluyendo la descripción XML de columnas en el Elements.XML
Abriremos Visual Studio 2010 y crearemos un proyecto de tipo Empty SharePoint Project para SharePoint 2010.
Seleccionaremos la opción Deploy as a farm solution. Click Finish para continuar.
Añadiremos un nuevo elemento a nuestro Proyecto.
Seleccionaremos Empty Element, daremos un nombre al nuevo elemento (ej: SiteColumns), y click en Add.
Esto nos creará de forma implícita una nueva Característica (Feature). Editaremos el fichero Elements.xml del elemento recién creado.
En su interior, añadiremos los tags XML necesarios para añadir las Columnas de Sitio (Site Columns) deseadas. Como comentamos antes, puede ser útil diseñar nuestras columnas con SharePoint Designer o directamente desde SharePoint, para seguidamente poder exportar las Columnas de Sitio y así obtener el código XML de dichas columnas sin mucho esfuerzo.
En nuestro caso de ejemplo, incluiremos la descripción XML de dos columnas, tal y como se muestra en la siguiente pantalla capturada.
Y ya está. Compilar, ejecutar, y comprobar cómo se crean las Columnas de Sitio que hemos definido en nuestro proyecto.
Despedida y Cierre
En el presente artículo hemos visto varias formas de crear Columnas de Sitio en SharePoint 2010 utilizando un Proyecto de Visual Studio 2010. Ya sólo nos queda incluir el código fuente de los Proyectos que hemos realizado a modo de ejemplo.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.