Archive for July, 2011

Sandboxed Solutions em SharePoint Online 2010

 

Com o lançamento na Microsoft da sua solução Cloud através do Office 365 tem havido muita procura sobre as diferentes ofertas que este novo serviço disponibiliza.

Office 365 é um conjunto de Serviços da Microsoft na qual se pode aceder em qualquer local a documentos, correio electrónico, contactos, calendários de forma actualizada, tendo como garantia a fiabilidade e segurança a nível empresarial de forma a disponibilizar a pequenas e grandes empresas com um conjunto de serviços essenciais de trabalho a um preço acessível.

Após o lançamento da versão Beta do Office 365 um dos produtos no qual foquei a minha atenção foi o SharePoint Online 2010 e a capacidade de criar Sandbox Solutions.

Sandbox Solutions em SharePoint é um novo conceito para SharePoint 2010 que permite criar código personalizado a aplicar nos sites de SharePoint de forma segura, fornece a capacidade dos Site Collections Administrator de instalar e monitorizar soluções personalizadas sem a necessidade dos Administradores do SharePoint. Mas para ter essa liberdade os Administradores estão limitados as funcionalidades das Sandboxed Solutions, relativo ao código que podem utilizar ou os recursos que podem utilizar/aceder.

 

Soluções em SharePoint Sandbox

 

As soluções em SharePoint é um pacote de configurações em XML, assemblies e ficheiros de apoio “.jpg, .png, .resx” entre outros que sao compiladas em um ficheiro tendo como extensão [nome].wsp.

A Soluções em Sandbox utiliza um subconjunto da namespace Microsoft.SharePoint do Object Model do SharePoint sendo considerados seguros e acessíveis de forma a poderem ser utilizados na criação das nossas Soluções.

Todas as Soluções são guardadas em Galerias “Solutions” nos Sites do SharePoint onde os administradores dos sites podem depositar e gerenciar soluções de modo seguro.

Estas soluções são executadas num processo separado do “w3wp.exe” de forma a ter menor impacto possível na execução do código criado nas nossas Sandbox Solutions.

Este novo serviço chamado “SharePoint 2010 User Code Host“, irá ser a zona onde será executado e compilada as soluções em Sandbox de uma forma segura a ter o menor impacto possivel em toda a Infra-estrutura do SharePoint.

 

A diferença das Sandbox Solution para Soluções em Farm é a camada de acesso as diferentes Assembleis e níveis de permissão para sua Infrastrutura enquanto as Sandbox Solutions encontram-se muito limitadas a camada dos Sites e Webs, as Farm Solutions fornece um acesso alargado ao conteúdo da infra-estrutura no SharePoint 2010 que vão desde aos serviços das Farm as das Web Application .

Os próximos links listam as capacidades/limitações das Sandbox Solutions.

What Can Be Implemented in Sandboxed Solutions in SharePoint 2010

http://msdn.microsoft.com/en-us/library/gg615464.aspx

Restrictions on Sandboxed Solutions in SharePoint 2010

http://msdn.microsoft.com/en-us/library/gg615454.aspx

Microsoft.SharePoint.dll APIs That Are Available from Sandboxed Solutions

http://msdn.microsoft.com/en-us/library/ee537860.aspx

 

Visual Studio 2010 Sandbox Solution

 

Neste exemplo foi criado uma Sandbox Solution em que foi utilizado os seguintes elementos para configurar o nosso Site no SharePoint Online.

Utilizando o Visual Studio 2010 foi criado novo Projecto em SharePoint 2010 para Sandbox que pode ser implementado em Sites do SharePoint Online 2010 site chamado “SandoBoxProjecto” com os seguintes elementos:

  • Visual Sandbox Web Part
  • Master Page
  • Custom Actions
  • SharePoint Ribbons
  • List Definition

Templates para Visual Studio 2010 de apoio para a criação deste exemplo:

Visual Studio 2010 SharePoint Power Tools

