Escolher padrões para desenvolver e hospedar seu suplemento do SharePoint

O modelo de suplemento do SharePoint apresenta uma ampla variedade de padrões de hospedagem e desenvolvimento. Alguns desses padrões podem ser usados nas combinação entre si. Por exemplo, os suplementos podem combinar componentes hospedados pelo SharePoint e remotamente hospedados. A maneira mais útil de determinar quais padrões você deseja usar é começar pelos seus próprios requisitos, tecnologias e metas e combiná-los com as opções e possibilidades habilitadas pelos Suplementos do SharePoint.

O que levar em conta ao escolher seu padrão de desenvolvimento

Os suplementos do SharePoint ampliam o intervalo de possíveis linguagens de programação e pilhas de tecnologia que você pode usar quando trabalha com recursos e serviços do SharePoint. O intervalo preciso de opções depende tanto do tipo de suplemento quanto do padrão de hospedagem escolhido. Também é possível misturar padrões.

Suplementos hospedados pelo SharePoint

Comece com a opção mais simples: suplementos hospedados pelo SharePoint ou suplementos onde todos os componentes são hospedados em um farm local ou no SharePoint do Office 365. Os suplementos hospedados pelo SharePoint são instalados em um site do SharePoint, chamado de host da Web. Eles têm seus recursos hospedados em um subsite isolado de um host da Web, chamado de Web do suplemento. É importante saber a diferença entre os hosts da Web e as Webs do suplemento.

A Figura 1 ilustra a arquitetura básica do suplemento hospedado pelo SharePoint.

Figura 1. Arquitetura de suplemento hospedada no SharePoint

Os componentes de um aplicativo hospedado do SharePoint são hospedados no appweb de um farm do SharePoint.

Você pode combinar um suplemento hospedado pelo SharePoint a suplementos que têm componentes hospedados remotamente, mas qualquer suplemento ou parte de um suplemento que é executado em um site do suplemento tem o seguinte conjunto de requisitos para três componentes principais: onde o suplemento está hospedado, como o suplemento obtém autorização e qual idioma pode usar.

Componente Requisito de suplemento hospedado pelo SharePoint
Onde são hospedados os componentes de suplemento No domínio de suplemento isolado do farm do SharePoint
Como o suplemento é autorizado Os privilégios do usuário conectado
Qual idioma o suplemento pode usar JavaScript (com a biblioteca JSOM do SharePoint) + HTML
Obtenha estes benefícios Mas considere isto
Reutilize itens comuns do SharePoint, como listas e Web Parts. Você pode usar apenas JavaScript no suplemento. Não é possível usar código do lado do servidor.
É relativamente fácil de criar e implantar. Portanto, é adequado para pequenos suplementos de produtividade de equipe e automação de processos de negócios com regras de negócios de complexidade inferior. O suplemento tem apenas os privilégios de autorização do usuário conectado.

Introdução à criação de Suplementos do SharePoint hospedados no SharePoint

Suplementos hospedados pelo provedor

Os suplementos do SharePoint hospedados pelo provedor de aplicativos incluem componentes implantados e hospedados fora do farm do SharePoint. Eles são instalados no host da Web, mas seus componentes remotos estão hospedados em outro servidor que não deve ser um servidor no farm do SharePoint.

A Figura 2 ilustra a arquitetura básica do suplemento hospedado pelo provedor.

Figura 2. Arquitetura de suplemento hospedada pelo provedor

Os componentes de um aplicativo hospedado pelo provedor são hospedados em qualquer servidor Web ou serviço de hospedagem.

A tabela a seguir mostra como os requisitos de local de hospedagem, autorização de suplemento e linguagens são muito menos fixos para suplementos hospedados pelo provedor do que para suplementos hospedados pelo SharePoint.

Componente Requisito de suplemento hospedado pelo provedor
Onde são hospedados os componentes de suplemento Qualquer serviço de hospedagem ou servidor Web
Como o suplemento é autorizado OAuth ou a biblioteca de domínio cruzado JavaScript
Qual idioma o suplemento pode usar Qualquer idioma com suporte no servidor Web ou serviço de hospedagem

Um suplemento hospedado pelo provedor interage com um site do SharePoint, mas também usa recursos e serviços localizados no site remoto. Você vai querer considerar o seguinte antes de decidir criar um suplemento hospedado pelo provedor.

Obtenha estes benefícios Mas considere isto
Hospede o suplemento no Microsoft Azure ou em qualquer plataforma Web remota, inclusive plataformas não Microsoft. Você é responsável por criar a lógica de instalação, atualização e desinstalação dos componentes remotos.
Use um dos modelos de objeto cliente do SharePoint, a biblioteca de domínio cruzado JavaScript ou o serviço Web baseado em REST/OData do SharePoint para interagir com o SharePoint. Cada maneira de interagir com o SharePoint tem opções correspondentes para abordagens de acesso a dados.
Obtenha autorização para dados do SharePoint usando um dos três sistemas de autorização. Você precisa decidir entre o OAuth e a biblioteca entre domínios para autorizar o acesso do suplemento ao SharePoint.

