Arquivo da categoria: Dicas

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! 

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!

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!

SharePoint Workflows–Acessando dados de um outro site

Olá SharePointers,

Hoje vou falar de uma dica muito útil: como acessar dados de um outro site, utilizando workflows. Nesse exemplo, acessarei uma lista do site pai.

O Workflow manager veio para simplificar a forma como os workflows são feitos. De forma declarativa, ficou bem mais simples.

Internamente,  a engine de workflows converte todas as ações em chamadas REST. Resumindo, tudo o que podemos fazer utilizando workflows, podemos fazer utilizando as APIs REST disponíveis.

Introdução

O Workflow roda como um add-in. Dessa forma, ao criar um workflow, ele é autorizado a executar naquele site. Mas, você pode dar permissões para o Add-in e rodar algumas ações em contexto app-only.

Para rodar o exemplo abaixo, é necessário ativar uma feature (de Web) no site que o workflow será criado:

image

Após isso, vá em Configurações do Site e clique  em Permissões de Aplicativo de Site

image

Copie o Id do aplicativo

image

Abra o outro site que deseja consultar informações e abra a página http://[site]/_layouts/15/appinv.aspx

Cole o Id do aplicativo e clique em pesquisa.

image

Cole o xml abaixo no último campo e clique em criar.

Atenção: O xml abaixo está dando permissão Manage em uma lista que você selecionará na próxima tela. Altere o xml conforme a sua necessidade de negócio.

<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="Manage" /> </AppPermissionRequests>

Aparecerá uma tela para você confiar no Workflow e escolher a lista que deseja extrair informações.

image

 

Workflow

Crie o workflow e adicione um App Step.

image

Coloque uma ação Build Dictionary

Coloque duas entradas no Build Dictionary: Accept e Content-Type com o mesmo valor

image

e outra Call HTTP Web Service

image

Faça a sua chamada REST, clique nas propriedades da ação REST

image

e configure o RequestHeaders para ter o valor da variável que você criou no Build Dictionary

image

Pegue o valor da resposta e utilize-o conforme desejar.

image

 

Conclusão

Demonstrei como acessar dados, via REST, de outro site utilizando o workflow manager. Muitas vezes, por questões de organização e estruturação dos dados, precisamos acessar dados que não estão no site que estamos trabalhando e as APIs REST nos permitem isso de maneira bem simples. Entretanto, pode ser um pouco complicado fazer o passo-a-passo para fazer com que o mesmo processo funcione dentro do workflow.

 

Abraços Smile

Enviar e-mail usando Javascript

Olá SharePointers,

Vocês sabiam que é possível enviar e-mails usando Javascript no SharePoint?

Essa dica funciona tanto no SharePoint On-Prem quanto no SharePoint Online.

Por questões de segurança, o usuário tem que ser do mesmo domínio do SharePoint.

Disponibilizei o código no Github: https://github.com/RARomano/SPRestAPIs/blob/master/SendEmail.js

 

Referência

http://geekswithblogs.net/ThorvaldBoe/archive/2014/07/03/sending-email-with-sharepoint-and-jquery.aspx

 

Abraços!

Aumentando a produtividade com SharePoint Add-ins – Parte 2 (A beleza do Upgrade)

Olá SharePointers,

Fiz um novo post falando de como aumentar a produtividade do desenvolvimento utilizando Add-Ins e publiquei o documento no DOCS.com da Microsoft.

O link para o documento é: https://doc.co/GGzdmo

O projeto está publicado no GitHub.. O link do repositório é: https://github.com/RARomano/SharePointHostedUpdateApp

 

Abraços!

SharePoint 2016 – Beta 2 está disponível

Olá SharePointers,

A Microsoft anunciou o lançamento do nova versão beta do SharePoint 2016, a beta 2.

Para quem quiser fazer o download, é só clicar nesse link: http://www.microsoft.com/en-us/download/details.aspx?id=49961.

 

Principais Novidades

 

Recurso Descrição
Links duráveis Quando você renomeia ou move um documento, ele mantém o link
Fast SiteCollection creation Através do PowerShell é possível criar um site collection de forma mais rápida, onde o SharePoint evita fazer vários roundtrips para o SQL. Mais informações: https://technet.microsoft.com/en-us/library/mt346121(v=office.16).aspx#FSCC 
Preview de imagens e vídeos em biblioteca de documentos  
Suporte a arquivos grandes Agora você pode fazer o download/upload de arquivos maiores que 2 GB

Entre outros recursos… Para acessar a lista de tudo o que está incluído nessa versão, clique nesse link: https://technet.microsoft.com/en-us/library/mt346121(v=office.16).aspx

 

Recursos deprecados 

Assim como vários recursos foram adicionados nessa versão, alguns foram considerados deprecados. Entre eles:

Recurso Descrição
SharePoint Foundation SharePoint 2016 não tem a versão foundation (que estava – e ainda continua – disponível para as versões anteriores do produto)
Standalone Install Agora você precisa instalar uma versão do SQL Server antes de instalar o SharePoint
FIM (Forefront Identity Manager) Client As versões antigas do SharePoint utilizavam o FIM Client para sincronização de diretório. Agora, o método para isso é Active Directory Import.
Excel Services Excel services agora é parte do Excel Online
Tags e Notas Usuários não podem criar ou acessar tags e notas.
STSADM Incluso para compatibilidade.

Para acessar a lista completa, clique nesse link: https://technet.microsoft.com/EN-US/library/mt346112(v=office.16).aspx

 

Aumentando a produtividade com SharePoint Add-Ins – Parte 1

Olá SharePointers,

