Access Services – R.I.P

Olá SharePointers,

A Microsoft anuncia hoje que o Access Services será descontinuado.

Quando foi lançado, esse recurso era permitir que usuários de negócios um pouco mais avançados, conseguissem criar uma aplicação web com pouco ou com quase nenhum código. Com o crescimento do Power Apps, acaba não fazendo muito sentido a utilização desse recurso.

Então, se você utiliza ou pretendia utilizar esse recurso, atenção:

A Microsoft não recomenda mais a utilização do Access Services. Esse recurso será RETIRADO do Office 365.

A partir de Junho de 2017, não será mais possível criar aplicações baseados no Access no SharePoint Online. 

Para você que possui aplicações Access rodando no SharePoint Online, você terá até Abril de 2018 para migrá-las. A Microsoft está trabalhando para criar soluções que facilitem essa migração. Existe uma feature (já disponível) para exportar os dados existentes para listas do SharePoint e então você poderá criar as funcionalidades utilizando  PowerApps e Microsoft Flows.

Existe, também, um guia para migrar a sua aplicação customizada para PowerApps publicado aqui: https://support.office.com/en-us/article/Export-Access-web-app-tables-to-SharePoint-ff9d9058-14cf-40a2-89c8-ec46cf5cd67c?ui=en-US&rs=en-US&ad=US

A grande ressalva é que para versões On-Premises do SharePoint, o Access Services ainda será disponibilizado.

Se liguem pessoal!

Anúncio oficial: https://techcommunity.microsoft.com/t5/Office-Retirement-Blog/Updating-the-Access-Services-in-SharePoint-Roadmap/ba-p/57148

 

Abraços!

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! 😀

Criação de sites Self-Service em ambientes híbridos no SharePoint Server 2013

Olá SharePointers,

Conforme anunciado pelo Bill Baer, agora é possível habilitar a criação self-service de sites em ambientes híbridos no SharePoint 2013, ou seja, você pode direcionar os usuários a utilizarem a página de criação de sites do Office 365 ao invés da on-premises e criar um grupo no Office 365.

Essa opção está disponível para administradores, na página de Self-service Site Collection Management (Central Administration).

Quando o usuário clicar em criar um site e essa opção estiver habilitada, ele irá para a página abaixo (/_layouts/15/scsignup.aspx)

Para os usuários restantes, os que não estão sincronizados com a nuvem ou não estão na audiência desejada, continuarão utilizando a versão on-premises.

Atenção: essa funcionalidade foi incluída no Public Update de Março de 2017. Faça o download utilizando esse link: https://technet.microsoft.com/en-us/library/mt715807(v=office.16).aspx#BKMK_2013

Veja mais em: https://techcommunity.microsoft.com/t5/SharePoint-Blog/Hybrid-Self-Service-Site-Creation-now-available-for-SharePoint/ba-p/52977

Muito interessante, não acham?

Abraços!

Code Sample: Webhooks no SharePoint Online

Olá SharePointers,

Outro dia eu postei sobre a liberação dos Webhooks para o SharePoint Online (http://rodrigoromano.net/2016/09/10/sharepoint-webhooks/) e, mais recentemente, eu publiquei um exemplo utilizando Node JS, no Github.

https://github.com/RARomano/SharePointWebhook-Node

Com esse exemplo, você poderá testar o funcionamento desse recurso muito interessante no seu próprio tenant e que, na minha opinião, será utilizada no lugar dos Remote Event Receivers muitas vezes.

Abraços!

Mudanças na Home do SharePoint no Office 365 – All about news

Olá SharePointers,

A Microsoft anunciou uma novidade interessante para o SharePoint Online: um conjunto de features e recursos para melhorar a comunicação entre os times.

É muito comum, em uma intranet, criarmos um local para que todas as pessoas fiquem atualizadas com as novidades da empresa, onde as novidades serão postadas e apreciadas por todos os colaboradores.

Apesar disso, o SharePoint não tinha algo nativo para esse requisito e sempre, acabávamos refazendo essa funcionalidade para diversos clientes.

Para atender a esse requisito, uma série de recursos foram adicionados:

  • Na home você poderá visualizar as notícias de todos os sites que você pertence ou segue, além de sugestões do Graph.
  • Aplicativo para iOS
  • Aplicativo para Android
  • Aplicativo Universal Windows Platform (UWP) – que será lançado logo.

Juntando isso, com a nova experiência de páginas de conteúdo, a colaboração e a criação de conteúdo pelo usuário final, ficou muito mais amigável.

Por exemplo, veja a lista de webparts recém lançadas que podem ser utilizadas nas páginas de notícias:

E olha como a experiência nos aplicativos mobile ficaram sensacionais:

iOS

Android

 

Para saber mais, acessem o link: https://techcommunity.microsoft.com/t5/SharePoint-Blog/ANNOUNCEMENT-SharePoint-home-in-Office-365-and-team-news-updates/ba-p/50886

Abraços!

Acesso condicional por IP para SharePoint Online e OneDrive for Business

Olá SharePointers,

A partir de amanhã, 20/01/2017, a Microsoft começará a liberar nos tenants uma nova política que permitirá aos usuários restringirem o acesso aos sites do SharePoint Online (e OneDrive) por um range de IPs.

A aplicação dessa política, no entanto, é bem forte. Precisamos tomar muito cuidado com a faixa de IPs que colocamos, ela DEVE necessariamente incluir a faixa de ip dos administradores, caso contrário, eles não poderão mais acessar o site para remover ou alterar a faixa de IP. Caso isso aconteça, a única forma de restaurar acesso ao site é abrir um chamado para o suporte, então tenham bastante atenção com essa configuração!!!!

Uma nova seção User Access estará disponível na Central Admin e lá você terá a opção de colocar a faixa de IPs desejada, conforme imagem abaixo:

E, quando um usuário que não estiver nessa faixa de IPs acessar o site, ele verá o seguinte erro:

 

Bem legal né? 😀

 

Mais informações: 

https://blogs.office.com/2016/09/26/enhanced-conditional-access-controls-encryption-controls-and-site-classification-in-sharepoint-and-onedrive/

https://techcommunity.microsoft.com/t5/SharePoint-Blog/Introducing-Conditional-Access-by-Network-Location-for/ba-p/39274 

 

Abraços! 

“Image Renditions” no SharePoint com Cloudinary

Olá SharePointers, 

O SharePoint possui vários recursos interessantes e, um deles, é o Image Renditions. 

Image Renditions faz parte do SharePoint enterprise e, com ele, você consegue subir uma imagem em alta resolução e fazer com que o SharePoint crie versões alternativas conforme você precisa delas.

Por exemplo, você sobe uma imagem com resolução 1080×1024, mas em algum lugar do site, você tem um espaço de 300×200 para exibir a mesma. O que muitos acabam fazendo é carregar a imagem inteira e formata por CSS. Mas, fazendo dessa forma, o peso de carregar a imagem inteira e transferi-la para o cliente é o mesmo, não importando o tamanho que a mesma está sendo exibida.

Com esse recurso, você melhora muito o carregamento da sua página, pois você transfere exatamente o tamanho que será utilizado.

Seguindo o passo-a-passo abaixo, você configura os renditions em um site:

E quando for utilizar as imagens, você pode utilizar de uma das formas a seguir:

Passando o tamanho desejado

<img src="/sites/pub/Assets/Lighthouse.jpg?Width=400&Height=200" />

 Ou passando o ID do rendition

<img src="/sites/pub/Assets/Lighthouse.jpg?RenditionID=2" />

Dessa forma, a imagem vem do SharePoint da forma que deverá ser utilizada no conteúdo, reduzindo tráfego de rede adicional e acelerando o carregamento da sua página.

Entretanto, esse recurso só está disponível no SharePoint ENTERPRISE.

Infelizmente, nem todas as empresas possuem essa versão e com o surgimento (e consolidação) cada vez mais de serviços baseados em nuvem, muitas tarefas podem nos auxiliar grandemente.

Um desses serviços é o Cloudinary

Esse serviço é simplesmente fantástico! E o melhor, é gratuito! Existem planos que atendem a diversas necessidades, mas a versão gratuita, que é completamente funcional, atende bem na maioria dos casos.

Veja alguns casos que você pode fazer com esse serviço:

Imagem Original

 

Imagem centralizada no rosto e arredondada

(http://res.cloudinary.com/demo/image/upload/w_400,h_400,c_crop,g_face,r_max/w_200/lady.jpg)

Lembre-se que essa imagem é transformada “on-the-fly”, ou seja, você pode alterar os parâmetros conforme quiser para obter resultados diferentes.

 

Imagem centralizada no rosto e arredondada (preto-e-branco)

(http://res.cloudinary.com/demo/image/upload/w_400,h_400,c_crop,g_face,r_max/w_200/e_grayscale/lady.jpg)

Notem que nesse caso, só adicionei o e_grayscale na url para aplicar uma transformação adicional na mesma imagem.

 

As possibilidades são infinitas! Leiam a documentação para mais detalhes. 😀

Além disso tudo, criaram APIs para todas as principais linguagens!

 

Espero que gostem! 

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!

 

Single Sign On utilizando Apache e Azure AD

Olá SharePointers,

Recentemente eu compartilhei no Github (https://github.com/RARomano/SSO-Apache-Azure) um repositório que mostra como fazer single sign on utilizando Azure AD, Apache e Open ID.

Utilizarei esse artigo para explicar um pouco mais sobre o conceito utilizado.

Open ID Connect

É um protocolo criado com base no OAuth para permitir que usuários se conectem, com segurança, à aplicações web.

Veja mais detalhes do fluxo de autenticação, na imagem abaixo:

Single Sign On

SSO é um conceito bastante comum em aplicações, consiste em utilizar somente um login para se autenticar em diversas aplicações diferentes. No nosso cenário, utilizaremos o login do Azure AD para se autenticar em aplicações customizadas.

Entretanto, como é um conceito comum e cada vez mais desejado, é normal encontrarmos em cada aplicação os códigos/parâmetros que permitem esse tipo de integração.

Alguns links falando sobre SSO, com Azure AD:

Em um cenário corporativo, onde hospedamos várias aplicações distintas, é muito mais interessante termos essas configurações em um só lugar, centralizado e tirar essa responsabilidade das aplicações.

Apache

Apache é um servidor web, livre e disponível para vários sistemas operacionais, inclusive o windows. Segundo estatísticas, ele possui um domínio de cerca 60% do mercado. (https://news.netcraft.com/archives/2016/02/22/february-2016-web-server-survey.html)

Pensando nisso, resolvi utilizar o Apache nesse artigo.

Para realizar a autenticação, utilizei esse módulo do apache mod_auth_openidc (https://github.com/pingidentity/mod_auth_openidc).

Docker

Outra coisa que utilizei no meu exemplo foi o Docker, visando portabilidade e escalabilidade dos meus testes, por exemplo: instanciar 2 servidores apache distintos e testar se ao autenticar em uma aplicação de um servidor a outra também estaria autenticada.

Resultados Obtidos

  • Autenticação em aplicações distintas no mesmo servidor
  • Autenticação em aplicações em servidores diferentes
  • Ao autenticar em uma aplicação customizada, você não precisará se autenticar novamente para utilizar outros serviços da Microsoft, como o e-mail por exemplo
  • Ao se autenticar em outro serviço da Microsoft primeiro e depois acessar uma aplicação, você não precisará se autenticar novamente.

Eu, particularmente, tenho gostado bastante de testar esses cenários de interoperabilidade. Tenho buscado, cada vez mais, utilizar essas ferramentas para desenvolver os projetos em que atuo e tenho me surpreendido bastante com o resultado.

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