- ¿Qué es una feature?
Una feature o característica es una conjunto de archivos XML que encapsulan una funcionalidad propia de SharePoint, simplificándolo un poco puede decirse que una feature es un fichero de XML de configuración de dicha funcionalidad que SharePoint reconoce como tal y que permite que mediante el interfaz de la propia aplicación web los usuarios puedan activar o desactivar esa feature y la funcionalidad asociada a ella.
2. ¿Qué clase de Funcionalidad puede implementar una feature?
- Añadir un nuevo elemento en un menú de SharePoint con nueva funcionalidad
- Crear elementos de SharePoint: columnas de sitio, tipos de contenido (content types), lista, sitios, webparts
- Desplegar paginas maestras, layouts, imágenes, plantillas (.stp),....
- Instanciar event handler, timer jobs, workflows.
......
3. ¿De qué ficheros se compone una feature?
Una feature se define con un fichero Feature.xml que es el principal fichero de definición y en el que se detalla desde un guid que identifica a la feature, el titulo, el ámbito (scope), la descripción o los elementos de los que se compone, por otra parte además una feature puede contener un archivo normalmente elements.xml (o cualquier otra denominación) donde se defina la funcionalidad u otros archivos que forman parte de la feature. Normalmente las features se estructuran en estos dos archivos, aunque puede ser que toda la información se encuentre en el feature.xml solamente.
3.1. Atributos del fichero Feature.xml
· Id (*): guid, identificador único de la feature
· Scope (*): ámbito de acción la feature, puede ser Farm, WebApplication, Site o Web.
Es importante tener en cuenta este parámetro a la hora de definir una feature ya que en gran medida dependerá de la funcionalidad de la feature. Digamos que es el nivel al que la feature será activada.
· Title: titulo de la feature
· Description: descripción de la feature
· ImageUrl: url de la imagen asociada a la feature
· ReceiverAssembly:nombre completo del ensamblado que contiene la clase Custom Feature Event Receiver, este atributo siempre lleva asociado el uso del atributo ReceiverClass
· ReceiverClass: nombre de la clase que implementa el Custom Feature Event Receiver.
· ActivationDependencies: este atributo se usa cuando se necesita que para la activación de una feature previamente otra este activada, y si no es así no permitirá la activación.
(*)->OBLIGATORIOS
Estos son solo los atributos más destacados, aquí se puede encontrar una guía completa.
3.2. Elements.xml
Es un fichero opcional si bien es bastante común (la funcionalidad que ofrece puede integrarse dentro del fichero feature.xml, aquí se explican las posibles ventajas). Si nos fijamos en el fichero feature.xml siguiente se observa que contiene un enlace al elements.xml:
<ElementManifest Location="elements.xml" />
Sirve tanto para definir otros archivos de los que se compone nuestra feature: plantillas (.stp), webparts, controles,… como para definir la acción que se llevará a cabo por la feature en sí, en el ejemplo siguiente se muestra un fichero elements.xml que define la acción que realizará la siguiente feature:
3.3. Feature de ejemplo
Este ejemplo define una feature bastante básica que insertará una nueva opción en el menú de acciones de SharePoint y al pulsar sobre el mostrará un mensaje de tipo alert.
Este el Feature.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Feature Id="1B4C3AD8-4213-400c-84BE-C5AFE7C64333"
Title="Feature de prueba"
Description="Descripción de la feature de prueba"
Version="1.0.0.0"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
Elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Id="FeatureDePrueba"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="1010"
Title="Feature de prueba"
Description="Descripción de la Feature de prueba "
ImageUrl="/_layouts/images/ewr033.gif">
<UrlAction Url="javascript:void alert('Feature de prueba');"/>
</CustomAction>
</Elements>
3.4. Uso de la feaure
La feature que acabamos de definir mediante estos dos ficheros es perfectamente usable, para comprobarlo solo necesitamos crear una nueva carpeta dentro de la ruta destinada a las features de SharePoint donde se instalan los binarios de SharePoint, normalmente: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Template\Features
Esta ruta creamos una nueva carpeta en este caso FeaturePrueba y dentro introducimos los ficheros anteriores: feature.xml y elements.xml
![clip_image001[7] clip_image001[7]](/aarias/Lists/Posts/Attachments/33/clip_image0017_60c1253d21974d15ba2080f5bcd2579a_58AA8742.jpg)
Ahora solo faltará instalar dicha feature para que SharePoint la reconozca como tal, para esto usamos el comando de stsadm installfeature (el ejecutable de stsadm en la instalación por defecto de SharePoint se encuentra en C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Bin):
stsadm –o installfeature –name FeaturePrueba
En este punto hay que destacar que el parámetro que se introduce para el atributo “name” es el mismo que el nombre de la carpeta contenedora de la feature que se va a instalar.

Y acto seguido estará disponible para ser activada desde Administrar características de la colección de Sitios (hay que recordar que el ámbito en este caso era Site, por lo tanto se activará para toda la colección de sitios)
![clip_image004[4] clip_image004[4]](/aarias/Lists/Posts/Attachments/33/clip_image0044_60ccb731256d46b2b5c8c987c36e1f67_58AA8742.jpg)
Una vez la activamos, la opción que definíamos estará disponible en el menú de acciones:

Y al pulsar sobre ella, mostrará un mensaje de tipo Alert:
![clip_image006[4] clip_image006[4]](/aarias/Lists/Posts/Attachments/33/clip_image0064_9732ba47f6c948928d63845d9abfddb1_58AA8742.jpg)