Fazer a correspondência entre o padrão de hospedagem e suas metas de desenvolvimento

Além de considerar as vantagens técnicas e restrições de cada opção, você também precisará pensar em suas metas de desenvolvimento ao decidir sobre um padrão de hospedagem. Você pode usar a tabela a seguir para ajudar a resolver qual padrão de hospedagem melhor atende às suas necessidades.

Seus requisitos Padrão de hospedagem recomendado Exemplo
Trabalhar com e provisionar novas entidades do SharePoint exclusivamente Hospedado pelo SharePoint Um suplemento que inclui um controle de seletor de pessoas e que armazena informações sobre usuários do SharePoint em uma lista do SharePoint
Usar entidades existentes do SharePoint e interagir com serviços Web externos (não SharePoint) Hospedado pelo provedor Um suplemento que obtém endereços de clientes de uma lista existente do SharePoint na Web do host e usa um serviço de mapeamento em um aplicativo Web para exibir seus locais
Provisionar novas entidades do SharePoint e interagir com serviços Web externos Hospedados pelo SharePoint e hospedados pelo provedor Um suplemento de mapeamento que provisiona uma lista do SharePoint no appweb para que ele possa armazenar coordenadas de latitude e longitude de endereços fornecidas pelo usuário ou extraídas de uma lista do SharePoint existente

O que levar em conta ao escolher seu padrão de hospedagem para suplementos hospedados pelo provedor

Suplementos hospedados pelo SharePoint têm um padrão de hospedagem fixo, pois são hospedados no site do suplemento. Suplementos hospedados pelo provedor fornecem mais flexibilidade para hospedar os vários componentes do suplemento. Portanto, se optar por criar um, você precisará corresponder seus objetivos e requisitos ao padrão de hospedagem apropriado.

OAuth ou a biblioteca entre domínios

Uma das perguntas mais importantes que você precisa fazer ao considerar os suplementos hospedados pelo provedor e como você os criará é como o suplemento obterá autorização para interagir com o SharePoint. Os suplementos hospedados pelo provedor oferecem duas opções: a biblioteca entre domínios JavaScript e o OAuth.

A biblioteca de domínios cruzados permite a interação com mais de um domínio nos componentes remotos de seu complemento utilizando um proxy. Se o código do lado do cliente e as permissões de um usuário que está conectado ao SharePoint forem suficientes, a biblioteca de domínio cruzado será uma boa opção. A biblioteca de domínio cruzado também é conveniente sempre que você estiver fazendo chamadas remotas por meio de um firewall.

O OAuth é um protocolo aberto para autorização que permite a autorização segura de aplicativos clientes (área de trabalho, Web e aplicativos móveis) de uma maneira facilmente gerenciável. Você geralmente precisará usar o OAuth se quiser criar um Suplemento do SharePoint para ser executado em um aplicativo Web remoto e se comunicar com o SharePoint. O OAuth será necessário sempre que você estiver chamando no SharePoint a partir de um aplicativo Web hospedado remotamente que não pode usar o código do lado do cliente (HTML + JavaScript) exclusivamente. Saiba mais sobre como o OAuth funciona em Suplementos do SharePoint.

Acesso seguro aos dados e modelos de objeto cliente para os suplementos do SharePoint e Três sistemas de autorização para suplementos do SharePoint explicam mais detalhadamente a escolha entre o OAuth e a biblioteca entre domínios.

OAuth com farms do SharePoint locais

Se você estiver usando uma implantação local do SharePoint, poderá usar o OAuth, mas terá que escolher entre criar suplementos de alta confiança e usar uma locação do Office 365. O Office 365 usa o ACS (Serviço de Controle de Acesso) do Microsoft Azure como o agente de confiança e, se você não tiver acesso a uma locação do Office 365, precisará usar Criar Suplementos do SharePoint de alta confiança que usa certificados para estabelecer confiança entre seu suplemento e o SharePoint. Você pode adicionar suplementos de alta confiança ao catálogo de suplementos do farm do SharePoint, mas não pode vendê-los na Office Store. Se você tiver acesso a uma locação do Office 365, poderá vinculá-la à instalação local do SharePoint e usar o ACS como o agente de confiança para suplementos instalados em seu SharePoint local.

