
Estructura XML
Características están constituidas por un archivo "Feature.xml" que define sus propiedades, un numero de archivos xml que definen los elementos que forman parte de la característica y todos los otros archivos que sean necesarios para su funcionamiento, como por ejemplo paginas aspx y archivos de recursos (imágenes, configuraciones, etc.).
El archivo "Feature.xml" define la característica y especifica la localización de ensamblados, archivos, elementos y dependencias que forman parte de ella. La estructura xml del archivo es:
Feature ActivationDependencies ActivationDependency ElementManifests ElementFile ElementManifestLos Atributos que se pueden utilizar en la definición de la Característica se enumeran en la siguiente tabla:
Nombre Tipo Descripción Atributos de Característica Id Guid Un identificador único Title Texto Máximo 255 caracteres con el titulo de la Característica Scope Texto Alcance de la Característica: "Site", "Web" o "Server" DefaultResouceFile Texto Opcional. Ruta relativa al archivo con los recursos Description Texto Descripción de la Característica Version Versión Versión de la Característica: 4 números delimitados por puntos ReceiverAssembly Texto Opcional. Ensamblado para manejar eventos ReceiverClass Texto Opcional. Clase que implementa el proceso de eventos Atributos de ActivationDependency FeatureId Guid El identificador de la Característica de la que se depende Title Texto Opcional. Titulo de la Característica de la que se depende Description Texto Opcional Descripción de la Característica de la que se depende Url Texto Opcional Dirección de una pagina con información sobre la Característica de la que se depende Atributos de ElementFile Location Texto Ruta relativa al archivo de la raíz del elemento Atributos de ElementManifest Location Texto Ruta relativa al archivo de la raíz del elemento Un ejemplo de una definición de Características podría tener la siguiente forma:
<Feature Id="12345678-ABCDE-12345-ABCDE" Title="Caracteristica de Prueba" Description="Caracteristica que contiene Listas y algunos datos para Personalizarlas." Scope="Web"> <InstallationDependencies> <InstallationDependency Id="98765432-EDCBA-54321-EDCBA" Title="Busqueda en el Portal" Description="Caracteristica con funcionalidad de Busqueda " Url="http://www.microsoft.com/sharepoint"> </InstallationDependency> </InstallationDependencies> <PropertySchema> <Fields> <Field Type="Text" Name="NombreProyecto" DisplayName="Nombre del Proyecto"> </Field> </Fields> </PropertySchema> <ElementManifests> <ElementManifest Location="PruebaCaracteristica\Elementos.xml"/> <ElementManifest Location="OtroArchivo\ListaPersonalizada.xml"/> <ElementFile Location="prueba.aspx"/> </ElementManifests> </Feature>Esta es una Característica llamada "Característica de Prueba" que será visible a través de todo el Portal (Scope="Web"), que tiene una dependencia con otra Característica llamada "Búsqueda en el Portal" y define un nuevo campo ("Nombre del Proyecto") en la Lista que será instalada conjuntamente (definida en el archivo de Elementos "ListaPersonalizada.xml").
El Alcance ("Scope") de la Característica indica el nivel en el que será visible y posible de aplicar. Hay tres niveles posibles:
"Site" (visible y utilizable solamente en un sitio) "Web" (alcance de todo el Portal) "Server" (alcance a lo largo de todos los sitios en todos los Portales de la granja de servidores). Los archivos xml que definen los elementos ("ElementManifest") son completamente dependientes de la función que el elemento debe realizar, y por lo tanto siguen la sintaxis propia de la funcionalidad. En general se puede decir que una definición de elemento es basada en código CAML (Colaborative Application Markup Language), que es el lenguaje utilizado para definir las plantillas de SharePoint. Un ejemplo de una definición de un elemento:
<CustomAction Id="CaracteristicaMSDN.SiteSettings" Location="Microsoft.SharePoint.SiteSettings" GroupId="Customization" Sequence="106" Title="Vaya a mi Pagina"> <UrlAction Url="~site/miPagina.aspx"/> </CustomAction> <Module Name="miPagina" Path="" Url=""> <File Url="miPagina.aspx" IgnoreIfAlreadyExists="FALSE"> </Module>Este elemento define un nuevo vinculo en el menú de Configuración del sitio ("SiteSettings"), que tendrá como titulo "Vaya a mi Pagina", y define la localización de la pagina aspx a donde el vinculo hará la redirección ("UrlAction"). La pagina aspx también esta definida en el archivo xml, bajo la sección "Module".
Video
Una demostración sobre la creación de Características desde Visual Studio, creación de los archivos necesarios, su instalación y la activación en el sitio es mostrada en el siguiente video.
Duración: 12:05 minutos