Inclusión de información de empaquetado e implementación en los elementos del proyecto
Todos los elementos de proyecto de SharePoint de Visual Studio tienen propiedades que puede usar para proporcionar datos adicionales cuando el proyecto se implementa en SharePoint. Estas propiedades son las siguientes:
Propiedades de características
Receptores de características
Referencias de salida del proyecto
Entradas de controles seguros
Estas propiedades aparecen en la ventana Propiedades.
Propiedades de características
Utilice la propiedad Propiedades de características para especificar los datos que usa la característica. Los datos de Propiedades de características es un conjunto de valores (almacenados como pares clave-valor) que se incluye con una característica cuando se implementa en SharePoint. Una vez implementada la característica, se puede obtener acceso a los valores de propiedad en el código.
Al agregar un valor de propiedad de característica a un elemento de proyecto, el valor se agrega como un elemento en el manifiesto de la característica del elemento. En un proyecto de modelo de conectividad a datos profesionales (BDC), por ejemplo, la propiedad de característica ModelFileName aparece como:
<Property Key="ModelFileName" Value="BdcModel1\BdcModel1.bdcm" />
Después de establecer un valor de Propiedad de característica, se agrega como un elemento FeatureProperty en el archivo .spdata del proyecto. Para obtener información sobre cómo obtener acceso a las propiedades en SharePoint, vea Clase SPFeaturePropertyCollection.
Los valores de propiedad de característica idénticos de todos los elementos de proyecto se combinan en el manifiesto de característica. Sin embargo, si dos elementos de proyecto diferentes especifican la misma clave de propiedad de característica con valores no coincidentes, se produce un error de validación.
Para agregar propiedades de características directamente al archivo de características (.feature), llame al método del modelo de objetos Addde SharePoint de Visual Studio. Si usa este método, tenga en cuenta que la misma regla sobre cómo agregar valores de propiedad de característica idénticos en Propiedades de características también se aplica a las propiedades agregadas directamente al archivo de características.
Receptor de características
Los receptores de característica son código que se ejecuta cuando se producen determinados eventos con una característica de un elemento de proyecto. Por ejemplo, puede definir receptores de características que se ejecutan cuando se instala, activa o actualiza la característica. Una manera de agregar un receptor de características es agregarlo directamente a una característica, como se describe en Tutorial: Agregar receptores de eventos de características. Otra manera es hacer referencia a un nombre de clase y ensamblado del receptor de características en la propiedad Receptor de características.
Método directo
Al agregar un receptor de características a una característica directamente, un archivo de código se coloca en el nodo Característica de Explorador de soluciones. Al compilar la solución de SharePoint, el código se compila en un ensamblado e implementa en SharePoint. De forma predeterminada, las propiedades de la característica Ensamblado receptor y Clase receptora hacen referencia al nombre de clase y al ensamblado.
Reference (método)
Otra manera de agregar un receptor de características es usar la propiedad Receptor de características de un elemento de proyecto para hacer referencia a un ensamblado de receptor de características. El valor de la propiedad Receptor de características tiene dos subpropiedades: Ensamblado y Nombre de clase. El ensamblado debe usar su nombre completo, "seguro" y el nombre de clase debe ser el nombre de tipo completo. Para más información, vea Ensamblados con nombre seguro. Después de implementar la solución en SharePoint, la característica usa el receptor de características al que se hace referencia para controlar los eventos de características.
En tiempo de compilación de la solución, los valores de propiedad del receptor de características de la característica y sus proyectos se combinan para establecer los atributos ReceiverAssembly y ReceiverClass del elemento Característica en el manifiesto de característica del archivo de la solución de SharePoint (.wsp). Por lo tanto, si se especifican los valores de propiedad Ensamblado y Nombre de clase de un elemento de proyecto y una característica, los valores de propiedad de elemento de proyecto y característica deben coincidir. Si los valores no coinciden, recibirá un error de validación. Si desea que un elemento de proyecto haga referencia a un ensamblado de receptor de características distinto del que usa su característica, muévalo a otra característica.
Si hace referencia a un ensamblado receptor de características que aún no está en el servidor, también debe incluir el propio archivo de ensamblado en el paquete; Visual Studio no lo agrega por usted. Al implementar la característica, el archivo de ensamblado se copia en la caché global de ensamblados (GAC) del sistema o en la carpeta Rango del directorio físico de SharePoint. Para más información, vea Cómo: Adición y eliminación de ensamblados adicionales.
Para obtener más información sobre los receptores de características, vea Receptor de eventos de características y eventos de características.
Referencias de salida del proyecto
La propiedad Referencias de salida del proyecto especifica una dependencia, como un ensamblado, que el elemento de proyecto debe ejecutar. Por ejemplo, supongamos que la solución tiene un proyecto BDC y un proyecto de clase. Si el proyecto BDC tiene una dependencia del ensamblado generado por el proyecto de clase, puede hacer referencia al ensamblado en la propiedad Referencias de salida del proyecto BDC. Cuando se empaqueta el proyecto BDC, el ensamblado dependiente se incluye en el paquete.
Las referencias de salida del proyecto suelen ser ensamblados, pero en algunos casos (como los proyectos de Silverlight) pueden ser otros tipos de archivo.
Para obtener más información, vea Cómo: Agregar una referencia de salida del proyecto.
Entradas de controles seguros
SharePoint proporciona un mecanismo de seguridad, denominado entradas de controles seguros, para limitar el acceso de usuarios que no son de confianza a determinados controles. Por diseño, SharePoint permite a los usuarios que no son de confianza cargar y crear páginas ASPX en el servidor de SharePoint. Para evitar que estos usuarios agreguen código no seguro a las páginas ASPX, SharePoint limita su acceso a controles seguros. Los controles seguros son controles ASPX y elementos web designados como seguros y que cualquier usuario del sitio puede usar. Para obtener más información, vea Paso 4: Agregar el elemento web a la lista de controles seguros.
Cada elemento de proyecto de SharePoint en Visual Studio tiene una propiedad denominada Entradas de controles seguros que tiene dos subpropiedades booleanas: Seguro y Seguro frente a script. La propiedad Seguro especifica si los usuarios que no son de confianza pueden acceder a un control. La propiedad Seguro frente a script especifica si los usuarios que no son de confianza pueden ver y cambiar las propiedades de un control.
Se hace referencia a las entradas de control seguras sobre una base de ensamblado. Para agregar entradas de control seguras al ensamblado de un proyecto, escríbalas en la propiedad Safe Control Entries del elemento del proyecto. Sin embargo, también puede agregar entradas de control seguras al ensamblado de un proyecto a través de la pestaña Avanzadas del Diseñador de paquetes al agregar un ensamblado adicional al paquete. Para obtener más información, vea Cómo: Marcar controles como controles seguros o Registrar un ensamblado de elementos web como un control seguro.
Entradas XML para controles seguros
Al agregar una entrada de control segura a un elemento de proyecto o al ensamblado del proyecto, se escribe una referencia al manifiesto del paquete en el siguiente formato:
<Assemblies>
<Assembly Location="<assembly name>.dll"
DeploymentTarget="<'GlobalAssemblyCache' or 'WebApplication'">>
<SafeControls>
<SafeControl Assembly="<assembly name>.dll" Namespace=
"<SharePoint project name>" Safe="<true/false>"
TypeName="<control name>"
SafeAgainstScript="<true/false>" />
</SafeControls>
</Assembly>
</Assemblies>