Entendendo o Desenvolvimento para Office 365

Quando o SharePoint Online 2010, que faz parte do Office 365, foi lançado e seus recursos apresentados, o primeiro comentário que eu fiz foi: “O SharePoint Online é muito limitado para desenvolvimento, possui o recurso de sandbox solution mas não consigo fazer nada com ele”.

Após uma análise mais profunda eu entendi (ou acho que entendi) qual era o modelo de desenvolvimento para o Office 365. Neste post vou falar as minhas percepções sobre customização com código do SharePoint Online.

Este post faz parte de uma série de posts sobre entendimento do SharePoint 2010, acesse o post principal para ver os outros assuntos: Entendendo o SharePoint 2010

 

Serviços Externos e Windows Azure

A primeira coisa que acho importante deixar claro é que se bem analisado o processo de desenvolvimento do SharePoint Online comparado com o SharePoint OnPremise não é tão diferente quanto eu achava anteriormente. O meu erro foi considerar apenas o SharePoint Online como recurso para ser utilizado, ignorei um dos mais poderos recursos que eu tinha à disposição e que dificultava o meu entendimento: Windows Azure.

Windows Azure? Sim, isso mesmo, depois que comecei a pensar que o Windows Azure fazia parte da minha plataforma de desenvolvimento para o SharePoint Online, consegui resolver diversos problemas que antes não estava conseguindo.

Mas por que o Windows Azure e não o meu servidor local? O servidor local até pode se utilizado, mas lembre que o SharePoint Online é um serviço na nuvem e que fica no ar 99,9% do tempo. Se eu utilizar algum recurso local, teria que trabalhar com esses números de disponibilidade também para evitar que parte da solução não funcione. Se eu já estou usando uma solução de nuvem, por que não fazer toda a solução baseada em nuvem?

Vou citar alguns exemplos para esclarecer como o Windows Azure poderia nos ajudar:

  • Timer jobs: o SharePoint Online não suporta a criação de timer jobs customizado, para isso poderíamos criar um time job no Windows Azure onde o SharePoint seria acessado através do COM (client object model = modelo de objetos de cliente, o que permite que o SharePoint seja acessado de programas que estejam fora do servidor) e processando os dados, gravando novamente os dados no SharePoint ou em outros locais;
  • Serviços de negócio: SharePoint Online conecta a serviços publicados no Windows Azure para enviar, processar e/ou obter informações. A comunicação com os serviços poderia ser feita em Silverlight ou ECMAScript, já que são rotinas que rodam no lado client ao invés de rodar no SharePoint Online, o que não seria possível. Vale lembrar que sandbox solutions não permitem conexões a serviços (conexões externas), por isso a opção de COM .NET não foi citada;
  • Business Connectivity Services: final do ano passado (2011) foi liberado no SharePoint Online o recurso de BCS (serviço corporativo de conectividade) que permite a conexão à dados ou serviços externos como SQL Azure ou serviços no Windows Azure;
  • Office: o Office 2010 permite a criação de add-ins para documentos, planilhas, etcs que permitem a conexão com fontes externas como serviços de dados do marketplace do Azure, Serviços do Windows Azure, dados do SQL Azure, e por aí vai. A partir da própria interface do Office o usuário obtém, processa e/ou registra informações externas, podendo salvar os dados no SharePoint após isso.

 

Sandbox Solution

Além desses itens citados, o SharePoint Online possui outras formas de customização, as apresentadas basicamente são utilizadas para interagir com conteúdos externos de dados ou regras de negócio, mas o mais básico acabei não falando. Qual é o mais básico? A execução de regras customizadas locais, ou seja, executadas diretamente no SharePoint Online.

As principais formas de fazer isso são através de um recurso novo que veio no SharePoint 2010, que já chegou pensando nas customizações do SharePoint Online, chamado sandbox solution. Este recurso  permite a execução de aplicativos no contexto da coleção de sites. A grande sacada dele é que ele é totalmente gerenciado pelo SharePoint, inclusive o consumo de recursos de hardware.

Com isso a Microsoft conseguiu fornecer grande parte dos recursos de customização do SharePoint com código sem alteração significativa para o desenvolvedor.

A Sandbox Solution trabalha apenas com o conteúdo que estiver em uma coleção de sites, não sendo possível administração de serviços, aplicativos web, ou qualquer outra coisa que estiver hieraquicamente acima de uma coleção de sites. O que na verdade faz todo o sentido.

O que está dentro de uma coleção de sites? As estruturas do SharePoint de sites, listas e bibliotecas, todos os seus dados e permissões de acesso. Sendo assim o processamento de dados do usuário está diponível para ser utilizado através de desenvolvimento.

 

Conclusão

Considerando outros recursos como fazendo parte da solução, como o Windows Azure, as customizações feitas no SharePoint Online ganham muito mais força e conseguem atender a um número muito maior de recursos necessários para os projetos.

Alguns recursos serão utilizados de forma diferente do que poderíamos fazer no SharePoint OnPremise, mas o resultado é o mesmo ou muito similar. O importante é resolver a necessidade, não tentar utilizar um recurso projetado de forma diferente.

Anúncios

6 Respostas to “Entendendo o Desenvolvimento para Office 365”

  1. Fernando Correia Says:

    Agora eu entendi melhor as alternativas de customização no SharePoint Online. Me parece que não só o Windows Azure pode ser uma opção para estender um site SharePoint, mas o SharePoint também é uma opção para complementar uma solução feita no Azure. Ou seja, os dois combinam muito bem. Grande sacada.

  2. Entendendo o SharePoint 2010 « Fabian André Gehrke Says:

    […] Fabian André Gehrke SharePoint no dia-a-dia InícioOutras PublicaçõesWP7Sobre Twitter Facebook RSS ← Entendendo o Desenvolvimento para Office 365 […]

  3. De Olho no Azure – 24/03/2012 « Pensando Azure Says:

    […] Entendendo o Desenvolvimento para Office 365 […]

  4. Entendendo o SharePoint 2010 « Fabian André Gehrke Says:

    […] Entendendo o Desenvolvimento para Office 365 […]

  5. Matheus Moura B. Luiz Says:

    Muito bom Fabian!

    Esclareceu algumas dúvidas e receios que tinha sobre o ambiente, porém ainda me resta uma.

    Como é a utilização do Azure nos ambientes corporativos, no caso clientes que possuem SharePoint Online e não necessariamente possuem o Azure.
    Qual seria a melhor solução neste caso, onde o cliente não possui as serviços do Azure e contrata serviços de uma consultoria externa para customização do seu ambiente SharePoint? A consultoria poderia ter um ambiente Azure e realizar uma conexão entre eles?

    Muito obrigado.

    • Fabian André Gehrke Says:

      Matheus,

      Muito obrigado pelo comentário. Respondendo a sua pergunta, a vantagem de utilizar o Windows Azure é que você terá um serviço que teoricamente nunca ficará indisponível, por isso é uma solução melhor do que local, já que localmente o link pode cair. Soluções de nuvem funcionam muito bem com soluções de nuvem. Sobre de quem é a responsabilidade da conta do Azure, a resposta é tanto faz, isso não irá afetar a entrega técnica da solução e sim apenas o fator comercial e gerenciamento. Se você quiser criar a conta no Azure e cobrar isso do cliente ou se o cliente quiser comprar diretamente, não irá ter impacto.


Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: