Desenvolvimento da Estrutura do SharePoint com SharePoint Server 2016 Feature Pack 2

O SharePoint Server 2016 Feature Pack 2 oferece suporte a Web Parts do lado do cliente da Estrutura do SharePoint hospedadas em páginas clássicas do SharePoint.

Uma introdução ao desenvolvimento da Estrutura do SharePoint no SharePoint Server 2016 usando o Feature Pack 2 também é abordada no vídeo a seguir no Canal do YouTube da Comunidade (PnP) da Plataforma Microsoft 365.

Qual versão da Estrutura do SharePoint usar

Como o SharePoint Online e o SharePoint Server 2016 têm diferentes ciclos de lançamento para novos recursos, eles também têm recursos diferentes quando se trata da Estrutura do SharePoint. O SharePoint Online sempre utiliza a versão mais recente da Estrutura do SharePoint, mas o SharePoint Server 2016 só oferece suporte à versão que corresponda às dependências do servidor dos pacotes implantados.

O SharePoint Server 2016 Feature Pack 2 oferece suporte a Web Parts do lado do cliente da Estrutura do SharePoint hospedadas em páginas clássicas do SharePoint criadas usando a Estrutura do SharePoint v1.1.0. Isso significa que quando você está direcionando a plataforma do SharePoint Server 2016, você precisa utilizar a Estrutura do SharePoint v1.1.0 devido às dependências da versão do servidor.

Se você planeja utilizar as mesmas Web Parts do lado do cliente no SharePoint Server 2016 e no SharePoint Online, você precisa utilizar a Estrutura do SharePoint v1.1.0 como sua versão de linha de base para garantir que a Web Part funcione em ambos os ambientes.

A partir da versão 1.3, o gerador de Yeoman da Estrutura do SharePoint oferece suporte às soluções de scaffolding que usam a última versão da Estrutura do SharePoint destinadas ao uso com o SharePoint Online e soluções que também podem ser usadas com o SharePoint local com base na v1.1.0 da Estrutura do SharePoint. Não é necessário instalar uma versão diferente do gerador de Yeoman da Estrutura do SharePoint para fazer scafffold das soluções destinadas ao uso com o SharePoint local.

Importante

Desde a versão 1.4, o gerador de Yeoman da Estrutura do SharePoint oferece suporte ao novo atributo de includeClientSideAssets, que pode ser usado para indicar que os ativos devem ser incluídos no pacote sppkg. Esse recurso, no entanto, não é compatível com o SharePoint Server 2016. Quando uma solução é direcionada ao SharePoint Server 2016, este atributo em ./config/package-solution.json deve ser atualizado como false.

Hospedando sua solução para a implantação local

Obter web parts do lado do cliente da Estrutura do SharePoint implantada no local requer duas ações distintas:

  • Implantação do pacote de solução no catálogo de aplicativos do SharePoint
  • Hospedar arquivos JavaScript em um local centralizado

Você pode hospedar arquivos JavaScript no local que melhor se adéque ao seu ambiente. Por exemplo, esses arquivos podem ser hospedados em qualquer um dos seguintes locais:

  • Rede de Distribuição de Conteúdo do Microsoft Azure: Configuração semelhante à do SharePoint Online. Requer que os usuários finais tenham conectividade com a Internet.
  • Servidor local na sua rede: Um servidor que hospeda os arquivos JavaScript para sua rede corporativa. Isso pode ser feito com qualquer tecnologia desejada, desde que os arquivos sejam acessíveis por meio de solicitações HTTP.
  • SharePoint Server 2016: Você também pode hospedar seus arquivos no próprio farm local do SharePoint. Por exemplo, você pode definir um site padronizado em seu farm onde todos os ativos da Estrutura do SharePoint estão sendo hospedados. Observe, entretanto, que, por padrão, os arquivos .json não podem ser carregados nas bibliotecas do SharePoint Server 2016, portanto, as configurações de nível de farm devem ser ajustadas para esta opção.

Para obter mais informações sobre os tipos de arquivo bloqueados no SharePoint Server 2016, consulte o seguinte artigo de suporte: Tipos de arquivos que não podem ser adicionados a uma lista ou biblioteca.

Considerações sobre o ambiente de desenvolvimento

Ao desenvolver Web Parts do lado do cliente da Estrutura do SharePoint, você precisa de conectividade com a Internet para acessar os pacotes do npm. Isso é necessário quando as soluções estão sendo estruturadas usando os modelos Yeoman da Estrutura do SharePoint.

Se o acesso à Internet não estiver disponível para as máquinas de desenvolvimento, você pode configurar um registro local para os pacotes requeridos pelo npm. No entanto, isso requer software adicional e muito trabalho para configurar e manter versões do pacote local com pacotes na galeria npm real.

O documento de orientação Desenvolvimento baseado em equipes na Estrutura do SharePoint inclui opções diferentes para a configuração do ambiente de desenvolvimento, incluindo o momento que talvez seja preciso suportar as várias versões da Estrutura do SharePoint.

Node.js, versões do Gulp & Yeoman

As dependências para estruturas SPFx v1.1, ferramentas e versões associadas não correspondem à mesma matriz de dependência para as versões mais recentes do SPFx. Nesses casos, talvez seja necessário instalar versões específicas das ferramentas.

Por exemplo, o Gulp v3.* só possui suporte até Node.js v10, enquanto que o Gulp v4.* possui suporte do Node.js v12 e versões mais recentes. Como o SPFx v1.1 só tem suporte em Node.js v6 e Node.js v8, você precisa garantir que você tenha uma versão mais antiga do Node.js instalada, bem como uma versão mais antiga do Gulp & Yeoman.

Observação

A equipe do Gulp introduziu um pacote separado, gulp-cli, que deve ser instalado globalmente. Ele pode ser usado por projetos que usam Gulp v3 & Gulp v4.

Saiba mais sobre o gulp-cli aqui: gulpjs/gulp/#2324.

A Microsoft recomenda usar a versão mais recente do gerador do Yeoman para a Estrutura do SharePoint (@microsoft/generator-sharepoint) que suporta a criação de projetos locais: SPFx v1.6.0.

Importante

O gerador do Yeoman para a Estrutura do SharePoint, começando com v1.13.0, suporta somente projetos para o SharePoint Online. Saiba mais sobre essa alteração nas notas de versão da Estrutura do SharePoint v1.13. No entanto, o SPFx 1.1.1 suporta somente até o Node.js v6. Portanto, você precisa obter a última versão do gerador do Yeoman para a Estrutura do SharePoint (v1.6.0) que funciona na mesma versão do Node.js (v6) em que o SPFx v1.1.0 é suportado.

  1. Instalar o Node.js v6.17.1

  2. Instalar dependências globais

    npm install gulp-cli@2.3.0 --global
    npm install yo@2.0.0 --global
    npm install @microsoft/generator-sharepoint@1.6.0 --global
    

Para obter mais informações, consulte Compatibilidade de ferramentas e bibliotecas de desenvolvimento da Estrutura do SharePoint.

Determinar qual versão foi usada para uma solução

Se você já tiver soluções da Estrutura do SharePoint, mas quisesse confirmar qual versão da Estrutura do SharePoint foi usada nelas, verifique os seguintes locais:

  • .yo-rc.json: Arquivo na pasta raiz da solução que armazena a versão do modelo Yeoman da Estrutura do SharePoint usada quando a solução foi criada.
  • package.json: Arquivo na pasta raiz da solução que contém referências às versões do pacote utilizadas na solução.
  • npm-shrinkwrap.json: Arquivo na pasta raiz da solução que contém informações sobre as versões exatas utilizadas (se você usou o comando npm shrinkwrap para bloquear as versões exatas da solução).
  • package.json: Arquivo na pasta node_modules/@microsoft/sp-webpart-base que contém um atributo version correspondente à versão da Estrutura do SharePoint usada, se você instalou pacotes na sua solução.

Solução de problemas

Impacto do Node.js v6, Node.js v8, HTTP1, & HTTP2

Desta vez na versão v1.1, o Node.js estava em transição do Node.js v6.x para o v8.x. Nesta atualização, o Node.js introduziu uma alteração em que o protocolo HTTP padrão foi alterado de HTTP1 para HTTP2. O SPFx v1.1 foi escrito para HTTP1, não HTTP2, portanto, essa alteração afetou o servidor da web local para projetos do SPFx v1.1.

In Node.js v8.x, você pode forçar o HTTP1, definindo a seguinte variável de ambiente para instruir o Node.js a usar o HTTP1 em vez do padrão HTTP2: NODE_NO_HTTP2=1. Esta variável de ambiente existe somente no Node.js v8.x. É por isso que, se você estiver construindo soluções SPFx para o SharePoint Server 2016, deverá usar o NodeJS v8.x.

Esse problema não afeta as versões posteriores do SPFx porque elas foram atualizadas para oferecer suporte a HTTPs.

Para obter mais informações, consulte problema#1002.

Confira também