E ai pessoal, tudo bem?
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, o qual 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 a 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 é praticamente fácil de fazer, mas requer um bom tempo e algumas configurações de segurança, tanto configuração de contexto e toda uma necessidade por traz 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 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 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 era muitas linhas, muitos controles de acesso e load 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 é muito fácil e prático, pois para quem já possui o PowerShell na versão 5 ajuda a 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*, ele irá mostrar todos os cmdlets deste módulo.
Praticamente 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.
Pronto pessoal, isso é só um exemplo sobre como é bom utilizar o PnP pois eles estão ai para nos ajudar.
Referência
Thiago Holder
Sou um cara que abraça as oportunidades através dos desafios. Apaixonado pelo desenvolvimento de softwares baseado em Web. Tenho uma bagagem de 6 anos com a plataforma SharePoint.