A tabela a seguir lista todos os padrões possíveis para hospedar os componentes do SharePoint e os componentes remotos do suplemento, juntamente com os agentes de confiança que estão disponíveis para você se você estiver usando o OAuth. Observe que você precisará de acesso a um locatário Office 365 para usar o ACS para estabelecer confiança entre o SharePoint e um Suplemento do SharePoint instalado em uma instalação local do SharePoint.

Local do componente do SharePoint Local do componente remoto Agente de confiabilidade
No local Na nuvem ACS, certificado
No local No local ACS, certificado
Site do SharePoint do Office 365 Na nuvem ACS
Site do SharePoint do Office 365 No local ACS

Combinar hospedagem de provedor e hospedagem do SharePoint

Você também pode criar suplementos que incluam componentes hospedados pelo SharePoint e hospedados pela nuvem. Por exemplo, você pode criar um suplemento hospedado por um fornecedor que inclua um tipo personalizado de lista e conteúdo do SharePoint. Se você optar por usar essa arquitetura, o design e a abordagem deverão considerar limitações de segurança incorporados ao modelo. Você pode usar somente JavaScript nos componentes de código hospedados pelo SharePoint e os componentes hospedados remotamente devem usar o OAuth ou a biblioteca de domínio cruzado para interagir com o site do SharePoint. Ao considerar essa abordagem, verifique se você entende como funciona a autorização de suplemento no SharePoint.

A Figura 3 mostra como essa arquitetura funciona se você usar o Azure para hospedar componentes remotos do suplemento e usar o OAuth.

Figura 3. Comunicação de servidor para servidor do SharePoint quando você usa o OAuth e o Windows Azure

Restrições de comunicação entre servidores

Saiba como criar um suplemento que combina a hospedagem na nuvem e a hospedagem no SharePoint.

Aqui estão algumas coisas a considerar quando você estiver pensando em uma combinação de hospedagem do provedor e hospedagem do SharePoint.

Obtenha estes benefícios Mas considere isto
Todos os benefícios das duas abordagens. A arquitetura mais complexa requer um planejamento cuidadoso para a comunicação de servidor a servidor e restrições de scripts entre sites.

Suplementos hospedados pelo provedor em Funções Web do Azure

Você pode hospedar um Suplemento do SharePoint hospedado pelo provedor em uma função Web do Azure em vez de um aplicativo Web (independentemente se o aplicativo Web for local ou um site do Azure). Uma função Web do Azure é, essencialmente, um site baseado nos Serviços de Informações da Internet (IIS) e hospedado no Azure. Você pode aproveitar os serviços de hospedagem e a escalabilidade das funções Web do Azure. Você também pode aprimorar o desempenho e a facilidade de uso de seu Suplemento do SharePoint, especialmente se o suplemento for muito usado ou se a demanda do suplemento for alterada ao longo do tempo. Se o Suplemento do SharePoint exigir mais recursos do servidor, o Azure poderá alocá-los dinamicamente no suplemento.

Confira os links a seguir para obter mais informações sobre as funções Web do Azure.

Como pré-requisito, será necessário o Microsoft Azure SDK para .NET (Visual Studio 2012) 1.8.1, que pode ser instalado usando o Instalador da Plataforma Web.

A maneira como você cria o projeto no vsnv depende do que você escolhe: começar com um projeto de Suplemento do SharePoint e adicionar o projeto de função Web do Azure ou começar com o projeto do Azure e adicionar o projeto do SharePoint.

Adicionar um serviço de nuvem a um suplemento existente

Se você já tiver um Suplemento do SharePoint hospedado pelo provedor que deseje hospedar no Azure, escolha o projeto do aplicativo Web na solução para o Suplemento do SharePoint. Na barra de menus, escolha Projeto>Adicionar o Projeto do Serviço de Nuvem do Microsoft Azure. Um projeto do Azure chamado NameOfTheWebAppProject.Azure é adicionado à solução para o Suplemento do SharePoint. Uma função Web para o projeto Web também é adicionada ao projeto para o serviço de nuvem do Azure. As Ferramentas de Desenvolvedor do Office para Visual Studio 2012 define as propriedades de projeto necessárias para que a função Web possa trabalhar com o Suplemento do SharePoint.

Adicionar um suplemento para uma função Web existente

Se você já tiver uma função Web em um serviço de nuvem do Azure que deseja usar como host de um Suplemento do SharePoint hospedado pelo provedor, abra o projeto de nuvem do Azure no Visual Studio e, no Gerenciador de Soluções, escolha o projeto de função Web. Na barra de menus, escolha Projeto>Adicionar Suplemento ao Projeto do SharePoint. Um projeto para um Suplemento do SharePoint hospedado pelo provedor é criado, chamado de NameOfTheWebAppProject.Azure, e é adicionado à solução. O Visual Studio faz referência à função Web do Azure como host do projeto Web para o Suplemento do SharePoint.

Confira também