Hospedar webs, webs de complementos y componentes de SharePoint en SharePoint
Cuando se instala un complemento que incluye componentes de SharePoint en un sitio web, aparece en una lista en la página Contenido del sitio desde la que se puede iniciar. Esta lista, que es el punto de inicio del complemento, es la única incorporación necesaria en el sitio web, aunque ciertos elementos se pueden agregar opcionalmente, como una acción personalizada o una parte del complemento. Para obtener información acerca de estas opciones, vea Acceso al complemento desde la interfaz de usuario.
Hospedar webs, webs de complemento y el dominio aislado
A excepción de estos elementos de interfaz de usuario, el contenido y los componentes de Complementos de SharePoint, como listas, tipos de contenido, flujos de contenido y páginas, se implementan en un sitio web diferente en un dominio aislado especial. Este hecho se oculta en gran parte al usuario. El sitio web especial en el que el complemento se implementa se denomina web del complemento. El sitio web en el que el complemento se instala se denomina web del host. Aunque la web del complemento tiene su propio dominio aislado, está en la misma colección de sitios que la web del host. (Una excepción a esta regla es cuando el complemento se instala con el ámbito de inquilino. En ese escenario, la web del complemento se encuentra en la colección de sitios del catálogo de complementos corporativo).
La ilustración 1 muestra una web del host con dos complementos de SharePoint instalados. El complemento 1 tiene componentes remotos, pero no tiene componentes de SharePoint, por lo que no tiene ninguna web del complemento. El complemento 2 no tiene componentes remotos, pero tiene dos listas de SharePoint y un flujo de trabajo. Se han implementado en un subsitio aislado (un complemento de SharePoint puede tener componentes remotos y componentes hospedados por SharePoint, aunque en este diagrama ningún complemento tiene ambos).
Ilustración 1: Web del host con un complemento hospedado por el proveedor y un complemento hospedado por SharePoint
Por ejemplo, imaginemos que un complemento, con componentes de SharePoint, además de los elementos de la interfaz de usuario que se pueden implementar en un sitio web host, se instala en un sitio web host en la siguiente dirección URL:
https://www.fabrikam.com/sites/Marketing
La Complemento de SharePoint se implementaría en un sitio web que se hubiera acabado de crear con una dirección URL como la siguiente:
http://add-in-bdf2016ea7dacb.fabrikamadd-ins.com/sites/Marketing/Scheduler
Tenga en cuenta que esta dirección URL tiene la estructura siguiente:
https://` _Add-in_Prefix_ `-` _Add-in_ID_ `.` _Add-in_Base_Domain_ `/` _Domain_Relative_URL_of_Host_Web_ `/` _Add-in_Name_
Los marcadores se definen como sigue:
- Add-in_Prefix es cualquier cadena establecida por el administrador de la granja de servidores en Administración central. El valor predeterminado es "default". En este ejemplo, el administrador ha cambiado esto a "complemento".
- ID_Complemento es un número hexadecimal que se genera internamente una vez se instala el complemento.
- Dominio_Base_Complemento es una cadena que establece el administrador de granja en la Administración central o con el Shell de administración de SharePoint. No debe establecerse en un subdominio de la aplicación web de SharePoint, o el objetivo del aislamiento de complementos no se cumplirá en absoluto. En este ejemplo, el administrador ha quitado "www." y ha agregado "add-ins" al nombre de la empresa. Así que
fabrikamadd-ins.com
es el dominio base del complemento. - URL_Relativa_Dominio_de_Web_Host es la dirección URL relativa de la web del host primaria, en este caso
sites/Marketing
. - Nombre_Complemento es el valor del atributo Name del elemento App en el archivo appmanifest.xml.
Existen dos razones principales por las que se implementan componentes de SharePoint en sitios web de complemento, en lugar de en sitios web de host. Ambas tienen que ver con la seguridad.
Obligatoriedad de los permisos del complemento: en el modelo para aplicaciones para SharePoint, los complementos tienen su propia identidad y disponen de permisos que no son necesariamente iguales a los que tiene el usuario que ejecuta el complemento. Estos permisos del complemento son necesarios cuando se instala un complemento y los otorga la persona que instala dicho complemento, siempre que dicha persona disponga de todos los permisos que solicita el complemento (si el usuario que instala el complemento no dispone de todos los permisos que solicita el complemento, el usuario no podrá instalarlo). Si se confiere a cada complemento su propio dominio, SharePoint podrá identificar con fiabilidad las solicitudes que efectúa el complemento y comprobar los permisos de este. Para más información sobre los permisos del complemento, consulte Permisos de complemento.
Seguridad para la generación de scripts entre dominios: los exploradores modernos admiten una "directiva de uso del mismo origen" con respecto a las llamadas al método JavaScript. Al implementar cada Complemento de SharePoint en su propio dominio, SharePoint se sirve de la directiva de uso del mismo origen para garantizar que JavaScript en la Complemento de SharePoint no puede ejecutar ningún JavaScript desde cualquier otro dominio, lo que incluye el dominio en el que se instala el complemento (desde la perspectiva del usuario final).
SharePoint también proporciona una forma de superar los límites de la directiva de forma segura. Entre otras cosas, esto permite a los componentes remotos de un complemento de SharePoint consultar datos desde cualquier sitio web del arrendamiento primario común de las webs de host y de complemento. Para obtener más información, vea Cómo obtener acceso a los datos de SharePoint desde complementos con la biblioteca entre dominios.
Tipos de componentes de SharePoint que se pueden encontrar en un complemento para SharePoint
En general, un complemento de SharePoint puede contener uno o más de los componentes de la lista siguiente. Con algunas excepciones, estos componentes deben implementarse en características de ámbito de web que están dentro de un archivo de paquete de solución de SharePoint (.wsp).
Nota:
Los componentes con asterisco (*) se describen de forma más detallada en la sección Advertencias en la implementación de componentes de SharePoint más adelante en este artículo.
- Características (solo de ámbito de web)
- Acciones personalizadas (incluso los elementos de menú contextual y las personalizaciones de la cinta)*
- Receptores de eventos remotos*
- Marcado que hace referencia a elementos web, incluidos los elementos de complemento, que se incluyen en SharePoint (pero no elementos web personalizados)*
- Archivos de Hojas de estilo CSS (CSS) personalizados para su uso en las páginas de SharePoint
- Archivos de JavaScript personalizados para su uso en las páginas de SharePoint
- Módulos (conjuntos de archivos)
- Páginas
- Plantillas de lista
- Instancias de listas y bibliotecas (solo para la experiencia clásica)
- Formularios de lista personalizados
- Vistas de lista personalizadas
- Tipos de contenido personalizados
- Campos (o tipos de campo que se compilan en SharePoint)
- Modelos de Servicios de conectividad empresarial (BCS) de Microsoft (solo con ámbito web), tipos de contenido externo basados en el modelo y listas externas que usan los tipos de contenido*
- Flujos de trabajo*
- Contenedores de propiedades
- Plantillas web (pero no definiciones de sitio)*
En una complemento de SharePoint, no se podrán implementar otros componentes de SharePoint. Para obtener más información sobre las restricciones relativas a lo que se puede incluir en un complemento de SharePoint, vea Complementos de SharePoint comparados con soluciones de SharePoint.
Advertencias en la implementación de componentes de SharePoint
Estas son algunas advertencias y detalles relacionados con la implementación de ciertos tipos de componentes de SharePoint en un complemento:
Acciones personalizadas: además de agregar acciones personalizadas al sitio web de complemento, puede agregarlas asimismo al sitio web host. Para agregar la acción personalizada al sitio web de complemento, hay que incluirla en una característica de ámbito Web que esté en un archivo .wsp, tal como incluiría cualquier otro componente que vaya a agregar al sitio web de complemento. Para agregar una acción personalizada al sitio web host, puede incluir (incluso en un complemento basado en un entorno externo) marcados de CustomAction en una característica que se encuentre en el paquete del complemento, pero fuera de cualquier archivo .wsp. Los componentes en una característica "fantasma" de esta índole se aplican al sitio web host, y no al sitio web de complemento, por tanto este tipo de característica recibe el nombre decaracterística de sitio web host.
Elementos web: Un tipo de elemento web, un elemento de complemento, se puede implementar en un complemento y un elemento de complemento puede ir a la web del complemento o a la web host. Se puede hacer referencia a todos los demás tipos de elementos web en complementos, pero no se pueden implementar mediante ellos. Si un elemento de complemento se implementa en el sitio web de host, debería incluirse en una característica de sitio web de host.
Receptores de eventos remotos: es un aspecto nuevo en SharePoint. Se asemejan a los receptores de eventos de SharePoint habituales salvo que el código se ejecuta en la nube. No están disponibles en complementos hospedados en SharePoint.
Flujos de trabajo: los flujos de trabajo en SharePoint usan el tiempo de ejecución de flujo de trabajo hospedado en Microsoft Azure, que es nuevo en SharePoint. Los flujos de trabajo codificados que usan el tiempo de ejecución del flujo de trabajo hospedado en SharePoint no se pueden incluir en una Complemento de SharePoint. Solo se permiten los flujos de trabajo declarativos o los flujos de trabajo que usan tiempo de ejecución más reciente.
Modelos, tipos de contenido externo y listas externas de Servicio de conectividad a datos empresariales de Microsoft (BCS): los modelos de Servicio de conectividad a datos empresariales (BDC) normalmente tiene un ámbito que es más amplio que una colección de sitios. Sin embargo, cuando se implementa un modelo de servicio de BDC en un complemento, su ámbito se limita a la web del complemento. Cuando se incluye un modelo de servicio de BDC en un complemento, no se almacena en el almacén de servicios compartidos del servicio de BDC. En su lugar, se almacena como un archivo en la web del complemento.
Plantillas web: en la mayoría de los casos, le interesará que la web del complemento cree una instancia de la nueva configuración de definición de sitio integrado APP#0, que está optimizada para webs de complemento. (Para obtener más información, vea Cómo obtener acceso a un complemento desde la interfaz de usuario). SharePoint usa automáticamente APP#0 cuando el paquete del complemento no incluye un elemento WebTemplate.
También puede definir un tipo de sitio personalizado para el sitio web de complemento. Existen dos pasos fundamentales para ello:
Incluir un elemento WebTemplate (plantilla web) personalizado, un archivo onet.xml y posiblemente otros archivos asociados, en la característica de la web del complemento para el complemento. Implementar la plantilla web en la característica de ámbito web en un archivo .wsp dentro del paquete de complemento, del modo habitual.
Agregar un elemento WebTemplate (PropertiesDefinition complexType) (Manifiesto del complemento de SharePoint) al manifiesto de complemento como elemento secundario del elemento Properties y establecer su atributo Id en el GUID de la característica de la web del complemento y el valor del atributo Name del elemento WebTemplate (plantilla web). Tenga en cuenta que el GUID debe llevar guiones y estar entre corchetes "{}". Además, el GUID y el nombre de plantilla deben estar separados con el carácter "#". A continuación puede ver un ejemplo:
<WebTemplate Id="{81dd4ae5-873b-4759-9838-4ad9c3dd2952}#NewSiteType" />
Nota:
El nuevo elemento WebTemplate para manifiestos de complemento no incluye el mismo marcado que el WebTemplate que puede incluirse en las características. El elemento WebTemplate que puede incluirse en las características define un tipo de sitio, pero el elemento WebTemplate de manifiestos para complemento simplemente identifica el tipo de sitio que se debe usar. Para obtener más información sobre el manifiesto de complemento de un complemento de SharePoint, vea Estructura del paquete de complemento.
Precaución
No use el elemento WebTemplate en el manifiesto de complemento para designar a alguna de las configuraciones de definición de sitio de SharePoint integradas como el tipo de sitio del sitio web de complemento. No se admite el uso de ninguna de las configuraciones de definición de sitio integradas, salvo APP#0, para los sitios web de complemento.
Para obtener más información sobre las configuraciones de definición de sitio y las plantillas web, consulte Trabajar con plantillas y definiciones de sitio.