http://visualstudiogallery.msdn.microsoft.com/8e602a8c-6714-4549-9e95-f3700344b0d9/

CKS: Development Tools Edition

http://cksdev.codeplex.com/

SharePoint 2010 Extensibility Projects

http://archive.msdn.microsoft.com/vsixforsp

Criar uma nova solução no Visual Studio 2010 e criar novo Projecto para SharePoint 2010, após novo Projecto definir “Empty project” e definir no SharePoint Wizard a opçção “Deploy as a Sandboxed Solution”, esta opção irá validar a solução a criar para as Sandbox Solutions.

 

Sandbox Web Part

 

A funcionalidade tem como acção demostrar como o Template “Visual Studio 2010 SharePoint Power Tools” pode ser utilizado para criar uma Visual Web Part para sandbox Solutions.

Nesta solução criei uma WebPart para listar o nome das listas numa Listbox.

 

O template fornece a capacidade de visualizar os componentes ASP.Net num User Control onde sera desenhada a nossa WebPart.

 

 

MasterPages

 

Neste exemplo foi criado uma nova componente para alterar a MasterPage e aplicar como default assim que o componente for activo.

 


Para activar alterar a MasterPage foi criado uma "Feature receiver" para copiar e definir a MasterPage "SandboxMaster.master" como a pré-definida. 

 

public override void FeatureActivated(SPFeatureReceiverProperties properties)

{

try 

{        

SPSite site = (SPSite)properties.Feature.Parent;

SPWeb web = site.OpenWeb();

Uri masterUri = new Uri(web.Url + "/_catalogs/masterpage/SandboxMaster.master");

string masterUrl = SPEncode.UrlDecodeAsUrl(masterUri.AbsolutePath);

// Master page used by all forms and pages on site
					

web.MasterUrl = masterUrl;

web.CustomMasterUrl = masterUrl;

web.Update();

}

catch (Exception ex)

{    

throw new SPException(ex.Message);

}

}

 

Custom Actions

 

A funcionalidade tem como acção demostrar como o Module “Elements” foi alterado para adicionar novas acções nos menus das List item através da utilização de Content Types.

SharePoint é constituído por Content Types, estes Content Types ajudam a definir a Metadata associada a cada Tipo de Listas, seleccionado a propriedade e a sua interdependência entre os diversos Content Types que estão constituídos na lista.

Este “Custom action” tem como função definir uma acção que seja visível em qualquer tipo de Lista para isso foi definido o Content Type “Item” onde todos os Content Types para listas derivam.

Exemplo:

http://grounding.co.za/blogs/brett/archive/2008/09/09/sharepoint-content-type-id-s.aspx

 

<?xml version="1.0" encoding="utf-8" ?>
																			

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
													

<CustomAction
						

Id="UserInterfaceCustomActions.ECBItemToolbar"

Rights="EditListItems"

Location="EditControlBlock"

RegistrationType="ContentType"

RegistrationId="0x01"

Sequence="550"

Title="Test"

Description="Test Test" >
										

 

<UrlAction Url="javascript:SP.UI.ModalDialog.ShowPopupDialog('/_layouts/settings.aspx');"/>
													

</CustomAction>
							

</Elements>
							

 

SharePoint Ribbons

 

A funcionalidade tem como acção demostrar como o Template “Server Ribbon” pode ser utilizado para personalizar o controlo de Ribbon para SharePoint 2010.

Este template disponibiliza um conjunto de customizações pré-definidas para a criação do Ribbons em SharePoint 2010 de uma forma simples.

 

 

 

List Definition

 

Esta funcionalidade ira criar uma nova Lista com campo Title, esta lista poderá ser utilizada ou alterada para registar os erros criadas pelo código das features em sandbox.

 

 

Package em SharePoint

 

O Package das soluções SharePoint é a pacote de funcionalidades que são entregues ao cliente onde se encontras as novas configurações que o Administrador da Site Collection poderá monitorizar e gerenciar as diversas Sandboxed solutions.

Para criar a Solução em SharePoint no Visual Studio 2010 deverá seleccionar a opção “Package” para criar a solução “SandboxProjecto.wsp“.

 

SharePoint Online Administration Center

 

O Office 365 disponibiliza ao administrador dos Sites SharePoint Online um novo interface onde poderá gerir as diversas Site Collections, o espaço associado e total de recursos alocados a essas máquinas.

Para a nova solução foi criada uma nova Site Collection chamada “Sandbox“.

 

 

Instalação da Sandbox

 

Aceder ao site do SharePoint Online criado neste caso “Sandbox” e seleccionar “Site Actions > Site Settings > Galleries > Solutions” seleccionar opção “Solutions” no Ribbon e seleccionar “Upload Solution” e seleccionar o caminho para a solução “SandBoxProjecto.wsp“.

Assim que o projecto esteja no Site em SharePoint

MasterPage e Sandbox Web Part

 

Após a activação da nossa solução “SandBoxProjecto.wsp” podemos começar a validar as alterações realizadas no Site do SharePoint Online.

Quando aceder a pagina principal do Site, no topo esquerdo encontra-se uma mensagem “Sandbox MasterPage” para identificar que a MasterPage foi alterada correctamente pela customizada na solução através da solução “SandboxMaster

Para aceder a Web Part “Sandbox WebPart” devera ser adicionada a Web Part, para isso devemos aceder a Tab “Page” seleccionar botão “Edit Page” seleccionar opção para adicionar nova Web Part e na janela de dialogo aceder ao Grupo “Custom” e seleccionar Web Part “Sandbox WebPart“.

 

Sandbox Custom Actions

 

Para visualizar as novas opções do Modulo “Elements” devemos seleccionar uma Lista no SharePoint Online e seleccionar menu dos item dessa Lista, ao seleccionar ira aparecer uma nova opção chamada “Test“, esta nova opção irá criar um nova janela onde ira aparecer o Site de Administração do Site em SharePoint Online.

 

Sandbox Ribbons

 

Para visualizar as novas opções da solução “RibbonSandbox” devemos seleccionar uma Lista de Links no SharePoint Online, ai ira aparecer uma nova Tab com o nome “Sandbox”, ao seleccionar aparece um grupo chamado “Custom Sandbox” com duas novas opções que ira despoletar acções de mensagem.

 

 

List Definition

Para visualizar as novas opções da solução “RibbonSandbox

Download da Solução “SandBoxProjecto.zip

Existem muitas outros componentes que podem ser utilizados na criação das nossas Sandbox Solution aqui ficam uma lista a usar.

What Can Be Implemented in Sandboxed Solutions in SharePoint 2010

http://msdn.microsoft.com/en-us/library/gg615464.aspx

 

Dicas:

 

Este é um pequeno exemplo sobre como criar Sandbox Solution utilizandos os diversos Templates disponibilizados para o Visual Studio 2010.

Espero que tenham gostado, até a proxima…

 

Links utilizados como referência para este artigo:

Microsoft Office 365

http://www.microsoft.com/pt-pt/office365

Developing, Deploying, and Monitoring Sandboxed Solutions in SharePoint 2010

http://msdn.microsoft.com/en-us/magazine/ee335711.aspx

Developing for SharePoint Online with Sandbox Solutions

http://msdn.microsoft.com/en-us/hh181574

Sandboxed Solutions Architecture in SharePoint 2010

http://msdn.microsoft.com/en-us/library/ee539417.aspx

What Can Be Implemented in Sandboxed Solutions in SharePoint 2010

http://msdn.microsoft.com/en-us/library/gg615464.aspx

Restrictions on Sandboxed Solutions in SharePoint 2010

http://msdn.microsoft.com/en-us/library/gg615454.aspx

Add Actions to the User Interface

http://msdn.microsoft.com/en-us/library/ms473643(v=office.12).aspx

Advertisements

Leave a comment