SobreCompetênciasTrabalhoR&DBlogFerramentasComeçarContacto

SPFx antes da versão 1.0: as nossas web parts nos samples oficiais da Microsoft

A developer preview do SharePoint Framework saiu em agosto de 2016. A versão 1.0 chegou em fevereiro de 2017. A nossa primeira contribuição para o repositório oficial de samples do Microsoft 365 é de outubro de 2016, cinco meses antes de haver uma 1.0 sobre a qual construir. Quatro das nossas web parts estão hoje nesse repositório, e é isto que cada uma faz.

pH7x Systems® · ·atualizado a · 7 min de leitura

A developer preview do SharePoint Framework saiu em agosto de 2016. A versão 1.0.0 ficou disponível a 22 de fevereiro de 2017.

A nossa primeira contribuição para o pnp/sp-dev-fx-webparts, o repositório oficial de samples da comunidade Microsoft 365, foi integrada a 6 de outubro de 2016. Cinco meses antes de existir uma 1.0 sobre a qual construir.

É a parte de um percurso que não se pode reclamar depois. Quatro das nossas web parts estão hoje nesse repositório, ao alcance de quem as queira ler, e a Microsoft lista as quatro em nosso nome na sua Sample Solution Gallery. A mais recente foi integrada a 3 de agosto de 2026, no mesmo dia em que duas das antigas voltaram a ser integradas depois de reescritas. É isto que cada uma faz.

A web part Northwind a mostrar dados devolvidos por uma Azure Function App, dentro de uma página de SharePoint A Carbon Footprint Calculator: barras de entrada para eletricidade, voos, viagens de carro, gás e água, com as emissões por pessoa num gráfico de barras horizontais e um botão de exportar para PDF A web part Public Holidays Global a mostrar uma lista paginada de feriados para um país e ano selecionados, com um gráfico a resumi-los por mês A web part Microsoft 365 Search Hub a mostrar resultados de uma palavra em documentos, páginas, sites e itens de lista, cada resultado com o site onde vive e quem o alterou pela última vez

Consumir uma base Northwind através de uma Azure Function

Uma página de SharePoint precisa de dados que não vivem no SharePoint. O instinto é ir diretamente à base de dados, e esse instinto sai caro: põe uma cadeia de ligação à frente do browser, prende a página a um esquema, e transforma cada alteração futura desse esquema numa alteração à página.

Esta web part chama um HTTP trigger anónimo numa Azure Function App e mostra o que vem de lá. A web part nunca sabe que existe uma base de dados. Sabe que existe um endpoint, e é o endpoint que decide o que a pergunta significa e quem a pode fazer.

É deliberadamente sem brilho, e é o desenho que usamos em trabalho de cliente quando o SharePoint tem de mostrar coisa que pertence a outro sistema. A engenharia interessante não está na web part. Está na fronteira.

Carbon Footprint Calculator

Uma calculadora interativa que estima a pegada de carbono mensal a partir de eletricidade, transporte, aquecimento e água, decompõe o resultado por origem, e exporta para PDF. React, Fluent UI e Chart.js.

Construímo-la porque precisávamos de uma para o nosso próprio relato de sustentabilidade, e as opções honestas eram uma folha de cálculo que ninguém abria ou um sítio externo que levava os números para onde não os víamos. Sendo web part, os dados nunca saem do tenant. É essa restrição que explica a forma que tem.

É também uma resposta a funcionar a uma pergunta que nos fazem muito: se uma ferramenta interna consegue ser mesmo útil sem passar a ser mais um sistema para manter. Esta é uma web part numa página. Não há base de dados, não há serviço, não há autenticação à parte, e não há nada para desmantelar mais tarde.

Public Holidays Global

Mostra os feriados de um país e ano à escolha, com paginação e gráfico, lendo em tempo real da API pública Nager.Date.

Nasceu de uma irritação vulgar numa organização com pessoas em mais do que um país: a resposta a quem falta na próxima terça vive na cabeça de alguém, ou numa lista que deixou de ser mantida em março. Os dados já existem e consultam-se de graça.

A web part é magra de propósito. Não guarda nada, porque um calendário de feriados guardado é uma coisa que fica desatualizada em silêncio e continua a merecer confiança à mesma. Se a lista de países mudar para o ano, ninguém tem de se lembrar de atualizar seja o que for.

Microsoft 365 Search Hub

Pesquisa documentos, páginas, sites e itens de lista através da Microsoft Search API no Microsoft Graph, a partir de uma única caixa, e diz de cada resultado onde ele vive e quem o alterou pela última vez. SPFx 1.23.2, cadeia de compilação Heft, Fluent UI v9.

O SharePoint já tem uma pesquisa excelente e esta não a tenta substituir. Serve para o caso em que a pesquisa que vem na caixa não assenta no problema: uma página onde procurar pertence ao meio das outras coisas dessa página, em vez de mandar a pessoa para um centro de pesquisa e lhe tirar o contexto em que estava, ou um portal onde só vale a pena pesquisar um determinado conjunto de sites.

A caixa de pesquisa é a parte menos interessante. O que vale a pena ler está por baixo: manter separados o serviço, a sessão e a interface, para que a concorrência viva num sítio só em vez de espalhada pelos componentes; distinguir uma permissão negada de uma sessão expirada, de throttling, de um serviço com um mau dia, porque cada uma dessas precisa de palavras diferentes no ecrã; e testar o debounce, as respostas ultrapassadas, uma cache curta e a paginação, corridas incluídas, sem renderizador.

E para onde para, para de propósito. Pessoas, mensagens do Teams, correio e calendário são cada um deles um tipo de entidade distinto na Search API, cada um com a sua permissão e o seu pedido. Acrescentar um deles é outro sample, não uma versão maior deste, e dizê-lo no README faz parte do sample.

Porque é que estão públicas

Porque uma afirmação sobre competência vale menos do que a possibilidade de a verificar.

Quem estiver a decidir se trabalha connosco em SharePoint pode ler o código em vez de acreditar na nossa palavra. Pode ver como lidamos com uma API de terceiros, onde pomos a fronteira entre a página e os dados, o que fazemos quanto a versões e compatibilidade, e se aquilo compila. É uma afirmação mais forte do que uma descrição da nossa experiência, e verificá-la não custa nada a quem lê.

Há uma segunda razão, que conta mais cá dentro. Os samples daquele repositório são validados contra regras de contribuição e lidos por quem já viu milhares deles. Publicar ali significa que o nosso trabalho em SPFx é revisto por gente sem motivo nenhum para ser simpática.

Do que é que isto trata mesmo

O SPFx vai na versão 1.23 e atravessou uma década de versões de Node, cadeias de compilação, mudanças maiores de React e depreciações. A maior parte da dificuldade num front end de SharePoint nunca foi o framework. É saber que partes dele são estáveis o suficiente para construir o sistema de um cliente, e que partes desaparecem dentro de dois anos.

Esse juízo vem de ter estado presente nas versões que já não existem. Levar um sample para a frente é o mesmo trabalho que levar a web part de um cliente para a frente, e deixa rasto: a 3 de agosto de 2026 a calculadora e a web part dos feriados foram ambas reintegradas depois de reescritas, e o sample mais recente entrou já em 1.23.2. Escrevemos sobre o que isso custa na prática, em SPFx 1.23.2: atualizar não é mudar um número e em o estado do SharePoint em 2026.

Se está a construir sobre SharePoint e quer o front end feito por quem já lá estava antes da versão 1.0, fale connosco. O código é público. Comece por lê-lo.

Comentários

Continuar a ler