Desenvolvimento em SharePoint 2010  

Tags: SharePoint2010, Social

Na continuidade do trabalho feito pelos diversos membros da comunidade SharePoint pelos diversos meios, deixo-vos aqui mais um artigo publicado na revista PROGRAMAR, neste caso  a edição nº27.

 

Developer em SharePoint?

 

Desde muito  cedo que esta mania\tara\obsessão por debitar linhas de código pelo puro prazer de mover um pixel de um lado para o outro, tem-me atormentado como se de um vírus se tratasse.

Não sei se é mania ou não mas sempre gostei de assuntos que me fizessem pensar e criar algo novo. Sim , eu confesso na minha essência sou um Developer , e  presumo que vocês que lêem estas linhas também o são, senão não teriam chegado até aqui.

 

Um  developer, e isto na minha opinião terá de ter sempre uma percepção global das coisas e focus no desenvolvimento,   um pouco de bom senso, e muita paciência.

Estas eram as métricas gerais seguidas por mim até meados de 2004. SharePoint... Pareceu-me interessante a aposta,   e aqui estou. 

 

Não desfazendo os outros tão prestigiados "cargos” de IT, Project Manager, and whatever, penso que a ocupação de Developer  é a mais cool de todas.

Um developer de SharePoint obrigatoriamente tem mais valências de que só a de desenvolvimento: somos Administradores de Sistemas, Helpdesks, Arquitectos , Testers, DBA , Designer e utilizadores finais da plataforma.

Em SharePoint é extremamente rigorosa a interacção com a plataforma mas torna-se gratificante as tecnologias que abrange e a potencialidade das áreas que toca é surpreendente.

 

Microsoft SharePoint Server, o que  é?

 

Embora muitas pessoas já tenham uma ideia clara do que o producto SharePoint representa, existem ainda algumas dúvidas relativamente ao que este produto pretende atingir.

De uma forma muito sucinta SharePoint é uma plataforma corporativa Microsoft assente sobre áreas funcionais.

Nesta última versão, 2010  e existem 6 cores aplicacionais:

image

 

Sites: Criação e Gestão de sites Internos e Externos.

Infra-estrutura única para todos os sites empresariais Web : Intranet, Extranets e Internet

Communities: Ambiente de colaboração social

Ferramentas com capacidades sociais, como blogs,wikis, rssfeeds, tagging, perfis pessoais recios em informação

Content:Gestão documental , políticas de retenção e classificação automática de conteúdos,

Search: Pesquisas com grande relevância, contexto social e refinamento

Insights: Business Inteligence com acesso a informações em bases de dados, relatórios e aplicações empresariais.

Composites: Ferramentas e componentes para criação de  soluções comerciais

 

 

Sendo uma plataforma consolidada nestas diferentes áreas, com tantas funcionalidades OutOfTheBox, é clara a necessidade de customização e criação de novas, especificas a cada tipo de negócio e cliente. “Developer’s , Developer’s, Developer’s” , sim somos nós e estamos aqui.clip_image001

 

SharePoint 2010 e  tecnologias inerentes

 

Antes de tudo, é importante que um developer perceba e entenda minimamente a arquitectura da plataforma e alguns dos seus mecanismos inerentes: 

 

SharePoint é baseada na framework .NET, subdividindo-se em 2 tecnologias principais:

SharePoint Foundation: Tecnologia subjacente a todos os sites SharePoint, encontra-se  disponível gratuitamente. É o core aplicacional da plataforma te. Podemos  utilizar o SharePoint Foundation para criar sites

tipificados de colaboração, blogs , wikis

SharePoint Server: Tecnologia servidor. Inclui todas as funcionalidades do SharePoint Foundation além de funcionalidades e capacidades adicionais como Gestão de Conteúdos, B.I., Pesquisa empresarial.

 

 

image

 

 

A figura acima ilustra as diferentes tecnologias inerentes à plataforma. Essencialmente temos o sistema operativo, Windows Server 2008, o IIS , SqlServer, a .Net Framework e ASP.Net, o SharePoint Foundation e o SharePoint Server em si.

Embora o SharePoint 2010 funcione em Windows 7 ou Windows Vista , não é suportado pela Microsoft em ambientes de produção e para desenvolvimento recomendo avidamente a utilização de tecnologia server. O ambiente em que desenvolvemos deverá ser semelhante ao que  desenvolvemos, always !

 

 

Arquitectura

 

A infra-estrutura do SharePoint 2010 foi pensada de forma a respeitar uma arquitectura lógica de 3 camadas: Camada dos Dados(Database Layer), à Camada Aplicacional(Application Layer)à Camada de Apresentação(Presentation Layer).  Estes diferentes layers podem estar localizados numa só máquina (Standalone Server)

 

image

 

ou espalhados em diversas máquinas (Small, Medium, Large Farm)

 

 

image

 

Fisicamente esse conceito também é real, temos servidores físicos que espelham o mesmo conceito.

 

O esquema físico da farm SharePoint foi pensado de forma a ser escalado horizontalmente e verticalmente, caso exista necessidade mais capacidade a nível do User Interface ,

podem ser adicionados mais Servidores de Frontend (Web front-end), se existir necessidade de aumento da capacidade dos Serviços, podem ser adicionados mais Servidores Aplicacionais (Application Servers).

 

 

E finalmente se existir necessidade de mais capacidade a nível de base de dados, podem ser adicionados mais Servidores de Base de Dados (Database Server).

 

Quaisquer que sejam as necessidades, é permitido desenhar uma topologia que as complemente com uma flexibilidade extrema.

 

E como plataforma de desenvolvimento?

 

“Estás a desenvolver  em coisas já feitas” comentava uma pessoa amiga um dia destes.

 

É verdade, a framework do SharePoint é realmente muito completa mas não é suficiente para muitos dos casos e  pode ser estendida.

 

Da mesma forma que hoje, é vulgar falarmos em desenvolvimento em .NET (que by the way também é uma coisa já feita, clip_image001[8])  também é natural cada vez mais pensarmos além do que o core aplicacional e virarmos a nossa atenção para implementações corporativas de alto nível. E garanto-vos que o desafio é superior.

 

Com uma framework e  Object model extremamente ricos em métodos e funcionalidades é possível estender a plataforma a um nível quase ilimitado.

 

Em termos de desenvolvimentos foca-se 2 pontos cruciais: SoluçõesFeatures.

 

Uma Solução SharePoint  , não é mais do que um pacote  comprimido com extensão WSP, contendo componentes que caracterizam funcionalidades(Features) dentro da plataforma.

Um único pacote pode ter mais da uma funcionalidade. De um forma mais simples, acaba por ser o ficheiro de instalação ( vulgo Setup.exe ) de aplicações em SharePoint .

 

Uma farm de Sharepoint pode englobar inúmeros servidores, pelo que com esta tecnologia, podemos instalar uma solução numa máquina que pertença à farm e esta é propagada e

instalada em todos os servidores que pertencem a essa Farm. Cool, não?

 

Features, têm por objectivo reduzir a complexidade envolvida na  personalização de sites simples, inclusão e manutenção de novas funcionalidades.

 

Estão intrinsecamente ligadas ao core aplicacional e podem se activadas via interface gráfico ou command-line.

 

SharePoint e o Visual Studio 2010

 

Aquando a saída da versão 2007 da plataforma, a integração com a ferramenta de desenvolvimento Visual Studio era muito limitada.

 

Em meados de 2007,  as soluções e features eram criadas manualmente, com edição de ficheiros XML , não existindo qualquer ferramenta out of the box ou add-in no Visual Studio que pudesse facilitar esta tarefa.

Inúmeras equipas de desenvolvimento de SharePoint em todo o mundo,   tiveram que criar os seus próprios  automatismos e mecanismos de criação destas funcionalidades.

 

No decorrer deste processo,  foram lançadas algumas ferramentas e add-ins para o Visual Studio dos quais se destaca o WSPBuilder(http://wspbuilder.codeplex.com/)

 

Com esta nova versão do SharePoint 2010  e do Visual Studio 2010, a música é outra. clip_image001[8]

Os Projectos para SharePoint 2010  estão completamente integrados com o Visual Studio 2010, existindo diversos templates que podemos utilizar:

 

Nome Icon Descrição
Empty SharePoint Project

image

Projecto Vazio onde se pode adicionar novos items
Visual Web Part

image

Cria um nova webpart utilizando um visual designer
Sequential WorkFlow

image

Cria um novo workflow sequencial
State Machine WorkFlow

image

Cria um novo workfows de estado
Business Data Connectivity Model

image

Cria um novo “SharePoint Business Data Connectivity model”
Event Receiver

image

Cria um event receiver, que trata os eventos disparados pelo Sharepoint
List Definition

image

Cria uma definição de uma lista
Content Type

image

Cria um Content Type Customizado
Module

image

Cria um módulo de SharePoint que pode conter vários ficheiros
Site Definition

image

Cria um template de definição de um site
Import Reusable Wrokflow

image

Importa um workflow criado com o SharePoint Designer
Import SharePoint Solution Package

image

Cria uma nova solução baseada num pacote de solução existente
     

 

Cada um destes projectos permite a inclusão de vários items sendo que alguns dos templates são soluções vazias com pelo menos um item predefinido.

Passemos então a um caso prático: o objectivo deste que vos apresento passa por criar uma funcionalidade de registar os contactos dos actuais membros da Comunidade Portuguesa de SharePoint . Para tal vamos criar um tipo de conteúdo (Content Type) com alguns campos e criar uma lista baseada nesse tipo de conteúdo.

Apesar de ser um exemplo simples, acaba por demonstrar algumas  funcionalidades que a plataforma disponibiliza

 

 

 

1. Abrir o Visual Studio, no menu principal, seleccional  a opção File>New Project

1.1. Em Installed Templates, seleccionar a opção SharePoint>2010 e Empty SharePoint Project  

1.2  Digitar o nome do projecto, e a sua localização : neste caso o nome escolhido foi SPugPtMembersList e a localização do projecto irá ser c:\work\SPugPtMembersList

1.3  Seleccionar o botão OK

 

image

2. De seguida, surge o ecran abaixo, com informação com o  url do site SharePoint em que vamos trabalhar,

neste caso é http://vm2010/ pois é o site por omissão criado, nesta vm,  aquando a instalação do SharePoint .

 

Nesta versão do SharePoint existem 2 tipos de soluções que podem ser criadas: Sandbox e Farm solutions.

 

Sandbox solutions são soluções em que os processos de execução , correm em ambientes muito controlados com restrições variadas tendo em vista um enclausuramento aplicacional em toda a Farm de SharePoint.

Farm solutions , são soluções mais abrangentes, contemplando desde o inicio uma aplicação de funcioanalidades por toda a Farm

 

Neste exemplo vamos criar uma Farm Solution.

2.1  Seleccionar a opção “Deploy as a farm solution

2.2  Seleccionar o botão "OK

 

image

 

3. Temos então o projecto Visual Studio .

 

Comecemos por adicionar alguns items ao projecto, nomeadamente uma Feature para provisionar o nosso Content Type

 

3.1  Seleccionar o projecto com o botão direito do rato e seleccionar a opção Add>NewItem

3.2  Seleccionar o item “Content Type” e o digitar o nome “ContentTypes” para este item.

3.3  Seleccionar o botão “Add

 

image

4. Os content types são elementos com herança pelo que vamos seleccionar o content type mais simples de todos: Item

4.1  Seleccionar a opção “Item”

4.2  Seleccionar o botão “Finish

 

image

5. Neste momento , já temos a nossa Feature criada.

Como podem ter verificado por omissão o Visual Studio cria estes items com nomes e conteúdos com denotações automáticas.

 

Desta forma:

5.1  Editar na window “Solution Explorer” o nome da “Feature1” para “ContentTypes”

5.2  Editar o ficheiro Elements.xml com conteúdo mais contextualizado e lógico

 

image

 

5.3  Após edição do campos Name, Group,Description  e o nome da Feature temos:

 

image

 

Resta acrescentar alguns campos, de forma a caracterizar o nosso Content Type:

 

5.4  Inserir os seguintes campos , como 1ºs elementos do ficheiro Elements.xml

 

<Field ID="{FBAFB32B-D2FA-4BE6-BA7C-CAA3E9534545}" Name="MemberName" DisplayName="Name" Group="SpugPtMembers Columns" Type="Text" Required="TRUE" ShowInViewForms="TRUE" ShowInDisplayForm="TRUE" ShowInNewForm="TRUE" ></Field >

<Field ID="{4DBBB65D-A401-41E8-BA71-C200EEFBB7F3}" Name="MemberCompany" DisplayName="Company" Group="SpugPtMembers Columns" Type="Text" ShowInViewForms="TRUE" ShowInDisplayForm="TRUE" ShowInNewForm="TRUE" ></Field >

<Field ID="{706647BC-77EA-46E0-A4F3-CCD9BD291A85}" Name="MemberEmail" DisplayName="Email" Group="SpugPtMembers Columns" Type="Text" Required="TRUE" ShowInViewForms="TRUE" ShowInDisplayForm="TRUE" ShowInNewForm="TRUE" ></Field >

<Field ID="{B7F1842E-4862-43F9-8D4A-9D6C0B5A2BC4}" Name="MemberPhone" DisplayName="Phone" Group="SpugPtMembers Columns" Type="Text" ShowInViewForms="TRUE" ShowInDisplayForm="TRUE" ShowInNewForm="TRUE" ></Field >

e inserir as seguintes referências aos mesmos dentro do elemento <FieldsRefs>:

<FieldRef ID="{FBAFB32B-D2FA-4BE6-BA7C-CAA3E9534545}" Name="MemberName" />
<FieldRef ID="{4DBBB65D-A401-41E8-BA71-C200EEFBB7F3}"  Name="MemberCompany" />
<FieldRef ID="{706647BC-77EA-46E0-A4F3-CCD9BD291A85}" Name="MemberEmail" />
<FieldRef ID="{B7F1842E-4862-43F9-8D4A-9D6C0B5A2BC4}" Name="MemberPhone" />

 

Ficamos então com algo como :

 

image

6. Resta-nos ainda caracterizar a nossa feature .

Desta forma, seleccionar a feature “ContentTypes” , e com o botão do lado direito, seleccionar a opção “View Designer

Editar os campos Title e Description como mostra a figura abaixo.

Não esquecer de seleccionar o Scope da Feature  para Site

image

 

 

Neste momento temos a nossa Feature de Content Type , claramente definida, com conotações lógicas e campos inerentes.

 

7. Vamos de seguida criar uma list definition de forma a provisionar uma definição de uma lista SharePoint baseada neste Content Type criado.

 

Assim:

7.1  Seleccionar o projecto com o botão direito do rato e seleccionar a opção Add>NewItem

7.2  Seleccionar o item “List Definition from Content Type” e o digitar o nome “SpugPtMembersList” para este item.

7.3  Seleccionar o botão “Add

 

image

 

 

7.4  No ecran seguinte , digitar em “What is the display name…”  o seguinte texto “SpugPt Members List” 

7.5  Deseleccionar a opção “add a list instance ….”

7.6  Seleccionar o botão “Finish”

 

image

 

Mais uma vez , teremos que editar o contéudo deste novo ficheiro Elements.xml criado , mas desta vez só precisamos alterar o campo Description.

 

image

 

 

8. Finalmente , temos a solução completa pelo que só nos falta fazer a instalação no nosso SharePoint

 

Como? Fácil.

 

Primeiro executamos o Build da solução e de seguida o Deploy e a nossa solução fica instalada no SharePoint.

 

image

 

 

Como teste final, vamos criar a nossa lista e criar alguns items.

 

Para tal:

8.1  Aceder ao site SharePoint , via browser , neste exemplo “http://vm2010”

8.2  Seleccionar a opção Site Settings > More Options

 

image

 

 

8.3  Seleccionar a opção Lists> SpugPt Members List

8.4  Digitar SpugPtMembers na caixa de texto

8.5  Seleccionar o botão “Create

 

 

image

    

 

Temos a nossa lista criada , resta-nos adicionar items

 

8.6  Seleccionar a opção “Add new item”

 

 

image

et Voilá!

 

image

Conclusão

Embora tenha sido um exemplo muito simples, espero que tenha atingido o objectivo de como o desenvolvimento em SharePoint encontra-se extremamente facilitado comparativamente com as versões anteriores.

 

É uma plataforma extremamente poderosa como ferramenta corporativa e como plataforma de desenvolvimento.

 

Dentro deste tema existem imensos subtópicos, integrações e tipo de implementação e  neste momento é claro que este é um produto da Microsoft que irá evoluir e consolidar-se cada vez mais.

 

Resta-me fazer-vos um convite: todos os meses aos 2ª Sábados , a Comunidade Portuguesa de SharePoint apresenta 1 sessão e chalk talks com  membros activos na tecnologia onde podemos trocar ideias ,

e esclarercer dúvidas e acima de tudo trocar experiências.

 

Apareçam, e espero que tenha sido útil.

 

Aquele abraço com muitos Dispose à mistura

 

Rodrigo Pinto
SharePoint MVP, Specialist,Evangelist
SharePointPt Founder
Company:INDRA
@scoutmanpt

 

.

 
Posted em 4-May-11
5 Comentários  |  Trackback Url  |  Link para este post | Bookmark este post com:        
 

Links para este post

Comentários


Samuel Lima comentou em Saturday, 23-Jul-2011
Show de Bola esse Tutorial, legal mesmo, sou iniciante com o Share Point, gostaria de te pedir uma dica qual curso fazer para se aprofundar nesse mundo de Sharepoint?? Abraos.


Ricardo comentou em Wednesday, 28-Sep-2011
Qual a métrica que você aconselha usar para medir projetos em sharepoint 2010 ? Abraços Ricardo


Rodrigo Pinto comentou em Wednesday, 5-Oct-2011
Oi Ricardo, métrica em que sentido? Não percebi a pergunta


william ramalho da costa comentou em Monday, 6-Feb-2012
Bom, como estou vasculhando tudo sobre SharePoint com entusiasta devo dizer que gostei muito. Parabéns peço artigo. William Ramalho da costa.


Manuel Santos comentou em Tuesday, 6-Mar-2012
Fantástico Rodrigo! Simples e direto ao assunto. Manuel Santos

Nome:
URL:
Email:
Comentário: