DevSecOps

18 mai, 2017

Como o PnP-PowerShell pode nos ajudar?

Publicidade

Hoje vamos falar de um assunto bem interessante; algo que pode nos ajudar em nosso dia a dia. Eu já usava há algum tempo o Patterns & Practices e depois eu deixei de usar – acredito que foi por não ter mais algo atualizado. Usei muito o guia de desenvolvimento, em SharePoint, que me ajudou bastante, mas eles atualizaram até a versão 2010.

A comunidade Open, da Microsoft, percebeu que esse guia era bastante utilizado, principalmente na estrutura mais hard de suas soluções, e abriu essas informações para a comunidade que tem o desejo de contribuir com ferramentas e documentos das melhores práticas a serem aplicadas, ou seja, contribuir com esse guia.

Irei focar mais em SharePoint e PowerShell neste tema, pois é muito comum surgir diversas formas de resolver problemas, utilizando a plataforma SharePoint, e acabamos desviando um pouco do padrão e das boas práticas de manutenção e desenvolvimento de novas soluções. Então, em meados de 2015, foi lançado um novo Patterns & Practices e este com o foco voltado para os desenvolvedores da plataforma Office 365 que inclui o SharePoint OnLine. Este se encontra no repositório do GitHub, neste link Office 365 Dev PnP.

Abaixo, segue uma imagem que nos faz perceber a importância que esse grupo está levando as boas práticas e ferramentas para solução de problemas, pois vão nos ajudar bastante em todo tipo de solução. Sabemos que o principal objetivo do Patterns & Practices é facilitar e esclarecer soluções com praticidade e rapidez, seguindo os melhores padrões e ferramentas disponíveis.

Sendo assim, de que forma que eles me ajudaram diretamente? Bom, primeiramente a documentação do Sharepoint Framework está sempre atualizada. Devemos o mérito à comunidade Open que contribui para essas informações.

Outra experiência legal que irei colocar aqui foi uma necessidade que a empresa apresentou em querer extrair dados de uma lista do nosso Sharepoint Online e converter isso em JSON. Bom, eu sei que isso é possível e é fácil de fazer, mas requer tempo e algumas configurações de segurança, inclusive configuração de contexto e toda a necessidade por trás disso.

Abaixo, vou mostrar um código que realiza o acesso ao SharePoint OnLine via CSOM (Client-Side Object Model) na forma mais pura – isso só para se conectar ao SharePoint Online:

E agora vou mostrar a linha de código do PnP-PowerShell para realizar a conexão com SharePoint OnLine:

  • Connect‑PnPOnline – Connects to a SharePoint site and creates a context that is required for the other PnP Cmdlets:

É somente uma linha de código que PnP-PowerShell disponibiliza para que possamos fazer acesso de forma mais fácil com o SharePoint OnLine, sem ser necessário ter que importar tantas DLLS, ter que referenciar objetos, em resumo, sendo uma ferramenta simples e melhor: ela tem uma documentação direta.

Pensando na solução que eu tive que fazer, de forma rápida eu fiquei muito insatisfeito em ter que escolher entre duas maneiras: uma era tentar buscar as informações via solicitação REST, utilizando as APIS do SharePoint diretamente, com o PowerShell; e a outra era utilizando o CSOM. Porém isso ainda me incomodava, porque eram muitas linhas, muitos controles de acesso e loads de contexto para algo tão simples, que é leitura e conversão ao JSON. Eis que pesquisei os CMDLets do PnP-PowerShell e então me trouxe a melhor solução.

Porém, nem tudo são flores. Sim meus caros, é necessário instalar o módulo do PnP-PowerShell; mas é algo muito fácil e prático, porque pra quem já possui o PowerShell na versão 5, fica fácil buscar e instalar os módulos através do PowerShellGet. Portanto, a linha de comando para instalar é bem fácil: Install-Module SharePointPnPPowerShellOnline. Com o módulo instalado, podemos executar: Get-Command Module *PnP*, e ele irá mostrar todos os cmdlets deste módulo.

Basicamente, eu preciso conectar ao SharePoint, passar a lista, selecionar todos os itens, converter para uma saída JSON e transferir para um arquivo. Abaixo, o código com a função que faz isso utilizando o PnP-PowerShell.

Retornando dados de uma lista do SharePoint OnLine

Pronto, pessoal. Isso é só um exemplo sobre como é bom utilizar o PnP, pois eles estão aí para nos ajudar.

Referência

***

Este artigo foi produzido em parceria com a Lambda3. Leia outros conteúdos no blog da empresa: blog.lambda3.com.br