Para quem tem acompanhado os direcionamentos que a Microsoft vem apresentando para modelo de desenvolvimento do SharePoint, principalmente quando o assunto é o SharePoint Online, percebe que o direcionamento é muito forte para os chamados “Add-Ins“.

Já fiz um post falando dos modelos de desenvolvimento disponíveis no SharePoint (http://rodrigoromano.net/2015/01/27/sharepoint-2013-e-seus-modelos-de-desenvolvimento/ e dos “novos” modelos de provisionamento de objetos http://rodrigoromano.net/2015/07/04/modelo-de-provisionamento-de-objetos-no-sharepoint/), mas o foco desse post é falar sobre como tirar proveito dessa nova orientação e criar soluções de negócios que de fato agreguem valor ao negócio do cliente.

Para (re)lembrar: Quando falamos de add-ins (antigamente conhecido como Apps), eles podem ser: SharePoint-hosted ou Provider-hosted.

Muitos desenvolvedores podem falar/pensar assim “Mas eu já tinha um framework que acelerava o meu desenvolvimento utilizando Farm Solutions e agora preciso alterar toda a arquitetura para esse modelo novo?” e a resposta é:

SIM, mas podemos fazer isso utilizando algumas vantagens que esse modelo de add-ins nos apresenta e compensar esse trabalho que teremos (somente na primeira vez).

Pensando nisso, farei alguns posts explicando em como tirar proveito do modelo de add-ins.

 

Contexto

A Microsoft fez vários anúncios recentes que demonstram que a visão dela está mudando, ou melhor, está mudada. Vimos que o código do .NET virou open-source (código disponível no github: https://github.com/dotnet), vimos a apresentação da hololens, do continuum e uma série de novidades que deixaram todos boquiabertos (falei um pouco desse posicionamento nesse post: http://rodrigoromano.net/2015/05/24/novo-posicionamento-da-microsoft-e-projeto-oxford/).

Com tudo isso, podemos notar que a estratégia é simples: permitir a interoperabilidade, ou seja, qualquer plataforma/linguagem poder interagir com recursos Microsoft.

SharePoint-Hosted Add-ins

Quando o assunto é SharePoint-Hosted add-ins, a primeira coisa que vem a nossa cabeça é que nesse modelo não podemos colocar código server-side. Há algum tempo atrás isso era um paradigma, mas acredito que isso já tenha mudado um pouco.. 

Em contrapartida, por só permitir código JavaScript, HTML e CSS, esse modelo nos permite (ou força) a abrirmos os olhos para o movimento do mercado. Para quem trabalha com aplicações front-end, JavaScript é uma ferramenta de trabalho diário. Para facilitar a vida dos desenvolvedores front-end, várias bibliotecas (ou “mini-frameworks”) foram criados e (são criados a todo momento!). É muito provável que enquanto estou escrevendo esse post, tenha alguma biblioteca nova sendo criada 😉

Uma dessas bibliotecas é o Knockout JS.

O Knockout JS é uma biblioteca que facilita (e muito) a vida de um desenvolvedor front-end. Com essa biblioteca, você pode colocar tags no seu código HTML para fazer o “BIND” automático entre um objeto do DOM e uma variável e, dessa forma, quando esse campo for alterado, a variável seja atualizada automaticamente (ou vice-versa). Recomendo a leitura da documentação: http://knockoutjs.com/documentation/introduction.html

Utilizando essa biblioteca, fiz um exemplo (não levou mais de 1 hora para fazer) que demonstra como utilizar o Knockout JS, REST APIs e SharePoint JSOM (JavaScript Object Model) para construir uma App pode ser bem simples e disponibilizei no GitHub: https://github.com/RARomano/KnockoutJSandSharePointHostedApp.

 

Próximos Passos

O meu próximo post apresentará como fazer o upgrade de SharePoint-Hosted add-ins e ver como os recursos que a Microsoft disponibiliza pode ajudar a salvar muito tempo e sermos mais produtivos.

 

Abraços! 😀

 

Instalação do SharePoint Server 2016 IT Preview

 

Olá SharePointers,

Conforme anuncei em meu post anterior (http://rodrigoromano.net/2015/08/24/sharepoint-2016-it-preview/) o SharePoint 2016 IT Preview foi disponibilizado para download.

Fiz o download e instalei em minha máquina. Abaixo estão os prints que coletei durante a instalação, que ocorreu sem nenhum problema.

Dados da minha VM:

Windows Server 2012 R2
SQL Server 2012 SP1
8 GB de Ram
2 processadores

image

image

image

image

O serial para instalação está disponível nesse link:http://www.microsoft.com/en-us/download/details.aspx?id=48712

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

 

O consumo de recursos ficou dentro do normal.

image

image

Venha comemorar o Lançamento do Visual Studio 2015

Olá SharePointers,

Em 20 de julho, iremos celebrar a última release do Visual Studio 2015!

Convidamos a todos a aprender sobre as novas features e tecnologias que acompanharão a nova versão. Você poderá interagir na sessão ao vivo, participar da sessão de perguntas e respostas com o time de engenharia, além de se aprofundar em detalhes técnicos, em mais de 60 sessões on-demand. Para acessar, clique aqui.

Teremos também a oportunidade de ver o time de Visual Studio criando uma solução fim-a-fim em um projeto open-source, alavancando as mais novas ferramentas e tecnologias. Veja como eles lidam com os mais diferentes cenários e tire suas dúvidas.

Participe do lançamento no dia 20 de julho, clicando aqui. Não é necessário fazer o registro, apenas acesse a URL no dia 20 de Julho, a partir das 12h30 (horário de Brasília). Siga @visualstudio e acompanhe as novidades.

 

Compartilhe conosco a sua experiência usando a hashtag #visualstudiortm