Arquivo da categoria: SharePoint 2016

Caracteres especiais em nomes de arquivos (# e %) no SharePoint Online e OneDrive for Business

Olá SharePointers,

Acredito que muitos de nós acabou passando por uma situação semelhante: em alguma necessidade de negócio orientamos a utilização do OneDrive for Business ou do próprio SharePoint (Online) ao invés dos File Servers – aliás, essa é uma necessidade bem comum.

Depois de alguma negociação (as vezes até resistência) conseguimos convencer o cliente/empresa e começamos a planejar a migração.

Quando realizamos o assessment dos dados que precisamos migrar, percebemos ou somos lembrados mais uma vez disso, que o usuário consegue e sempre será muito criativo. E, por consequência disso, precisamos fazer algum tratamento nos nomes dos arquivos porque não são suportados no SharePoint / OneDrive for Business.

Mas vocês podem perguntar..

Porque alguém utilizaria esses caracteres em uma pasta ou arquivo?

Para responder essa pergunta, não precisamos ir muito longe: E se precisássemos criar uma pasta para guardar todo o material que temos de estudo da linguagem C#? Como faríamos?

Agora, seus problemas acabaram! Bom, pelo menos com os caracteres # e %.

Por enquanto, os tenants estão com essa opção desabilitada. Para habilitar, basta executar o código abaixo no SharePoint Online Management Shell

OBS: Para os novos tenants, a partir de Junho de 2017, essa opção virá habilitada por padrão.

Para saber mais sobre o assunto, leia:

Caracteres inválidos no SharePoint Online / One Drive for Business

Anúncio do suporte aos caracteres % e #

 

SharePoint Virtual Summit

Olá SharePointers,

No dia 16 de Maio de 2017, acontecerá um evento virtual muito interessante, o SharePoint Virtual Summit – totalmente gratuito.

No evento do ano passado, o conteúdo abaixo foi apresentado:

  • O primeiro app SharePoint multiplataforma (iOS, Android, Windows Mobile) e a nova experiência da Home no SharePoint Online.
  • A experiência “Moderna” dos Team Sites.
  • Uma nova ferramenta de sincronização de arquivos, OneDrive Sync, com suporte para arquivos do SharePoint e pastas compartilhadas.
  • Integração com PowerApps e Microsoft Flow
  • SharePoint Framework
  • Novos recursos de segurança e compliance como DLP (Data Loss Prevention), Conditional Access e MDM (Mobile Device Management).

A agenda desse ano é bem interessante também! Eles vão explorar como podemos tirar proveito do SharePoint Online, OneDrive e outras ferramentas do Office 365 para criarmos um ambiente de trabalho conectado, dando poderes ao usuário para conectar-se com pessoas e conteúdo de forma segura.

Quem puder participar, registre-se.

 

SharePoint Framework – Overview

Olá SharePointers,

O SharePoint framework, atualmente em General Availability (https://github.com/SharePoint/sp-dev-docs/wiki/Release-Notes-GA), está pronto para utilizado e precisamos ter algumas coisas em mente:

Contexto de execução

Diferentemente do que acontece com os Add-ins, as webparts criadas utilizando esse framework rodam no contexto da página. Ou seja, não roda dentro de um iFrame.

Isso é muito importante!

Quando instalávamos um add-in, um site isolado era provisionado e a sua aplicação residia lá. No SharePoint Online por exemplo, a URL era: https://[tenant]-[id].SharePoint.com.

Mesmo quando você utilizava uma App Part para colocar o seu App dentro do contexto do seu site principal, internamente isso acontecia dentro de um iFrame e, com isso, a aplicação não conseguiria fazer mal ao seu site principal. (Lembre-se que ao instalar o Add-in, você precisa aceitar as permissões que são solicitadas).

Em uma Webpart do SharePoint Framework, por outro lado, roda diretamente no site, no DOM da página e com as permissões do usuário atual. Apenas para deixar claro, tudo o que o usuário logado tiver permissões para fazer, o código também terá permissões para fazer.

Utilização de Bibliotecas de Terceiros

É muito comum utilizarmos bibliotecas de terceiros em nossas aplicações. E, as vezes, utilizamos essas bibliotecas diretamente de CDNs.

Como eu disse no tópico anterior, como essas WebParts rodam diretamente no contexto do usuário, é preciso ter um critério muito grande em relação aos scripts que for utilizar, caso sejam maliciosos, eles podem causar problemas – fica aí um ponto de atenção para os administradores do portal.

Framework de Desenvolvimento

Uma coisa muito interessante desse modelo é que você tem a liberdade de trabalhar da forma como achar melhor.

Você pode utilizar Angular, React, Knockout, Handlebars ou seja lá o que for mais confortável para você. Isso é um grande passo da Microsoft, nos dá liberdade como desenvolvedores e permite trabalharmos da forma como nosso time estiver mais confortável.

 

E aí pessoal, compartilhem suas experiências com o esse novo framework. Estão utilizando?

Abraços! 😀

SharePoint Framework – Visão e Futuro

Olá SharePointers,

Para quem acompanha meu blog, venho falando das novas formas de desenvolvimento para SharePoint e incluindo minhas experiências com novos frameworks há algum tempo.

A Microsoft disponibilizou, ainda em preview, um novo framework para desenvolvimento de soluções para o SharePoint – falei sobre isso nesse link:  http://rodrigoromano.net/2016/09/01/sharepoint-framework/.

Vendo os movimentos mais recentes da Microsoft, podemos perceber a sua estratégia de aproximação com as comunidades/plataformas Open Source e como isso têm transformado a experiência com os próprios produtos da Microsoft.

Dito isso e, pensando em toda a transformação que o próprio modelo de Add-ins nos propiciou – ou nos forçou – podemos inferir/constatar que o desenvolvimento Server Side para SharePoint, se ainda não deixou de existir, tende a morrer. 

Quando eu falo isso, estou me referindo apenas a códigos de servidor rodando no mesmo box do SharePoint. É claro, que se você fizer um add-in provider hosted, você poderá ter códigos de servidor rodando normalmente em qualquer linguagem que preferir.

 

Add-Ins

Tenho falado bastante sobre esse assunto, também. Nesses posts http://rodrigoromano.net/2015/11/04/aumentando-a-produtividade-com-sharepoint-add-ins-parte-1/ e http://rodrigoromano.net/2015/11/23/aumentando-a-produtividade-com-sharepoint-add-ins-parte-2-a-beleza-do-upgrade/ falei sobre como utilizar esse modelo para ganhar produtividade.

Quando esse modelo foi introduzido, a mensagem chegou para a comunidade de forma distorcida e não entendemos a sua proposta e como ele poderia nos ajudar. Para nós, desenvolvedores de SharePoint acostumados a fazer tudo da mesma maneira, foi complicado aceitar essa alteração na nossa metodologia de trabalho. Muitas pessoas acabaram por simplesmente deixar esse modelo de lado e não aproveitar os seus benefícios.

Concordo que essas mudanças são muito grandes, principalmente para quem estava acostumado com desenvolvimento somente do lado do servidor e tiveram que passar para o lado do cliente e entender todos os seus desafios e características.

Muito embora as aplicações web tenham evoluído para modelo semelhantes, não estávamos acostumados e talvez nem preparados pra isso.

 

SharePoint Framework

A Microsoft tenta, cada vez mais, aproximar os desenvolvedores de outras plataformas e permitir que eles trabalhem com o SharePoint de maneira mais simples, sem uma curva de aprendizado muito alta.

Com o modelo de Add-ins, nesse caso específico os SharePoint-Hosted, isso era uma meia verdade. Embora a linguagem utilizada seja o Javascript, todo o tooling e os processos de desenvolvimento eram todos muito distintos. 

Na minha visão, o modelo de Add-ins foi um primeiro passo nessa transformação. 

O segundo passo, foi a criação do SharePoint Framework.

Com esse novo modelo, que ainda está em preview, a Microsoft aproximou esses mundos de uma forma nunca vista antes. Veja abaixo, um comparativo entre os toolings utilizados no desenvolvimento Server-Side e no novo modelo:

Tooling SharePoint Atual Tooling SharePoint Framework
IIS / .NET Framework Node
NuGet NPM
MS Build Gulp
Visual Studio Templates Yeoman
C# TypeScript

Notem que agora, as ferramentas são as mesmas utilizadas pelos desenvolvedores front-end por muito tempo. Eles não terão nenhum tipo de dificuldade de se adaptar nesse mundo novo, ou seja, a Microsoft atingiu seu objetivo.

Eu acredito que, eventualmente, esse modelo substitua o de add-ins, pelo menos o SharePoint-Hosted.

Uma das coisas que posso comentar, é que a Microsoft está investindo bastante nesse modelo. Recomendo, portanto, que o utilizem. Testem-no. Deem feedback. A Microsoft está focada em pegar tudo o que ela tem aprendido com a comunidade, principalmente no PnP e tentando trazer para o produto.

 

O que acham desse assunto? Comentem aí! 😀

 

Abraços!

 

SharePoint WebHooks

Olá SharePointers,

Como eu postei recentemente aqui, a Microsoft tem apresentado uma série de novidades interessantes em toda a sua gama de produtos e não tem deixado faltar o nosso amado SharePoint.

Uma das features que devem ser anunciadas em breve para o SharePoint é o “SharePoint Webhooks“.

 

O que são os Webhooks?

Webhook é um conceito atual que está ganhando cada vez mais popularidade. Com ele é possível receber notificações em tempo real, sem ter que ir consultar no sistema fonte. É conhecido como Web Callback or HTTP Push API.

Muitos lugares já utilizam/disponibilizam esse tipo de APIs, como:

Github – envia notificações quando alguma ação acontece em um repositório. 

Foursquare – envia notificações quando um usuário faz um checkin em algum lugar.

 

SharePoint Webhooks

No SharePoint, a previsão é que este recurso esteja disponível, em modo General Preview, nesse trimestre e de forma final no final do ano.

 

Alguns podem perguntar: e os Remote Event Receivers? Quando escolher um ou outro?

Os Webhooks não suportarão os eventos do tipo “ING”, ou seja, você não será notificado enquanto uma ação está acontecendo, e consequentemente, não poderá interferir nelas. As notificações serão somente depois que a ação ocorrer.

Eles são mais seguros, nenhuma informação sobre o evento é passada durante a chamada.

Os Webhooks são mais “industry standard”, ou seja, os desenvolvedores de outras tecnologias já estão acostumados com esse padrão e será mais fácil a adoção.

Não será necessário utilizar serviços baseados em WCF, Serviços HTTP comuns já são suficientes.

 

Para mais informações, veja o video abaixo:

 

Referências:

https://dev.office.com/blogs/introducing-sharepoint-webhooks

https://blogs.technet.microsoft.com/stefan_gossner/2016/05/04/sharepoint-developer-announcement-the-sharepoint-framework-an-open-and-connected-platform/

https://github.com/SharePoint/sp-dev-samples

 

 

Migrando uma aplicação ASP.NET (MVC) para Provider-Hosted

Olá SharePointers,

Muitas vezes temos aplicações desenvolvidas em .NET mas precisamos colocá-las no SharePoint. Mesmo que no início, acabamos por não utilizar nada efetivo do SharePoint.

Avaliando as opções do Visual Studio, acabei passando, sem querer, por uma opção que me chamou muito a atenção: “Convert to App for SharePoint Project

 

Para chegar lá, segui o passo-a-passo abaixo:

1- Criar uma solução ASP.NET MVC

 

Com a solução criada, cliquei com o botão direito no projeto, fui em Convert e depois em Convert to App for SharePoint

Escolhi a URL do Site e depois marquei como SharePoint Online e pronto! Open-mouthed smile

A solução estava migrada automaticamente para mim…

 

Ao apertar o F5, para rodar a solução o Visual Studio subiu no SharePoint Online e apareceu a tela para confiar na aplicação

E após isso, estava rodando a partir da minha máquina local!

 

O processo é bem simples, e pode ajudar bastante no nosso dia-a-dia!

 

Abraços!

SharePoint Framework

Olá SharePointers,

Nas últimas semanas (talvez meses) podemos notar um movimento diferente da Microsoft. Para muitas pessoas, eu estou incluso, seria muito dificil acreditar em alguns movimentos que ela tomou como empresa.

Podemos citar algumas coisas, dentre tantas outras:

SQL Server no Linuxhttps://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux/

PowerShell no Linuxhttps://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/

.NET Open Source e com código disponível no GitHub (não é tão novidade assim, mas é bem interessante) – https://blogs.msdn.microsoft.com/dotnet/2014/11/12/net-core-is-open-source/ 

 

Com tantos movimentos, alguns podem ter pensado: “E o nosso querido SharePoint?”

 

Recentemente a Microsoft publicou no GitHub um repositório relacionado ao SharePoint (https://github.com/sharepoint).  Nesse repositório tem um guia detalhada de como você montar uma aplicação (add-in) utilizando os conceitos de mercado utilizados na maioria das tecnologias front-end:

          

 

Até pouco tempo atrás, quando a Microsoft “mudou” a forma, ou talvez o conceito, de como o desenvolvimento para SharePoint deveria ser, saindo do ASP.NET (Server-side) e indo para o client (front-end) e mexeu com o status-quo dos profissionais que estavam acostumados a fazer as coisas sempre de uma maneira já havia causado uma revolução no mercado.

Muitos não sabiam, ou não imaginavam como fariam as coisas que estavam acostumados…

Olhando agora para trás, depois de alguns anos que os add-ins (na época Apps) foram apresentados para nós como conceito, vemos com um olhar diferente. Eu, pelo menos, evito ao máximo soluções Server-Side para SharePoint. Aliás, nem consigo lembrar direito a última vez que utilizei uma solução assim para fazer webparts.. Claro que existem situações e regras de negócio que vão forçar a usar uma solução que tenha código server-side mas, ainda assim, provider-hosted.

No começo, me pegava pensando… “Vou fazer sempre Farm Solutions e, se não houver outra maneira, utilizo os Add-ins”..  E hoje, acontece justamente o contrário…. Só utilizo Farm Solutions em último caso.. Só de pensar no deploy, no tempo de instabilidade da farm acabo desistindo!

Acredito que isso tenha acontecido com a maioria de vocês!

 

Voltando ao assunto do post, a Microsoft em uma tentativa de aproximar ainda mais os desenvolvedores de outras tecnologias, deu mais um passo interessante..

Convido vocês a olharem com carinho esses links: https://github.com/SharePoint/sp-dev-docs, https://github.com/SharePoint/sp-dev-docs/wiki/Setup-your-machine e https://github.com/SharePoint/sp-dev-docs/wiki/HelloWorld-WebPart.

Vocês serão apresentados a alguns conceitos novos, que falarei em outras oportunidades com mais detalhes: “Client WebParts” e “SharePoint Workbench”.

Por ora, deixo um vídeo mostrando essas novas e fantásticas ferramentas:

 

Abraços!

SharePoint 2016 RTM

Olá SharePointers,

Para quem não está acompanhando o dia-a-dia do time de produto do SharePoint, foi anunciado (14/03) que a versão RTM do SharePoint está disponível para download.

O post no blog oficial está aqui: https://blogs.office.com/2016/03/14/sharepoint-2016-rtm-and-the-future-of-sharepoint-event/

Para baixar o trial, utilize esse link: http://aka.ms/GetSharePoint2016

 

Aproveito a oportunidade para reiterar a importância de seguir o blog oficial e ficar por dentro das novidades Open-mouthed smile

 

Abraços!

SharePoint 2016 Release Candidate disponível

Olá SharePointers,

Não sei se todos estão acompanhando a evolução do SharePoint 2016, mas o time de produto anunciou no dia 20/01/2016 que a versão RC do SharePoint estava disponível para download https://blogs.office.com/2016/01/20/sharepoint-server-2016-and-project-server-2016-release-candidate-available/.

Notem que essa versão também funcionará como um update do Beta 2, então quem tinha essa versão instalada pode fazer o update diretamente. Open-mouthed smile

Link para download: https://www.microsoft.com/en-us/download/details.aspx?id=50737

 

Atenção:

  • O SharePoint 2016 continuará a suportar o InfoPath Forms Services. O InfoPath Form Services será suportador por toda a duração do ciclo de suporte do SharePoint 2016, ou seja, até 2026.
  • InfoPath Forms Services no Office 365 continuará a ser suportado.
  • InfoPath 2013 e SharePoint Designer 2013 serão as últimas versões desses produtos.

 

Abraços!

Request Digest no SharePoint

Olá SharePointers,

Hoje vou falar um pouco sobre o RequestDigest. Para quem está acostumado a trabalhar com códigos client-side, com certeza já teve que usá-lo para criar itens ou outros objetos no SharePoint.

Toda vez que desejamos alterar algo no SharePoint, precisamos passá-lo no cabeçalho do request para que a operação seja concluída com sucesso. Para evitar ataques, o SharePoint gera um token específico para o usuário atual, site atual e por um tempo específico. Esse token é conhecido como Request Digest ou Form Digest.

Sendo assim, quando for executar uma chamada basta pegar o valor do RequestDigest e colocar no cabeçalho X-RequestDigest, como demonstrado abaixo:

image

Porém, se o usuário abrir a página e deixar aberta, sair do computador por um tempo e depois tentar clicar em algum botão, pode ser que o tempo de duração do token já tenha expirado. 

Para resolver esse problema, existe uma função Javascript que gera um token novo para você: UpdateFormDigest.

Para facilitar o entendimento, criei uma função que chamei de getRequestDigest que sempre me retorna o valor do token e, caso esteja vencido, ele renova o token e me retorna o valor atualizado.

image

e utilizo, onde precisar, essa função.

image

 

Abraços!