Você está na página 1de 62

Sumrio

Edio 17 Nmero 17 Ano 04 2010 EDITORES Alexandre Tarifa Diego Nogare Emerson Facunte Fernanda Sallai Sergio Gonalves REVISO Fabrcio Lopes Sanchez Sara Barbosa EDITORAO E DIAGRAMAO Adriano Almeida Fabiano Rodrigues COLABORADORES Aline Maia Backer Rosa Bruno Velaz Marcel Medina Rodolfo Roim Rodrigo Romano Thiago Silva Wagner Amorim

04 :. Processo de Upgrade e grao no SharePoint 2010


Por:

Mi-

Aline Maia

11 :. Client Object Model


Por: Rodolfo Roim

21 :. Developer DashBoard
Por: Marcel Medina

28 :. Governana no SharePoint 2010


Por: Rodrigo Romano

Fale com Editor


muito importante para a equipe saber a sua opinio sobre a revista, caso tenha alguma critica, sugesto, ou elogio entre em contato. Caso tenha interesse em publicar um artigo na revista envie o ttulo e um resumo do tema em formato Word.
revista@codificando.net

34 :. List Definition e Content Types no SharePoint 2010


Por: Thiago Silva

42 :. BI no SharePoint 2010, uma evoluo para seu Portal


Por: Bruno Velaz

Produzido por:

48 :. SharePoint e plataforma Azure: solues de integrao


Por: Backer Rosa

www.codificando.net

56 :. Redes Sociais no SharePoint 2010


Por: Wagner Amorim

03:. Editorial

61:. .Close ( )

Edio 17 Nmero 17 Ano 04 2010

Editorial
Ol novamente a todos os leitores da revista Codificando .NET e-Magazine com prazer e alegria que abro o editorial desta 17 Edio. Apertem o cinto de segurana, pois, voc est prestes a viajar pelo fascinante mundo do SharePoint. Mas antes comearei o editorial fazendo dois comunicados importantes: Infelizmente por motivos pessoais, o Leandro Alves Santos precisar se desligar do time da revista. Quero agradec-lo pela colaborao e desejar boa sorte no seu caminho. Devido problemas de hospedagem, o endereo do site da revista mudou para: http://www.codificandomagazine.com.br/. Realizamos uma parceria entre as comunidades Codificando.net e Canal SharePoint. Agradeo principalmente ao Wagner Amorim que apoiou esse projeto e proporcionou aos leitores da Codificando .NET eMagazine, atravs de seu esforo em reunir autores de alto gabarito no que se diz respeito ao SharePoint, a possibilidade conhecer ainda mais essa tecnologia e esse mundo to envolvente e fascinante. Nesta edio teremos: Aline Maia apresenta de forma simples sobre o processo de migrao do SharePoint 2007 para o 2010. Rodrigo Roim explica sobre uma inovao na rea de desenvolvimento de aplicaes chamada Client Object Model. Marcel Medina demonstra como exibir os resultados de processamento de sua pgina graficamente atravs do Developer Dashboard. Rodrigo Romano aborda sobre o significado da governana e seu uso junto ao SharePoint. Thiago Silva mostra a utilizao de dois recursos para quando estamos arquitetando e planejando nossas aplicaes: os List Definition e Content Types. Bruno Velaz relata da necessidade do Business Intelligence e sua utilizao junto ao SharePoint. Backer Rosa demonstra a integrao entre a plataforma Azure e SharePoint. Diante de todo esse contedo de qualidade elaborado por profissionais renomados e conhecidos da comunidade s me resta agradecer a sua participao leitor e desejar uma excelente leitura! Fernanda Sallai revista@codificando.net
"O conhecimento o processo de acumular dados. A sabedoria reside na sua simplificao." (Martin H. Fischer)

EDITORIAL

e-magazine

Processo de Upgrade e Migrao no SharePoint 2010


Por: Aline Maia

No h como negar: o SharePoint 2010 est sensacional! A quarta edio da ferramenta (e plataforma de desenvolvimento) est mais madura e poderosa. Mantendo a mesma arquitetura bsica baseada em pginas geradas dinamicamente, a partir de parametrizao em bancos de dados de contedo porm com a camada de Servios Aplicacionais redesenhada e agora parte da verso Foundation, muitas novas funcionalidades esto disponveis para os usurios. E, se por um lado as mudanas tornam o SharePoint 2010 ainda mais atraente para usurios finais, podemos considerar que a onda de adoo iniciada pelo SharePoint 2007 nas organizaes s tende a crescer. Liderando o Quadrante Mgico nos relatrios de anlise do Gartner que posicionam a Microsoft como Leader desde o lanamento da verso 2007, a sofisticao atingida pelo Microsoft SharePoint 2010 contribui para que desenvolvedores e profissionais administradores de IT tenham um ambiente ainda mais atrativo para suas solues customizadas. Se com as mudanas de arquitetura iniciadas na verso 2007 o SharePoint passou a ser a ferramenta nmero um para a criao de portais de colaborao (com grande adoo pelo mercado brasileiro e mundial), na verso 2010 o produto atinge plena maturidade.

Mas uma nova verso nos leva ao seguinte questionamento: como as organizaes que j adotaram o SharePoint 2007 esto se preparando para migrar para SharePoint 2010? Um ambiente SharePoint 2007 estvel e em produo um bom candidato a migrao para SharePoint 2010? E para ns, profissionais da rea, fica ainda a pergunta: qual a complexidade tcnica de uma operao como esta? Apesar de ser possvel optar pelo upgrade in-place de ambientes (em que a nova verso instalada diretamente na farm que possui a verso 2007 e mais comum em cenrios de ambientes noproduo ou virtualizados, por no permitir revertermos a operao) nota-se que a estratgia mais utilizada a de migrao de dados. Ao optarmos por migrao de dados, uma nova farm SharePoint 2010 criada e configurada antes de receber os dados existentes, migrados atravs da restaurao de backups dos bancos de dados de contedo. Uma das muitas vantagens deste mtodo a preservao das condies da farm original e a possibilidade de se realizar diversas simulaes e testes dos procedimentos at a homologao e real migrao do ambiente. Neste artigo iremos discutir o

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

Processo de Upgrade e Migrao no SharePoint 2010

e-magazine

processo de migrao de dados, as fases desse processo e pontos de ateno no apenas do ponto de vista do administrador de IT, mas tambm do desenvolvedor. Por onde comear? Uma boa forma de iniciar a fase de planejamento da migrao executar o comando preupgradecheck ainda na farm 2007 para obter um relatrio preliminar com possveis fontes de problema e pontos de ateno que precisem ser trabalhados antes da efetiva migrao para SharePoint 2010. O comando preupgradecheck est disponvel na ferramenta ststadm a partir da verso SP2 (mas recomenda-se que seja utilizada a verso disponvel a partir do Cumulative Update de outubro de 2009) e a documentao detalhada para sua execuo pode ser encontrada em: http://technet.microsoft.com/en-us/ library/cc287628(office.14).aspx. Como a ferramenta no realiza nenhuma modificao na farm, podemos execut-la em ambiente produtivo sem receios e obter a lista de site definitions, site templates, features e language packs em uso, alm de identificar quaisquer modificaes nosuportadas (como alteraes no schema do banco de dados e arquivos web.config com erros). importante que seja feito o inventrio de todas as customizaes existentes, especialmente aquelas relacionadas a solues .wsp distribudas, controles, webparts, event handles, masterpages e quaisquer outros binrios que necessitaro instalao prvia tambm no novo ambiente. Para auxili-lo nesta tarefa, voc pode consultar o checklist disponvel em:

http://technet.microsoft.com/en-us/ library/cc287730(office.14).aspx . Projetos de migrao so ainda uma boa oportunidade de rever a necessidade de manter em produo dados e funcionalidades j obsoletos. importante prever, junto s reas usurias e analistas de negcio envolvidos no projeto (e eles DEVEM fazer parte da equipe!) quais sites e site collections podem ser arquivados ou removidos, alm de identificar sites com problemas de funcionamento e contendo itens rfos que possam ser apagados. Tambm possvel que algumas funcionalidades at ento no existentes no MOSS 2007 e que demandaram a criao de cdigo customizado (como tag clouding, webparts para exibio de vdeo, controles de calendrio e tantos outros exemplos) possam ser depreciadas aps a migrao. Preparando a Nova Farm Os passos para a preparao da nova farm podem ser encontrados com detalhes seguindo-se a documentao existente no Microsoft TechNet (http:// technet.microsoft.com/en-us/library/ cc287900(office.14).aspx), cabendo ressaltar a necessidade de finalizarmos os seguintes passos antes de proceder com a migrao: Refazer as configuraes gerais da farm os administradores do ambiente devero finalizar a configurao tais como na farm 2007, incluindo rever extenses de arquivos bloqueadas, configuraes de envio de e-mail, logging, bem como dos servios aplicacionais em uso (incluindo aqueles intro-

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

Processo de Upgrade e Migrao no SharePoint 2010

e-magazine

duzidos com o SharePoint 2010). essencial que um guia de instalao seja gerado com todos os passos detalhados, de forma que possa ser utilizado em cenrios de disaster recovery. Como desenvolvedor, voc deve fornecer rea de administrao e operao do ambiente todos os passos necessrios para aplicao das customizaes. Recriar as Web Applications recrie as web applicartions pr-existentes, sem deixar de configurar managed paths, alternate access mappings e certifique-se de adicionar como conta gerenciada a conta de acesso ao content database a ser migrado. Certifique-se de optar pelo mesmo mtodo de autenticao preliminarmente utilizado. Habilite ainda a opo self-service site creation, caso esta estivesse em uso tambm na farm anterior. Durante o processo de criao da web application, um novo banco de dados (vazio) ser criado. No necessrio preocupar-se com a nomenclatura utilizada para ele, pois iremos remov-lo e apag-lo antes de realizar a migrao dos dados existentes. Aps termos o novo ambiente instalado, configurado e com as web applications anteriores pr-criadas, podemos iniciar o processo de migrao. No necessrio criar site collections nas web applications recm-configuradas, mas podemos fazlo apenas para testar as configuraes aplicadas. Aps os testes de configurao, remova a associao do banco de dados de contedo criado com a web apllication. Estaremos prontos para iniciar os testes de migrao.

Iniciando a Migrao Com o backup full dos bancos de dados de contedo restaurados no novo servidor SQL, podemos testar mais uma vez a integridade e compatibilidade dos sites anteriores com o novo ambiente SharePoint 2010, dessa vez utilizando Powershell e o cmdlet Test-SPContentDatabase. Utilizando o SharePoint 2010 Management Shell, execute o seguinte comando:
Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>

No cenrio de testes de customizaes deste artigo, temos uma web application contendo os seguintes sites collections: / (raiz) Contm subsites utilizados para teste de migrao de customizaes de layout (masterpages modificadas, pginas unghosted, uso de language packs, site templates) /sites/contenttypes Para teste de content types. /sites/features Para teste de features e webparts distribudas com e sem o uso de WSP /sites/ListEvents Para teste de event handlers /sites/workflow Para teste de workflows Dica: Para testar webparts, contenttypes e outros tipos de cdigo customizados, adote a estratgia de criar antes da migrao uma ou mais site collection de testes (como no exemplo acima) contendo todos estes elementos, preferencialmente utilizando bancos de dados separados. Voc ter assim um ambiente bas-

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

Processo de Upgrade e Migrao no SharePoint 2010

e-magazine

tante interessante para testar o funcionamento do seu cdigo aps a migrao (e o feito de utiliz-lo no SharePoint 2010) Ao executar o comando TestSPContentDatabase no banco de dados de contedo deste cenrio, obtive uma lista de pontos de ateno, descritos, por exemplo, na figura 1:

banco de dados de contedo com a web application, executaremos o seguinte comando:


Mount-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>

(Obs: CurrentSiteCount indica, na verdade, a quantidade de site collections existentes na figura 2).

Figura 1 - Lista de pontos de ateno. Figura 2 - Quantidade de site existente.

Em que: Category Indicar o tipo de elemento no encontrado, tal como MissingWebPart, MissingSetupFile, etc. Error True ou False. UpgradeBlocking Caso o valor seja False, o upgrade do schema do banco de dados ser executado, ainda que o contedo contenha erros Message e Remedy so os campos que contero mais informaes para nos auxiliar no processo de identificao dos itens com problemas. Apesar dos erros apresentados durante o teste, optarei por prosseguir com a migrao do contedo, j que nenhuma das mensagens indica UpgradeBlocking = True. Em nosso caso, apenas as pginas que estiverem fazendo uso dos itens no encontrados no sero perfeitamente renderizados no browser. Para realizar, de fato, a associao do Diversos bancos de dados podem ser migrados simultaneamente atravs deste comando, bastando executar o comando Mount-SPContentDatabase em diferentes consoles Powershell. Para testes de identificao do tempo necessrio para a completa migrao de farms com mltiplas web applications, pode-se paralelizar a operao.

Codificando.net e-magazine
|

Nota: No possvel adicionar o mesmo banco de dados de contedo em mais de uma web application, em uma mesma farm (ainda que o banco de dados esteja renomeado). Cada site collection possui um GUID que adicionado ao banco de dados de configurao e deve ser nico. Apesar da operao ser concluda com sucesso, duplicar site collections causar problemas na exibio e funcionamento dos sites. Se voc necessita duplicar site collections e sites, utilize os comandos relacionados a backup/restore atravs do Central Administration, ststadm ou Powershell, j que estes gerem novos

www.codificando.net

Ago / Set - 2010

Processo de Upgrade e Migrao no SharePoint 2010

e-magazine

GUIDs para os sites/site collections durante o processo. Observem que no apenas um, mas DOIS relatrios com informaes sobre o processo so gerados (por padro, em /14/LOGS): Upgrade-<timestamp>.txt contm toda informao dos passos executados na migrao, incluindo erros e sucessos. Pode ser bastante extenso, conforme o tamanho dos bancos de dados migrados Upgrade-<timestamp>-error.txt contm apenas as informaes de erros durante o processo. Notem que algumas informaes importantes, classificadas como warning, sero tambm listadas no apenas no arquivo com as informaes completas, como no resumo, facilitando nosso processo de troubleshooting. Em meu exemplo, h arquivos de site theming que no foram encontrados no servidor, figura 3.

migrados, ou utilize o seguinte comando Powershell:


Upgrade-SPContentDatabase - id <GUID>

Em que o GUID o identificador do banco de dados. Uma forma de listar o GUID do content database :
Get-SPContentDatabase Identity <nome_do_banco>

Com o processo de vinculao concludo, sites cujo contedo customizado foi previamente distribudo para a nova farm tero suas pginas corretamente exibidas, mantendo o visual exibido na verso 2007 (figura 4):

Codificando.net e-magazine

Figura 4 - Exemplos de sites migrados para farm SP2010, mantendo visual anterior (incluindo masterpages no nativas e Figura 3 - arquivos de site theming no encontrados. posteriormente adicionadas ao site).

Aps a migrao, o schema do banco de dados est totalmente alterado para a nova verso (caso haja algum erro que impea a concluso completa, o banco de dados estar listado como pendente de concluso. Navegue via Central Administration ao Upgrade and Migration > Check Upgrade Status para retomar migrao de bancos de dados parcialmente

Notem que pginas unghosted, que foram alteradas via SharePoint Designer e/ou que tiveram suas masterpages modificadas tambm mantm o visual anterior. Para converter os sites para o template nativo do SharePoint 2010, basta acessar a opo Visual Upgrade a partir do menu de aes do site. Note que possvel testar o upgrade antes de aplic

www.codificando.net

Ago / Set - 2010

Processo de Upgrade e Migrao no SharePoint 2010

e-magazine

-lo em definitivo e a aplicao pode ser feita granularmente (site a site), ou de uma nica vez para toda a site collection. Observe, porm, que pginas unghosted mantero suas modificaes e ser necessrio utilizar a funo Reset to Template atravs do SharePoint Designer para aplicar o visual verso 2010. Para os sites que possuem pginas com controles ou componentes no encontrados, podemos receber mensagens de erro tais como a figura 5:

rio garantir que as configuraes dos servios aplicacionais (especialmente aqueles que dependam do contedo em questo, como o Search) esteja de acordo com o cenrio desenhado para a soluo. Recomenda-se que tantos testes de migrao sejam executados at que haja plena segurana de sua real execuo. Ainda assim, tenha um plano de rollback, que pode incluir a manuteno do uso da farm MOSS 2007 preservada por mais algum tempo at a total homologao da migrao. A lista a seguir um resumo de alguns KBs relacionados ao processo de migrao que podem ser consultados para auxlio no troubleshooting (e tambm para evitar problemas): 981495 - "You cannot upgrade from SharePoint 2007 to SharePoint 2010 on a server farm" 981487 - "Error message when you try to upgrade a server farm to SharePoint Foundation 2010 or to SharePoint Server 2010: 'This upgrade session has been stopped'" 980328 - "Troubleshooting resources for issues that you may encounter when you upgrade to SharePoint Server 2010 or to SharePoint Foundation 2010" 982575 - "The My Links link disappears after you upgrade SharePoint Server 2007 to SharePoint Server 2010" 982579 - "'User modifications to the SharePoint content database' error message when you upgrade a SharePoint Server 2007 content database to SharePoint Server 2010" 981233 - "Document conversions do
Ago / Set - 2010

Figura 5 - Mensagens de erro.

Utilize o correlation ID informado para localizar mais informaes sobre o componente no encontrado no log de tracing do SharePoint. Uma outra dica para identificar componentes no encontrados acessar a rea de Settings (_layouts/settings) para verificar por webparts/contentypes nas galerias destes sites. Distribua os componentes no encontrados para o novo ambiente e as pginas passaro a ser exibidas corretamente. Passos Ps-Migrao Aps a migrao dos content databases ser concluda com sucesso, ser necess-

Codificando.net e-magazine
|

www.codificando.net

Processo de Upgrade e Migrao no SharePoint 2010

e-magazine

not work after you perform an inplace upgrade to SharePoint Server 2010" 982249 - "You cannot start a SharePoint 2007 out-of-box workflow in SharePoint 2010" Verifique sempre a lista de KBs mais recentes em http://support.microsoft.com e muito sucesso em seus projetos de migrao! Abraos e boa sorte!

Aline Maia
Trabalha na Microsoft como Premier Field Engineer, com foco em atendimentos de casos SharePoint. Com experincia em desenvolvimento e suporte a sistemas, ps-graduada em Engenharia de Software, foi recentemente aprovada nas provas beta de SharePoint 2010 (Configurao e Administrao), alm de ser Microsoft Certified Technical Specialist (MCTS) em WSS 3.0 e MOSS 2007 (infra e dev) e Microsoft Certified Solution Developer (MCSD), com provas que incluem desde VB 6.0 s diversas verses do .NET Framework. Acredita que um bom desenvolvedor deve estar preocupado com os aspectos relacionados administrao do ambiente SharePoint, e vice-versa. Blog: http://alinefmrk.spaces.live.com (no muito atualizado, mas ainda ativo) e Twitter: @alinefmaia.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

10

e-magazine

Client Object Model

Por: Rodolfo Roim

Introduo As inovaes que o SharePoint 2010 trouxe no ltimo dia 12 de Maio, lanamento oficial da verso da plataforma, so inmeras. Tantas que torna difcil a tarefa de cit-las em um nico artigo ou apresentao. Somente uma edio de uma revista para conseguir agrupar as principais inovaes veja que eu no disse todas, mas as principais juntas. As mudanas no SharePoint 2010 comeam pelo posicionamento do produto, deixando de ser apenas um produto para ser considerado uma plataforma de desenvolvimento de aplicaes de negcios. E como tal, o SharePoint 2010 inovou nas possiblidade de acessar as informaes armazenadas em suas bibliotecas e listas. Dentre essas inovaes, uma delas a implementao do RESTful onde o produto expe para leitura apenas interfaces para sua aplicao consumir informaes das listas e bibliotecas do SharePoint. Outra inovao na rea do desenvolvimento de aplicaes o Client Object Model assunto desse artigo - uma composio de DLLs que torna possvel desenvolver aplicaes client side com uma experincia

muito prxima do desenvolvimento de aplicaes para SharePoint 2010 server side. Com o Client Object Model o desenvolvedor poder desenvolver aplicaes utilizando Silverlight, .NET e ECMAScript. Veremos exemplos de cada um dos tipos ao longo do artigo. Mas antes de comearmos por uma das tecnologias de desenvolvimento, necessrio que saibamos o bsico do Client OM. Client Object Model

Codificando.net e-magazine

Cenrio atual Suponha que voc tenha uma demanda de desenvolvimento de uma aplicao, que ir rodar no lado do cliente (client side), e essa aplicao dever consumir e eventualmente inserir informaes do seu portal SharePoint 2007. A nica opo de desenvolvimento que existe a utilizao dos WebServices do SharePoint 2007, localizados no diretrio _vti_bin de cada site. Imagine agora que, analisando os webservices j disponveis, voc no encontra a funcionalidade que precisa para reAgo / Set - 2010

www.codificando.net

11

Client Object Model

e-magazine

solver o seu problema. Cavando um pouco mais fundo, voc descobre que a funcionalidade existe, mas no est exposta em nenhum WebService out of the box. Sua sada criar novos Webservices utilizando as APIs do SharePoint e expor essas funcionalidades. Ou seja: voc precisa reinventar a roda, pois tais funcionalidades j existem na API do SharePoint. Suponha ainda que voc precise escrever uma interface web dessa aplicao utilizando alguma linguagem de Script (JScript, JavaScript). Voc sabe que consumir um WebServices de uma aplicao JavaScript no hoje uma tarefa fcil. Muito bem, antes de voc pedir demisso ou entrar em vias de fato com seu gerente, leia esse artigo at o final, porque cenrios como o descrito acima no so raros de acontecer e a situao pode se repetir a qualquer novo projeto. Faamos uma pausa aqui para recapitular a maneira que costumvamos trabalhar esse desenvolvimento no SharePoint 2007 e como esse mecanismo todo funcionava. O diagrama da figura 1 ilustra o funcionamento de uma chamada feita por uma aplicao Cliente, desenvolvida para interagir com um Portal construdo no SharePoint 2007. Veja que a Aplicao Cliente tinha que instanciar um WebServices para retornar ou incluir informaes no SharePoint. Esse, por sua vez fazia acesso s APIs do SharePoint e ento acessava as informaes do SQL Server, repositrio de dados do produto.

Figura 1 - Modelo de acesso aos dados armazenados no SharePoint 2007.

SharePoint 2010 O Client Object Model uma camada de abstrao para retornar resultados reconhecidos como objetos do SharePoint. Vamos melhorar o conceito... Com o Cliente OM voc consegue desenvolver uma aplicao client utilizado uma API (no mais um WebServices) com toda a riqueza de funcionalidades que a API do SharePoint oferece. Essa abordagem garante, inclusive, consistncia para o desenvolvedor, que pode desenvolver Aplicaes Server da mesma forma que as aplicaes clientes.

Codificando.net e-magazine
|

Certo, mas como isso tudo funciona? Voltemos ao cenrio anterior - antes de voc pedir demisso - onde voc havia sido designado para desenvolver uma aplicao cliente que, a princpio, consuma informaes de um site construdo no SharePoint 2010. O que antes era limitado aos WebServices, agora voc tem um novo servio chamado Client.svc, que nada mais um servio WCF que reside no SharePoint 2010 e o Client OM um proxy para esse servio WCF. Sendo assim, quando voc reAgo / Set - 2010

www.codificando.net

12

Client Object Model

e-magazine

quer alguma informao do servidor em sua aplicao desenvolvida com o Client OM, voc est mandando essa requisio em formato XML para o Client.svc, que ir enviar para o servidor processar. Uma vez processado, o Client.svc empacota o resultado em um XML e devolve para o Client OM no formato JSON (JavaScript Object Notation). A figura 2 ilustra bem esse trfego de informaes entre sua aplicao cliente e o servidor.

Como foi dito acima, voc pode desenvolver, utilizando o Client OM, de trs diferentes maneiras: com .NET, Silverlight ou ECMAScript. A tabela da figura 3 mostra que a diferena de sintaxe entre as trs maneiras de programao muito sutil, enaltecendo a consistncia no desenvolvimento e facilitando, assim, a vida do profissional.

Figura 3- Diferena entre as chamadas do modelo de objeto do SharePoint 2010.

Figura 2 - Fluxo de informaes entre a Aplicao Cliente e o SharePoint 2010 atravs do Client OM.

Evidentemente que voc, como um desenvolvedor, no precisa saber o que est acontecendo por trs de tudo que sua aplicao est realizando, entretanto, sabendo do fluxo da informao e da maneira que suas requisies so processadas, voc consegue ter uma idia mais ntida da eficincia do Client OM. Voc pode estar se perguntando, antes de qualquer coisa, o que eu consigo fazer com o Cliente OM? Um exemplo: voc consegue ter acesso Site Collection, Sites, Listas, Itens das Listas, Views, List Schemas, Arquivos, Pastas, WebParts, Segurana, Content Types, Site Templates e operaes do Site Collection. Bem completo, no?!

Percebam que nos quadros que utilizam o Client OM podemos notar a presena de uma nova classe, chamada ClientContext. Esse o cerne do desenvolvimento quando o assunto Client OM e vamos ver com mais detalhes.

Codificando.net e-magazine

ClientContext ClientContext a classe utilizada na programao de aplicaes cliente onde passam todas as requisies da sua aplicao. atravs do ClientContext que voc define qual o site que est sendo acessado por sua aplicao, quando voc passa a URL como atributo na construo do objeto. O exemplo de cdigo da listagem 1, escrito em uma aplicao Console, demonstra como utilizar o objeto clienteContext e a partir dessa chamada, como retornar os ttulos de todas as listas de um determinado site.
Ago / Set - 2010

www.codificando.net

13

Client Object Model

e-magazine

using (ClientConext clientContext = new ClientContext("http://intranet.contoso.com")) { //Retorna o Site Collection Site SiteCollection = clientContext.Site; clientConext.Load(SiteCollection); clientConext.ExecuteQuery(); //Retorna o top level site Web site = clientConext.Web; clientConext.Load(site); clientConext.ExecuteQuery(); //Retorna apenas os ttulos das listas clientConext.Load(clientConext.Web, x => x.Lists.Include(l => l.Title).Where(l => l.Title != null)); clientConext.ExecuteQuery(); foreach(List list in site.Lists) Console.WriteLine(lists.Title); }
Listagem 1 - Classe ClientContext.

cas, recomendado que voc use a classe ClientContext dentro da instruo using. Referncias A primeira coisa que voc precisa fazer para testar o cdigo acima adicionar duas referncias ao seu projeto: Microsoft.SharePoint.Client.dll e Microsoft.SharePoint.Client.Runtime.dll. A primeira DLL a que contm as classes que voc ir utilizar para desenvolver seu cdigo e a segunda a que contm toda a lgica de transporte da informao entre a aplicao cliente e o servidor SharePoint. Autenticao Voc poder notar no cdigo includo no Apndice 1 - mais completo - que nenhuma credencial foi fornecida em nenhum momento. Isso porque medida que o objeto ClientContext estabelece uma conexo com o servidor, ele prprio gerencia a autenticao no portal, utilizando as credenciais do usurio local. Entretanto, quando voc estiver desenvolvendo uma aplicao com o Client OM utilizando .NET (Windows Forms, Console App, WPF) voc poder modificar o esquema de autenticao utilizando a propriedade ClientContext.AuthenticationMode e alternar entre autenticao annima ou atravs de forms -based authentication. Dependendo do modo de autenticao especificado, o Client OM chama o webservices de autenticao do SharePoint ([...]/_ vti_bin / Authentication.asmx), em seguida, obtm e define um cookie que ele usa para futuras chamadas.

Uma observao que deve ser feita no cdigo da listagem 1 - outra inovao no SharePoint 2010 - a utilizao da expresso lambda que estamos passando como parmetro para o objeto ClientContext. Essa expresso garante que o Client OM ir buscar toda a coleo de listas do site do contexto, no entanto retornar apenas os ttulos das listas, ou seja, o retorno um objeto muito mais leve. Alm disso, a utilizao da expresso lambda permite que voc, desenvolvedor, consiga buscar exatamente a informao que voc precisa. Nota: A classe ClientContext deriva da classe ClientRuntimeConext, que, por sua vez, herda a interface IDisposable. Sendo assim, a ttulo de melhores prti-

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

14

Client Object Model

e-magazine

A mudana no esquema de autenticao s pode ser alterada nas aplicaes .NET. Quando voc estiver escrevendo uma aplicao com ECMAScript, o Client OM ir autenticar usando a credencial que estiver executando a pgina, no momento da chamada. Diferenas entre .NET/ Silverlight & ECMAScript J que entramos no assunto, vamos falar um pouco mais sobre as principais diferenas entre o desenvolvimento de aplicaes clientes utilizando .NET / Silverlight e ECMAScript.
<AbreParnteses> Para que ainda no est familiarizado, o termo ECMAScript foi um termo cunhado pela ECMA International para definir o padro da linguagem de script utilizada nas aplicaes Web, para desenvolvimento no lado Cliente. O padro foi criado para que as empresas responsveis pelas duas principais linguagens de script (JavaScript e JScript) utilizassem esse padro e as aplicaes pudesse rodar nos diferentes navegadores. Se voc tiver maior interesse pela histria da criao do ECMAScript, poder encontrar a pgina pesquisada nas referncias desse artigo. </FechaParnteses>

Os dois modelos de objetos usam diferentes tipos de valores de dados. O modelo de objeto do ECMAScript no tem um equivalente para todos os tipo de valores de dados do .NET Framework. ECMAScript se refere StringCollection como string[]. Por outro lado, o ECMAScript tem outros valores que o .NET Framework no tem, como por exemplo, o NaN (not a number), ou o infinito positivo/negativo; O modelo de objeto do ECMAScript permite Forms Authentication, mas voc no pode especificar o mecanismo de autenticao para se conectar ao servidor. Quando voc est criando um item e adicionando-o para uma coleo existente, novas atualizaes no podem ser realizadas naquela coleo enquanto a consulta est sendo executada. Esta questo aplica-se quando estiver adicionando um item a uma coleo, caso contrrio vrios clientes simultaneamente pode ler e gravar os itens existentes dentro de uma coleo; Como parte da segurana em geral, voc no pode usar o modelo de objeto ECMAScript em uma pgina para trabalhar com os dados do Microsoft SharePoint 2010 Fundation a menos que a pgina contenha um form digest control, por exemplo <SharePoint:FormDigest runat="server"/>; Voc, geralmente no pode compartilhar variveis atravs de escopos,
Ago / Set - 2010

Codificando.net e-magazine

A assinatura do mtodo poder ser diferente, assim como o construtor do ClientContext (ECMASCript: ClientContext URLRelativaDoServidor). No ECMAScript esse construtor leva uma URL relativa do servidor, mas na verso com o cdigo gerenciado desse construtor leva ou uma URL completa ou uma Uri.

www.codificando.net

15

Client Object Model

e-magazine

ento, por esse motivo, voc no pode usar padres de cdigos comuns, tais como try/catch/finally; Algumas comparaes com case-in sensitive no funcionam da mesma maneira no cliente como funcionam no servidor. Algumas comparaes no lado do servidor usam o WebSite local e para fazer a comparao, mas o cliente pode usar somente a cultura invariante para evitar round-trips frequentes. SharePoint Foundation 2010 no suporta comparaes case-in sensitive se o servidor estiver usando um Web Site local.

branda, uma vez que a similaridade com a API do servidor muito grande. Referncias 1. ECMA International http://en.wikipedia.org/wiki/ Ecma_International 2. ECMAScript http://en.wikipedia.org/wiki/ ECMAScript 3. Code Snippets: Using the SharePoint Client Object Model with External Lists http://msdn.microsoft.com/en-us/library/ ff464372.aspx 4. Understanding the using statement in C# http://www.codeproject.com/KB/cs/ tinguusingstatement.aspx 5. JSON - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/JSON 6. Introduction to the Client OM in SharePoint 2010 http://www.slideshare.net/benrobb/ introduction-to-the-client-om-insharepoint-2010 7. Developing with Data Technologies in SharePoint 2010 (Level 100) https://msevents.microsoft.com/CUI/ WebCastEventDetails.aspx?culture=enUS&EventID=1032442298&CountryCode= US 8. Managed Client Object Model http://msdn.microsoft.com/en-us/library/ ee537247.aspx
Ago / Set - 2010

Consideraes finais O Client Object Model mais uma inovao, dentro do pilar Composite, que o SharePoint 2010 trouxe. Essa nova abstrao tem por objetivo facilitar o desenvolvimento de aplicaes cliente que necessitam interagir com os dados armazenados no SharePoint 2010. Aplicaes que antes demandavam o consumo dos WebServices do SharePoint 2007 ou ainda, que demandavam a criao de novos WebServices para estender funcionalidades j existentes na API do SharePoint 2007, agora, na verso 2010 do produto, podem ser atendidas escrevendo suas aplicaes utilizando o Client Object Model. Do ponto de vista da experincia do desenvolvedor, a meta do time de engenharia do SharePoint 2010 era: consistncia, ou seja, que o desenvolvedor pudesse ter uma curva de aprendizado muito

Codificando.net e-magazine
|

www.codificando.net

16

Client Object Model

e-magazine

9. Client Object Model | SharePoint 2010 Developer Training Course http://channel9.msdn.com/learn/courses/ SharePoint2010Developer/ ClientObjectModel/ 10. Using the SharePoint Foundation 2010 Managed Client Object Model with the Open XML SDK 2.0 http://msdn.microsoft.com/en-us/library/ ee956524(office.14).aspx 11. SharePoint Connections - SharePoint 2010 & Client Object Model http:// www.sharepointproconnections.com/ article/sharepoint/SharePoint-2010-sClient-Object-Model.aspx 12. Explicao do termo vias de fato: http://br.answers.yahoo.com/question/ index?qid=20090719203242AAwQnTE Voc tambm pode acessar meu virtual bookmark em http:// www.delicious.com/rodolforoim e procurar pela tag: Codificando_eMagazine e encontre todos os artigos consultados como referncia para esse artigo. Apndices Apndice 1 Cdigo de uma Console Application.
static void Main(string[] args) { try { //get the context using (ClientContext clientContext = new ClientContext("http:// intranet.contoso.com"))

{ //get site collection Site siteCollection = clientContext.Site; try { Console.WriteLine("Trying to read the Site Collection URL"); Console.WriteLine (siteCollection.Url); } catch (PropertyOrFieldNotInitializedException ex) { Console.WriteLine("Failed to read the Site Collection URL"); Console.WriteLine(ex.Message); Console.WriteLine(); }

//Fill the Url Property Console.WriteLine("Requesting the Site Collection URL from the server..."); clientContext.Load(siteCollection); clientContext.ExecuteQuery(); //Try to read again Console.WriteLine("Slite Collection Url: " + siteCollection.Url); Console.WriteLine(); //Get the Site Web site = clientContext.Web; //try to read the title try { Console.WriteLine("Trying to read the site title"); Console.WriteLine(site.Title); } catch (PropertyOrFieldNotInitializedException x) {

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

17

Client Object Model

e-magazine

Console.WriteLine("Failed to read site title"); Console.WriteLine(x.Message); Console.WriteLine(); } } //Fill the Title Property Console.WriteLine("Requesting the Site Collection Title from the server..."); clientContext.Load(site); clientContext.ExecuteQuery(); //Try to read Title now Console.WriteLine("Site Title: " + site.Title); //Get the list title Console.WriteLine(); Console.WriteLine("Lists in this site"); clientContext.Load(site.Lists); clientContext.ExecuteQuery(); //Include titles clientContext.Load (clientContext.Web, x => x.Lists.Include(l => l.Title).Where(l => l.Title != null)); clientContext.ExecuteQuery(); foreach (List list in site.Lists) { Console.WriteLine(list.Title); } Console.WriteLine(); Console.WriteLine(); Console.ReadKey(); } } catch (InvalidQueryExpressionException x) { Console.WriteLine(x);

} catch (ClientRequestException x) { Console.WriteLine(x); }

Apndice 2 Cdigo de uma aplicao Silverlight


namespace Microsoft.SDK.SharePointServices.Samples { public partial class MainPage : UserControl { Web oWebsite; ListCollection collList; IEnumerable<List> listInfo; public MainPage() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { ClientContext clientContext = ClientContext.Current; oWebsite = clientContext.Web; ListCollection collList = oWebsite.Lists; clientContext.Load(oWebsite, website=>website.Title); listInfo = clientContext.LoadQuery( collList.Include(list=>list.Title, list=>list.Fields.Include (field=>field.Title).Where (field=>field.Required == true && field.Hidden != true))); clientContext.ExecuteQueryAsync (onQuerySucceeded, onQueryFailed); }

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

18

Client Object Model

e-magazine

private void onQuerySucceeded(object sender, ClientRequestSucceededEventArgs args) { UpdateUIMethod updateUI = DisplayInfo; this.Dispatcher.BeginInvoke (updateUI); } private void onQueryFailed(object sender, ClientRequestFailedEventArgs args) { MessageBox.Show = "Request failed. " + args.Message + "\n" + args.StackTrace; } private void DisplayInfo() { MyOutput.Text = "Title: " + oWebsite.Title; collList = oWebsite.Lists; foreach (List oList in listInfo) { MyOutput.Text += "\n\tList: " + oList.Title; FieldCollection collField = oList.Fields; foreach (Field oField in collField) { MyOutput.Text += "\n\t\tField: " + oField.Title; } } } private delegate void UpdateUIMethod (); } }

Apndice 3 Exemplo de cdigo de uma aplicao ECMAScript


<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead " runat="server"> <SharePoint:ScriptLink runat=server LoadAfterUI=true Localizable=false Name=sp.js /> <script src=jquery-1.4.1.min.js type="text/javascript"></script> <script type="text/javascript"> var ClientContext; var site; function GetSiteButton_Click() { this.ClientContext = new SP.ClientContext.get_current(); this.site = this.ClientContext.get_web(); this.ClientContext.load(this.site, Title); this.ClientContext.executeQueryAsync( Function.createDelegate(this, this.LoadSiteSuccessCallback), Function.createDelegate(this, this.LoadSiteFailureCallback) ); } function LoadSiteSuccessCallback (sender, args) { $(#SiteTitle).html(this.site.get_title()); } function LoadSiteFailureCallback (sender, args) { alert(args.get_message()); } </script> </asp:Content> <asp:Content ID="Main" ContentPlaceHolderID="PlacehoderMain" runat="server">

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

19

Client Object Model

e-magazine

<input typebutton value=Get Site Title onclick=GetSiteButton_Click() /> <br /> <div id=SiteTitle></div> </asp:Content>

Rodolfo Roim
Sou formado em Cincia da Computao pela Universidade de Marlia. Cursei o mestrado em Engenharia de Software na Universidade Estadual de Campinas (UNICAMP) e sou ps-graduado em Administrao de Empresas pela Fundao Getlio Vargas EAESP. Trabalhei com SharePoint por 8 anos, desde a primeira verso do produto chamado Digital Dashboard. Atualmente gerencio o programa MVP no Brasil e mantenho os estudos em SharePoint recorrentes. Blog: http://rodolforoim.wordpress.com. Twitter: @rodolforoim.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

20

e-magazine

Developer DashBoard

Por: Marcel Medina

Durante o desenvolvimento de solues, ns desenvolvedores temos a preocupao de entregar solues funcionais, que estejam de acordo com os requisitos solicitados. Apesar de me preocupar com o desempenho de minhas aplicaes, na maioria das solues comerciais que tenho trabalhado o desempenho no um fator crtico. Dependendo do cenrio e se isso for um requisito? Como obter informaes de diagnstico em suas solues no SharePoint 2010? Justamente agora temos o Developer Dashboard que traz um painel de informaes de Tracing. Nesse artigo vou mostrar como habilitar o Developer Dashboard, como utilizar as APIs para exibir suas informaes de Tracing e como exibir os resultados de processamento de sua pgina graficamente.
Figura 1 SharePoint 2010 Dashboard Developer.

OBS.: Repare que a borda do Dashboard de cor verde, pois no contm asserts e eventos crticos. A mudana de cor ser comparada mais adiante. Analisando esse painel, podemos perceber que o lado esquerdo apresenta os eventos executados durante o processamento da pgina (http handler events) e seus respectivos tempos de execuo, enquanto que no lado direito temos um mix contendo informaes abrangentes e tambm detalhes do mergulho da requisio, como por exemplo as queries enviadas ao banco de dados. O interessante que os links revelam o Callstack da execuo e mais detalhes, de acordo com a figura 2:

Codificando.net e-magazine

Apresentao Gostaria de apresentar o Developer Dashboard, conforme podemos ver na Figura 1:

www.codificando.net

Ago / Set - 2010

21

Developer DashBoard

e-magazine

A figura 3 nos exibe tal cone:

Figura 3 cone do Developer Dashboard

OBS: importante ressaltar que se o Dashboard foi habilitado utilizando OnDemand, somente Administradores do Site Collection e Owners tero acesso. Membros e Visitantes no visualizaro o cone. Em todas as ativaes do Developer Dashboard utilizarei o nvel de exibio OnDemand, que no meu ponto de vista o ideal.
Figura 2 Detalhes de uma query do banco de dados.

Cdigo .Net Podemos criar uma Feature que ative ou desative o Dashboard, ao invs de utilizar scripts. Dessa forma a ativao ou desativao pode ser feita diretamente pelo Site Collection Features. Crie um projeto no Visual Studio 2010 do tipo Empty SharePoint Project chamado DeveloperDashboard. Escolha a opo para trabalharmos com uma Farm Solution. Seu projeto inicial deve estar semelhante Figura 4:

Durante a anlise da execuo de cdigo, os detalhes da Figura 2 so bem relevantes para a identificao de qualquer problema. Ativao e desativao Por padro o Developer Dashboard no vem habilitado e para exib-lo temos 3 possibilidades. Utilizando: Cdigo .Net STSADM PowerShell

Codificando.net e-magazine

Tambm temos 3 nveis de exibio do Dashboard: On, Off e OnDemand. Onde: No nvel de exibio "On" o painel sempre ser exibido; Em "Off" ele desligado; Em "OnDemand" um cone adicionado pgina para exibio do painel apenas quando solicitado.

Figura 4 Projeto Inicial da Feature DeveloperDashboard.

www.codificando.net

Ago / Set - 2010

22

Developer DashBoard

e-magazine

Adicione um Event Receiver Feature conforme exibido na Figura 5:

contentService.DeveloperDashboardSettings. DisplayLevel = SPDeveloperDashboardLevel.Off; contentService.DeveloperDashboardSettings. Unprovision(); }

No final seu projeto deve ficar parecido com o da figura 6:

Figura 5 Adio de Event Receiver.

A classe DeveloperDashboardEventReceiver ser criada automaticamente, com os mtodos comentados. Adicione o seguinte cdigo para ativao e desativao da feature: Code Snippet
public override void FeatureActivated (SPFeatureReceiverProperties properties) { SPWebService contentService = SPWebService.ContentService; contentService.DeveloperDashboardSetting s.DisplayLevel = SPDeveloperDashboardLevel.OnDemand; contentService.DeveloperDashboardSetting s.Provision(); } public override void FeatureDeactivating (SPFeatureReceiverProperties properties) { SPWebService contentService = SPWebService.ContentService;

Figura 6 Projeto Final da Feature DeveloperDashboard.

Compile e faa o deploy diretamente pelo Visual Studio 2010 em ambientes de desenvolvimento. Para ambientes de produo faa o deploy via STSADM conforme figura 7:

Codificando.net e-magazine

Figura 7 Deploy da feature em Produo.

No final nossa feature deve estar habilitada conforme a figura 8:

www.codificando.net

Ago / Set - 2010

23

Developer DashBoard

e-magazine

de scripts. Para habilitar o Developer Dashboard:


$dash = [Microsoft.SharePoint.Administration.SPWebSe rvice]::ContentService $settings = $dash.DeveloperDashboardSettings $settings.DisplayLevel = [Microsoft.SharePoint.Administration.SPDevelo perDashboardLevel]::OnDemand $settings.Update()

Figura 8 Deploy da Feature Developer Dashboard.

Faa o download da soluo: http://cid-19bf2880e221bb9.office.live.com/ self.aspx/.Public/DeveloperDashboard.zip STSADM Abra o command e digite o seguinte trecho para habilitar o Developer Dashboard: stsadm o setproperty pn developerdashboard pv OnDemand Para desabilitar: stsadm o setproperty pn developerdashboard pv Off OBS: A opo pv case-sensitive. Resultado (figura 9):

Resultado (figura 10):

Figura 10 Execuo de script de ativao via PowerShell.

Para desabilitar:
$dash = [Microsoft.SharePoint.Administration.SPWebSe rvice]::ContentService $settings = $dash.DeveloperDashboardSettings $settings.DisplayLevel = [Microsoft.SharePoint.Administration.SPDevelo perDashboardLevel]::Off $settings.Update()

Codificando.net e-magazine

Resultado (figura 11):

Figura 9 Execuo dos comandos via STSADM.

Figura 11 Execuo de script de desativao via PowerShell.

PowerShell Uma outra possibilidade que temos a utilizao do PowerShell para a execuo

Medindo performance e adicionando mensagens via Tracing Uma vez que o Dashboard est ativo, pode-

www.codificando.net

Ago / Set - 2010

24

Developer DashBoard

e-magazine

mos prosseguir com a adio de mensagens no Tracing do SharePoint 2010. Conforme j dito essa uma excelente maneira de voc medir a performance de seu cdigo e adicionar mensagens customizadas para monitoramento. Para medirmos o tempo do trecho de cdigo que temos a inteno de monitorar, devemos utilizar a classe SPMonitoredScope. Essa informao ser disponibilizada no lado esquerdo do Dashboard. Para adicionarmos mensagens de log, warnings ou assert messages utilizaremos a classe SPCriticalTraceCounter. Essa informao ser disponibilizada no lado direito do Dashboard, e um link estar a disposio para visualizarmos os detalhes da mensagem. OBS: O Callstack que se encontra nos detalhes da mensagem pode adicionar alguns Kb na pgina. Portanto fique atento ao crescimento da quantidade de mensagens customizadas que voc tiver, elas vo aumentar o tamanho (Kb) de sua pgina caso o Dashboard esteja ativado. Adicione um novo projeto do tipo Visual Web Part chamado Tracing. A soluo deve ficar parecida com a figura 12:

No arquivo TracingWebPartUserControl.ascx.cs adicione o cdigo listagem 1: Code Snippet


using System; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Microsoft.SharePoint.Utilities; namespace Tracing.TracingWebPart { public partial class TracingWebPartUserControl : UserControl { protected void Page_Load(object sender, EventArgs e) { // Utilizando classe para monitoramento do tempo de execuo using (SPMonitoredScope sc = new SPMonitoredScope("LoadMeter")) { for (uint i = 0; i < 10; i++) { // Adicionando mensagens customizadas SPCriticalTraceCounter.AddDataToScope(i, "Loop For", 15, string.Format("Mensagem monitorada - {0}", i.ToString())); } } } } }
Listagem 1 - Classe TracingWebPartUserControl.

Codificando.net e-magazine

Figura 12 - Projeto da Web Part de Tracing.

Esse cdigo contm as duas classes SPMonitoredScope e SPCriticalTraceCounter conforme j comentamos. Vale ressaltar que o traceLevel (3 parmetro do mtodo Add-

www.codificando.net

Ago / Set - 2010

25

Developer DashBoard

e-magazine

DataToScope) pode ser: 1 Critical 4 - Exception (Watson) 6 Assert 8 Warning 10 Unexpected 15 - Monitorable

Clique sobre uma das mensagens e observe que podemos ver os detalhes do Callstack e da mensagem (figura 15):

Realize a adio da Web Part (1), salve (2) e logo aps visualize o Dashboard (3) conforme figura 13:

Figura 15 Mensagem customizada exibida nos detalhes

Figura 13 Adio da Web Part de Tracing.

Visualizao grfica Podemos incrementar o Dashboard com um grfico de visualizao chamado Developer Dashboard Visualizer criado por Jaap Vossers que consiste em um UserControl que faz utilizao do JQuery para exibio dos eixos eventos x tempos de execuo (lado esquerdo do Dashboard). Esse projeto est disponvel no Codeplex pelo link: http://devdashvis.codeplex.com/ Baixe o pacote wsp e instale-o utilizando o STSADM, conforme a figura 16:

Veja o Dashboard, seu enquadramento no est mais da cor verde conforme Figura 1. Temos a cor vermelha que mostra que temos asserts e eventos crticos ocorrendo (no nosso caso as mensagens criadas):

Codificando.net e-magazine

Figura 14 Dashboard com Time Scope e Mensagens adicionadas.

www.codificando.net

Ago / Set - 2010

26

Developer DashBoard

e-magazine

Marcel Medina Especialista em desenvolvimento .NET / SharePoint, atua como Consultor Microsoft nas tecnologias citadas. Tambm Microsoft Trainer. Atualmente vive em Auckland, Nova Zelndia e gosta de esportes radicais, msica e games.Como desenvolvedor Snior coordenou e participou de vrios projetos grandes de desenvolvimento, incluindo os jogos Pan-americanos Rio 2007 nas plataformas web, windows e mobile. Possui 10 anos de experincia no mercado de TI e as seguintes certificaes: MCP, MCDBA, MCAD, MCSD, MCTS (incluindo WSS 3.0, MOSS 2007 e SharePoint 2010, Application Development), MCPD (Enterprise Application Developer e SharePoint Developer 2010) e MCT. Contato: marcel.net@sharepoint4developers.net Blogs:
http://www.sharepoint4developers.net http://www.canalsharepoint.com.br/marcelmedina
Figura 17 Visualizao Grfica

Figura 16 Ativando o Developer Dashboard Visualizer

Os http handler events so exibidos imediatamente acima do dashboard:

Codificando.net e-magazine

Concluso Nesse artigo vimos como habilitar o Developer Dashboard do SharePoint 2010, vimos que informaes de diagnstico e mensagens de tracing so exibidas no output da pgina ao browser que fez o request. Tais informaes podem ajudar na clarificao de erros ou resultados indesejados durante o processamento de sua soluo no SharePoint 2010. Espero que esse artigo seja til.

www.codificando.net

Ago / Set - 2010

27

e-magazine

Governana no SharePoint 2010

Por: Rodrigo Romano

Introduo Este artigo abordar um assunto muito importante e na maioria dos casos deixado de lado quando o assunto SharePoint - a "Governana". A Governana to essencial quanto qualquer item em um projeto, e, em muitos casos (ou maioria deles), fator crtico para o sucesso. Para falar de governana, o primeiro passo seria explicar qual o seu significado. Governana o conjunto de funes, regras, diretivas, responsabilidades e processos que so utilizados para gerenciar e/ou controlar como a cooperao entre as divises de negcios e as equipes de TI se relacionam a fim de cumprir com suas metas corporativas. E governana com SharePoint? Como funciona?

Governana no SharePoint Primeiro precisamos salientar que cada corporao tem suas necessidades especficas. Isso pode variar, principalmente, de acordo com o tamanho das organizaes. Desta forma podemos ter um nvel maior ou menor de controle o que s vezes pode levar a uma burocratizao de processos e eventuais atrasos se a corporao no estiver muito bem alinhada. Para a correta implementao de governana no SharePoint 2010, a boa comunicao entre os stakeholders fundamental. Ao designar uma comisso de governana, devemos reunir os itens abaixo: Participantes executivos: os principais executivos devem definir as metas gerais da comisso de governana, conceder-lhe autoridade e avaliar periodicamente o xito das prticas e diretivas implementadas. Participantes financeiros: os diretores financeiros devem assegurar que as regras e os processos de governana ajudem a aumentar o retorno sobre o investimento da em-

Codificando.net e-magazine

Figura 1 - Estrutura da governana.

www.codificando.net

Ago / Set - 2010

28

Governana no SharePoint 2010

e-magazine

presa nos produtos e tecnologias do SharePoint. Lderes de TI: os lderes de TI devem ajudar a desenvolver as ofertas de servio e determinar o que deve ser feito para desincumbir suas responsabilidades com xito (por exemplo, prover segurana e garantir confiabilidade) enquanto do suporte aos recursos de que as equipes de negcios necessitam. Lderes de diviso de negcios: os lderes de negcios representam as equipes que fazem o trabalho principal da empresa e geram os requisitos funcionais e arquiteturais de implantao do SharePoint Server 2010. Eles devem colaborar com os arquitetos para determinar os padres de arquitetura de informaes e taxonomia organizacional da empresa. Alm disso, h a necessidade de que colaborem com a criao dos contratos de nvel de servio e de outras diretivas de suporte. Arquitetos da informao ou taxonomistas: os membros desses grupos possuem ampla experincia no planejamento e design de sistemas de informaes e taxonomias. Com base na anlise das necessidades de informaes dos pblicos-alvo, eles desenvolvem planos que do suporte aos objetivos organizacionais e definem a arquitetura e navegao de sites. Responsvel pela conformidade: a governana envolve a certeza de

que a empresa est dentro dos requisitos regulatrios e legais, e de que ela gerencia seu conhecimento corporativo. Caso a sua empresa possua funes responsveis por supervisionar tais questes, inclua representantes dessas disciplinas na comisso de governana. Lderes de desenvolvimento: os lderes na organizao de desenvolvimento de software devem ajudar a determinar quais ferramentas de personalizao devem ser permitidas, como verificar a segurana do cdigo e outras prticas recomendadas relacionadas ao cdigo. Profissionais de informaes: os membros da sua organizao que realizam um trabalho dirio para ajudar a garantir que a arquitetura das informaes e os servios do SharePoint Server 2010 atendero s suas necessidades. Treinadores: os especialistas em instruo devem ser responsveis pelo desenvolvimento de um plano de treinamento e conduzir todo o treinamento e educao apropriados.

Codificando.net e-magazine

Aps termos os papis definidos e distribudos, ou seja, com a comisso de governana montada, devemos relacionar alguns conceitos tcnicos do SharePoint com os elementos disponveis na organizao. Antes de qualquer coisa, precisamos entender e estabelecer os conceitos para uma instalao de SharePoint bem sucedida.
Ago / Set - 2010

www.codificando.net

29

Governana no SharePoint 2010

e-magazine

Arquitetura da Informao Arquitetura da Informao a arte e a cincia de estruturar e organizar ambientes de informao para ajudar as pessoas a satisfazerem suas necessidades de informao de forma efetiva (Toub, 2000). Mas o que isso quer dizer? Significa que devemos dispor as informaes de forma que fiquem acessveis para o usurio, questes como navegabilidade, organizao e clareza de forma que o usurio atinja os seus objetivos de forma rpida, eficiente e agradvel. Relacionado SharePoint, uma avaliao detalhada da arquitetura da informao em uma empresa ajuda a identificar as ineficincias, como as seguintes: O uso inconsistente de metadados, o que pode dificultar a pesquisa e a comparao de contedo e dados relacionados. Um armazenamento de contedo criado e gerenciado de forma inadequada, o que pode gerar vrias verses de documentos, sem nenhum meio de identificar a verso original. Um armazenamento de dados precariamente catalogados e gerenciados, fazendo com que tomadores de decises localizem e confiem em dados equivocados. Uma navegao de portal mal projetada ou informaes apresentadas de forma inadequada, dificultando a localizao de sites e informaes importantes.

Servios de TI que hospedam o SharePoint Server O SharePoint Server 2010 inclui muitos recursos novos que devem ser tratados por um plano de governana eficiente. Entre esses, esto: Uma nova arquitetura de aplicativo de servios, incorporada no Microsoft SharePoint Foundation 2010, que substitui o modelo SSP. Melhorias no backup e restaurao. Multitenancy, que cria um genuno ambiente de hospedagem e viabiliza o compartilhamento dos recursos de servio entre clientes (locatrios) ao mesmo tempo que particiona os dados com base nas inscries no site. Contas gerenciadas que automatizam as mudanas de senhas. O Windows PowerShell, a nova interface de linha de comando e linguagem de script, foi projetado especificamente para administradores de sistema.

Codificando.net e-magazine

Se voc no tiver um plano de governana, o crescimento rpido e descontrolado de servidores Web, gerenciados individualmente, que executam o SharePoint Server pode ter resultados imprevisveis, como: Servidores isolados hospedando um grupo mal organizado de sites que no possuem ndice de pesquisa, navegao ou esquema de segurana em comum. Se voc deseja dar su-

www.codificando.net

Ago / Set - 2010

30

Governana no SharePoint 2010

e-magazine

porte criao de sites pessoais, precisa de um plano que inclua a disposio de contedo e o arquivamento de sites. Servidores hospedando aplicativos que no so seguros, o que pode comprometer a integridade do contedo. Solicitaes de suporte tcnico para servidores locais que esto executando o SharePoint Server sem o conhecimento da equipe de suporte. Atividades essenciais, como conformidade normativa, que talvez sejam administradas de modo inconsistente entre servidores. Atividades regulares de manuteno, como backup e restaurao de dados e instalao de atualizaes de produto, que talvez no sejam executadas devido ao treinamento inadequado ou inconsistncia na configurao dos servidores. Alteraes nas propriedades do site que levantam dvidas com relao propriedade do contedo ou que provocam o bloqueio de sites.

Com todos os recursos e facilidades que o SharePoint fornece, uma de suas maiores caractersticas pode se tornar exatamente um dos maiores viles se no tratado / gerenciado de forma correta: a Personalizao. Por exemplo, recursos como formulrios, Business Inteligence, Fluxos de Trabalho, ECM (Enterprise Content Management Gerenciamento de Contedo) so altamente customizveis e por isso se tornam focos de ateno quando falamos de governana. (Para mais informaes, consulte o WhitePaper Diretiva de personalizao de Produtos e Tecnologias do SharePoint (http://go.microsoft.com/fwlink/? linkid=92311&clcid=0x416)). Nota: o ambiente de desenvolvimento o muito crtico e como existem muitos recursos customizveis e recursos que podem permitir acesso diretamente ao hardware e outros componentes essenciais, devemos ter uma ateno especial. Devemos definir, por exemplo, se o uso do SharePoint Designer 2010 ser permitido. Se for, devemos definir, tambm, o que poder ser acessado e por quem. Este um ponto de ateno pensar o que efetivamente vamos ganhar ou perder com esse recurso. J atuei em algumas empresas onde este recurso estava desativado para todos os usurios e com isso comprometia diretamente os prazos durante uma entrega, at porque tudo o que era permitido era somente as funcionalidades nativas. Nota: uma gesto correta aquela que consegue englobar a maior parte dos recursos sem fazer com que a essncia da

Codificando.net e-magazine

medida que o uso do SharePoint Server 2010 aumentar na empresa, o departamento de TI dever implementar um conjunto de servios de hospedagem bem controlado que torne o SharePoint Server 2010 disponvel e que administre o seu uso e configurao. (Microsoft)

www.codificando.net

Ago / Set - 2010

31

Governana no SharePoint 2010

e-magazine

ferramenta seja perdida por um excesso de controle. Normalmente excessos acontecem por falta de conhecimento do time ou da equipe responsvel por tomada de decises. Outro ponto muito importante, quando se trata de desenvolvimento para SharePoint, so as boas prticas de desenvolvimento. (Para saber mais sobre boas prticas utilizando o SharePoint, consulte: http://technet.microsoft.com/en-us/ office/sharepointserver/bb736746.aspx). A prpria Microsoft disponibiliza ferramentas para checagem do cdigo desenvolvido para saber se os recursos esto sendo utilizados de forma correta e a correta liberao dos mesmos esto sendo efetuadas. (Umas destas ferramentas o SPDisposeChecker http://code.msdn.microsoft.com/ SPDisposeCheck). Assim como o desenvolvimento, os testes do que foi desenvolvido igualmente importante. Devemos pensar em ambientes de desenvolvimento, homologao, produo, de forma a permitir uma bateria de testes e fazer com que a soluo seja segura e confivel. Alm disso, existem outros recursos que devem entrar no plano de governana: Marca (Branding) Um recurso cada vez mais falado atualmente, um conjunto formal de diretivas de identidade visual deve ser criada para fazer com que todos os sites utilizem consistentemente imagens, fontes, temas e outros elementos de design.

Treinamento Por mais fcil que o SharePoint seja para alguns usurios, para outros pode ser uma tarefa realmente desafiadora fazer a administrao correta dos sites do SharePoint. Alm disso, algumas diretivas de governana podem exigir uma explicao adicional. Lembrando que um portal de colaborao tende a ser um amigo dirio e somente com o treinamento necessrio na ferramenta o usurio se sentir plenamente confiante a utilizar e explorar os recursos de forma que melhor lhe atenda e satisfaa suas necessidades. Permissionamento O SharePoint, como todos j sabem, uma ferramenta que visa a produtividade e cada vez mais se estabelece/ganha mercado por ser mais que uma ferramenta, e sim um framework baseado em produtividade e voltado s solues aderentes aos negcios. O SharePoint possui um modelo muito bom e intuitivo de gerenciamento de permisses e nveis de acesso. Com isso, podemos definir as permisses alinhadas cultura organizacional. Para isso, precisamos ter definido quais papis/funes devem ser centralizados de forma que o controle do ambiente seja mantido. Concluso Analisando os pontos apresentados neste artigo, percebe-se a tendncia do mercado atual de utilizar cada vez mais a plataforma software mais servios (SAAS). Quando se trata de um produto to extenso

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

32

Governana no SharePoint 2010

e-magazine

quanto o SharePoint 2010, a governana se torna um item cada vez mais essencial. Devemos seguir este artigo como base e explorar os diversos pilares da ferramenta analisando suas dependncias e recursos de forma a gerenciar corretamente o ambiente e fornecer um suporte adequado plataforma. Referncias Microsoft. (s.d.). Viso geral sobre a governana (SharePoint Server 2010). Acesso em 27 de 06 de 2010, disponvel em Microsoft Technet: http://technet.microsoft.com/pt-br/ library/cc263356.aspx Toub, S. (2000). Evaluating Information Architecture. http://technet.microsoft.com/pt-br/ library/cc263031.aspx http://technet.microsoft.com/pt-br/ library/cc263356.aspx

Rodrigo A. Romano Moderador dos fruns Technet BR voltados ao SharePoint, membro ativo da comunidade MSDN e colunista da maior comunidade de SharePoint do Brasil (CanalSharePoint). Atua em diversos projetos pelo Brasil em empresas de pequeno, mdio e grande porte, bem como a disseminao do conhecimento, sendo instrutor em programas como o Microsoft Students 2 Business em parceria com os Microsoft Innovation Centers. Utiliza as tecnologias Microsoft, em especial o SharePoint. Seguindo as melhores prticas recomendadas, atua desde a instalao at o desenvolvimento e customizao de solues. Twitter: @Rodrigo_Romano.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

33

e-magazine

List Definition e Content Types no SharePoint 2010


Por: Thiago Silva

Viso Geral As tecnologias SharePoint, tanto a verso gratuita, que acompanha as licenas de Windows Server (SharePoint Foundation 2010) como a verso licenciada parte (Microsoft SharePoint Server 2010), vem ganhando destaque cada vez maior no mercado de Tecnologia da Informao nos ltimos anos. Isso, graas a boa adoo da sua verso anterior, o Windows SharePoint Services (WSS) 3.0 e o Microsoft Office SharePoint Server (MOSS) 2007. Com lanamento recente da nova verso do produto (SharePoint 2010), percebemos, logo de cara, uma forte adoo da nova plataforma. Foram feitas inmeras melhorias, desde performance at recursos atuais que o mercado exige, inclusive, com grande foco s Redes Sociais. Obviamente que direcionado para o lado corporativo. Este artigo traz uma definio de como podemos utilizar melhor o potencial que o SharePoint nos proporciona. Vou abordar dois recursos que devem ser utilizados quando estivermos Arquitetando e Planejando nossas aplicaes baseado no SharePoint. So eles: List Definition e Content Types.

Content Types e List Definition Um Tipo De Contedo (Content Type )


uma coleo reutilizvel de metadados

(colunas) para uma categoria de itens ou documentos em uma biblioteca de documentos ou lista do SharePoint 2010. Tipos de contedo permitem que voc gerencie as configuraes para uma categoria de informaes de maneira centralizada e reutilizvel. Pense no seguinte: Voc possui uma lista do SharePoint com o nome Chamados. Nesta lista, tm -se trs tipos de Chamados. Nvel I, Nvel II e Nvel III. Cada um destes tipos possui um conjunto de informaes compartilhadas (por exemplo, Descrio do Chamado) e algumas informaes especficas de cada tipo (por exemplo, Assigned To e/ou Abrir chamado com fabricante?). Ento, podemos criar trs Tipos De Contedo para esta lista, onde compartilhamos as informaes gerais e adicionais a cada tipo, a sua definio especfica. Atrelado isso, criaremos um List Definition que ir conter estes trs Tipos de Contedo. Assim, teremos disponvel no site um modelo de lista que j contempla estes Tipos de Contedo.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

34

List Definition e Content Types no SharePoint 2010

e-magazine

Vamos ver como isso funciona na prtica: Nota: No final do documento, esto os screenshots do resultado dos passos que iremos realizar a seguir. Requisitos: Microsoft SharePoint 2010; Visual Studio 2010; SQL Server 2008; Windows 7 (ambiente de testes) ou Windows Server 2008;

localhost/). Para o trust level, selecione Deploy as a farm solution e, em seguida, clique em Next (figura 2).

Crie um projeto SharePoint List Definition 1. Inicie o Visual Studio 2010, clique em File, aponte para New, e ento clique em Project. 2. Na janela de dilogo New Project, na seo Installed Templates, clique em Visual C#, clique em SharePoint e, em seguida, clique em 2010. 3. Clique em List Definition. Na caixa Name, digite Chamados e, em seguida, clique em OK.

Figura 2 - Wizard para especificar nvel de segurana e site para depurao.

5. Na tela seguinte, devemos dar o Display Name e selecionar qual Tipo de List Definition o nosso novo List Definition ir herdar suas caractersticas. Neste caso, iremos selecionar Custom List, e em seguida, clique em Finish (figura 3).

Codificando.net e-magazine

Figura 3 - Wizard para definir nome e tipo da lista que iremos criar. Figura 1 - Template de Novo Projeto.

4. No SharePoint Customization Wizard, digite o site local que voc deseja usar para este exemplo (como http://

Nota: Deixe marcada a caixa de seleo para adicionar uma instncia de lista baseada no nosso List Definition ao seu site, assim que

www.codificando.net

Ago / Set - 2010

35

List Definition e Content Types no SharePoint 2010

e-magazine

a feature for ativada. Ou seja, ao ativar a Feature, ser criada uma lista automaticamente no site. 6. No Solution Explorer, expanda ListInstance1 e abra o arquivo Elements.xml (figura 4).

Nota: Estas so as configuraes da lista (instance) que ser criada ao ativar a Feature. Perceba, por exemplo, que j podemos especificar qual ser a url de acesso a lista (figura 5).

Figura 5 - Solution Explorer mostrando o arquivo Elements do ListDefinition.

Figura 4 - Solution Explorer mostrando o arquivo Elements do ListInstance.

7. Dentro do elemento do ListInstance mude o Title para Chamados e mude o TemplateType para 10002 conforme listagem 1.
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http:// schemas.microsoft.com/sharepoint/"> <ListInstance Title="Chamados" OnQuickLaunch="TRUE" TemplateType="10002" Url="Lists/Chamados-ListInstance1" Description="My List Instance"> </ListInstance> </Elements>
Listagem 1 - Elemento do ListInstance.

8. No Solution Explorer, abra o Elements.xml. 9. Dentro do elemento ListTemplate, mude o Type para 10002 e adicione o atributo DisallowContentTypes="FALSE", como listagem 2:

Codificando.net e-magazine
|

<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http:// schemas.microsoft.com/sharepoint/"> <!-- Do not change the value of the Name attribute below. If it does not match the folder name of the List Definition project item, an error will occur when the project is run. --> <ListTemplate Name="ListDefinition1" Type="10002" DisallowContentTypes="FALSE" BaseType="0" OnQuickLaunch="TRUE" SecurityBits="11"

www.codificando.net

Ago / Set - 2010

36

List Definition e Content Types no SharePoint 2010

e-magazine

Sequence="410" DisplayName="Chamados - ListDefinition" Description="My List Definition" Image="/_layouts/images/itgen.png"/> </Elements>


Listagem 2 - Elemento ListTemplate.

<FieldRef ID="{cb55bba1-81a9-47b6-8e6c6a7da1d25234}" /> <FieldRef ID="{aa4a82dd-5b32-4507-98744e1c7bca3456}" /> </FieldRefs> </ContentType> <ContentType ID="0x010089E3E6DB8C9B4B3FBB980447E313C E97" Name="Chamado Item Nvel III" Group="Meus Content Types" Description="Chamado item content type Nvel III." Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b8630177e6ddd247}" /> <!--Campo padro do SharePoint (Title)--> <FieldRef ID="{cb55bba1-81a9-47b6-8e6c6a7da1d25234}" /> <FieldRef ID="{aa4a82dd-5b32-4507-98744e1c7bca3456}" /> <FieldRef ID="{EAFE7594-266D-4865-9A1699A4BAAA2171}" /> </FieldRefs> </ContentType>
Listagem 3 - Arquivo xml.

10. Insira o XML (listagem 3) no topo do Elements no arquivo Elements.xml. Este XML descreve o Content Type do Item do Chamado que a lista ir armazenar.
<ContentType ID="0x010089E3E6DB8C9B4B3FBB980447E313 CE99" Name="Chamado Item Nvel I" Group="Meus Content Types" Description="Chamado item content type Nvel I." Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b8630177e6ddd247}" /> <!--Campo padro do SharePoint (Title)--> <FieldRef ID="{cb55bba1-81a9-47b6-8e6c6a7da1d25234}" /> </FieldRefs> </ContentType> <ContentType ID="0x010089E3E6DB8C9B4B3FBB980447E313 CE98" Name="Chamado Item Nvel II" Group="Meus Content Types" Description="Chamado item content type Nvel II." Version="0"> <FieldRefs> <FieldRef ID="{fa564e0f-0c70-4ab9-b8630177e6ddd247}" /> <!--Campo padro do SharePoint (Title)-->

Codificando.net e-magazine
|

11.Agora, insira o seguinte XML acima deste da listagem 3. Este XML (listagem 4) contm os campos (colunas) que o Content usar.

www.codificando.net

Ago / Set - 2010

37

List Definition e Content Types no SharePoint 2010

e-magazine

<Field Type="Note" DisplayName="Descrio do Chamado" Required="FALSE" NumLines="6" RichText="FALSE" Sortable="FALSE" ID="{cb55bba1-81a9-47b6-8e6c6a7da1d25234}" StaticName="ChamadoDescription" Name="ChamadoDescription" Group="Minhas Colunas" /> <Field Type="Text" DisplayName="Atribudo a" Required="FALSE" MaxLength="255" ID="{aa4a82dd-5b32-4507-98744e1c7bca3456}" StaticName="ChamadoAssignedTo" Name="ChamadoAssignedTo" Group="Minhas Colunas" /> <Field ID="{EAFE7594-266D-4865-9A1699A4BAAA2171}" Name="AbrirChamado" DisplayName="Abrir chamado com fabricante?" Type="Choice" Required="FALSE" Format="Dropdown" FillInChoice="FALSE" Group="Minhas Colunas"> <Default>Sim</Default> <CHOICES> <CHOICE>Sim</CHOICE> <CHOICE>No</CHOICE> </CHOICES> </Field>
Listagem 4 - Arquivo xml.

12.No Solution Explorer, abra o Schema.xml conforme figura 6.

Figura 6 - Solution Explorer mostrando o arquivo Schema do ListInstance.

13.Adicione o atributo EnableContentTypes="TRUE" para o elemento da Lista dentro do arquivo Schema.xml.

14.Insira o seguinte XML (listagem 5) dentro do elemento ContentTypes no schema.xml. Este XML descreve os tipos de contedo que a lista ir armazenar.
<ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313C E99" /> <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313C E98" /> <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313C E97" />
Listagem 5 - Arquivo xml.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

38

List Definition e Content Types no SharePoint 2010

e-magazine

15.Dever ficar conforme listagem 6, o elemento ContentTypes:


<ContentTypes> <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313CE99" /> <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313CE98" /> <ContentTypeRef ID="0x010089E3E6DB8C9B4B3FBB980447E313CE97" /> </ContentTypes>

Name="ChamadoAssignedTo" Group="Minhas Colunas" /> <Field Type="Choice" DisplayName="Abrir chamado com fabricante?" Required="FALSE" ID="{EAFE7594-266D-4865-9A1699A4BAAA2171}" Name="AbrirChamado" Format="Dropdown" FillInChoice="FALSE" Group="Minhas Colunas"> <Default>Sim</Default> <CHOICES> <CHOICE>Sim</CHOICE> <CHOICE>No</CHOICE> </CHOICES> </Field> </Fields>
Listagem 7 - Arquivo xml.

Listagem 6 - Arquivo xml.

16.Insira o XML (listagem 7) dentro do elemento Fields. Este XML descreve os campos (colunas) que a lista ir armazenar. Estes campos esto diretamente relacionados aos ContentType que adicionamos anteriormente. O elemento Fields dever ficar como listagem 7:
<Fields> <Field Type="Note" DisplayName="Descrio do Chamado" Required="FALSE" NumLines="6" RichText="FALSE" Sortable="FALSE" ID="{cb55bba1-81a9-47b6-8e6c6a7da1d25234}" StaticName="ChamadoDescription" Name="ChamadoDescription" Group="Minhas Colunas" />

17.No menu, cliquem em Build, e em seguida, clique em Deploy Chamados (figura 7).

Codificando.net e-magazine

<Field Type="Text" DisplayName="Atribudo a" Required="FALSE" MaxLength="255" ID="{aa4a82dd-5b32-4507-98744e1c7bca3456}" StaticName="ChamadoAssignedTo"


Figura 7 - Efetuando Deploy da Solution.

www.codificando.net

Ago / Set - 2010

39

List Definition e Content Types no SharePoint 2010

e-magazine

ScreenShots Template da lista (figura 8):

Nvel II:

Figura 11: Segundo Tipo de Contedo

Figura 8 - Template da lista que acabamos de criar, ao criar uma nova lista no SharePoint.

Nvel III:

Tipos de Contedo da Lista:

Codificando.net e-magazine

Figura 12: Terceiro Tipo de Contedo

Figura 9: Tipos de Contedo que a lista possui

List Settings Content Types e Columns:

Nvel I:

Figura 10: Primeiro Tipo de Contedo

Figura 13 - Tipos de Contedo e Colunas adicionadas a nossa lista.

www.codificando.net

Ago / Set - 2010

40

List Definition e Content Types no SharePoint 2010

e-magazine

Site Columns

At a prxima! Grande Abrao! Referncias http://msdn.microsoft.com/en-us/library/ ms472236.aspx - Introduction to Content Types http://msdn.microsoft.com/en-us/library/ ms415091.aspx - List Element (List) http://msdn.microsoft.com/en-us/library/ ms460922.aspx List Definition (Schema.xml) Files http://msdn.microsoft.com/en-us/library/ aa543822.aspx - Content Type IDs http://msdn.microsoft.com/en-us/library/ aa544268.aspx - Content Type Element (Content Type) http://msdn.microsoft.com/en-us/library/ ms463449.aspx - Content Type Definitions

Figura 14: Colunas customizadas do Site.

Nota: Estas colunas ficam disponveis para que sejam adicionadas a outras listas do site. Content Types

Figura 15: Tipos de Contedo do Site.

Nota: Estes Content Types ficam disponveis para que sejam adicionados a outras listas do site. Concluso Neste artigo criamos um List Definition que possui trs Content Types (que podem ser adicionados a outras listas sem problemas). Com isso, conseguimos planejar e arquitetar melhor nossa implantao de uma aplicao baseado no SharePoint 2010 Server, criando componentes reutilizveis e padronizados. Seguindo este modelo conseguimos ainda automatizar processos de Deploy, criando listas padronizadas e vinculadas a features. Espero que o contedo deste artigo tenha sido to til para vocs como pra mim!

Thiago Silva
Bacharel em Cincias da Computao e colunista da maior Comunidade de SharePoint no Brasil (CanalSharePoint), consultor de Tecnologia da Informao a 6 anos, focado principalmente em tecnologias Microsoft, com experincia em algumas tecnologias de outros fabricantes como Symantec, CA, RIM e outros. Nos ltimos dois anos vem se especializando nas Tecnologias SharePoint e .Net. Blog: http://thiagottss.spaces.live.com/blog.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

41

e-magazine

BI no SharePoint 2010, uma evoluo para seu Portal

Por: Bruno Velaz

Antes de mais nada importante responder uma pergunta que muitos fizeram-nos nos eventos TechShare, que realizamos durante este ano. - O que BI (Business Intelligence)? Como ele hoje representado no mercado x tecnologias SharePoint. Vamos partir deste ponto para que todos possamos entender sobre o que estou falando antes sair escrevendo siglas, tcnicas, ferramentas e etc. O grande desafio de todas as empresas tomar decises e, convenhamos, voc j tomou alguma deciso sem nenhuma informao? Resposta: claro que no. Este o comeo de tudo. Agora imagine a ampliao deste cenrio? Uma empresa com 20 funcionrios, 4 setores (RH, Projetos, Financeiro e Comercial) que fatura mais de R$ 120.000,00 (cento e vinte mil reais) por ano. Observando algumas fontes como SEBRAE, fiquei espantado em receber a informao de que atualmente a maioria das empresas que tem mais de 2 anos de existncia no mercado, j se enquadram

neste cenrio. Desta necessidade surgiu ento o conceito de Business Intelligence. Os sistemas de BI atuais tm como caractersticas:

Extrair e integrar dados de mltiplas fontes; Fazer uso da experincia; Analisar dados contextualizados; Trabalhar com hipteses; Procurar relaes de causa e efeito; Transformar os registros obtidos em informao til para o conhecimento empresarial;

Codificando.net e-magazine
|

De forma resumida temos: Negcio + Informao + Tecnologia. Agora vem outra pergunta: Onde todas estas informaes so apresentadas?. Acho que j sabem a resposta, certo? Numa interface grfica que fica de forma centralizada, onde todos possam acessar em seu Portal. Se estiver questionando: Mas, por que Portal?. Hoje por causa do internet, colaborao, web 2.0 e todas as ferramentas ficam centralizadas e uma nica pala-

www.codificando.net

Ago / Set - 2010

42

BI no SharePoint 2010, uma evoluo para seu Portal

e-magazine

vra, Portal, um local onde todos os colaboradores possam acessar seus sistemas, notcias e contedos da sua empresa. E porque no um portal de indicadores para facilitar tomada de decises? Veja a Figura 1, e entenda a idia de um portal.

A Figura 2 apresenta de forma esquemtica esta idia.

Figura 2 Portal e BI no SharePoint 2010.

Figura 1 - Portal.

O principal motivo de escrever sobre BI (Business Intelligence) quebrar o "tabu" de que somente as grandes empresas podem ter BI implantado e, irei explicar, como podemos fazer isto. Agora vamos falar de SharePoint 2010? Quando falamos de BI no SharePoint estamos falando de um dos 6 itens da plataforma, SharePoint Insights. SharePoint Insights foca em necessidade de entregar e compartilhar informaes, e transformar os dados, ou seja, informaes para ajudar a direcionar o seu negcio. Veja a figura 3.

Codificando.net e-magazine

Hoje em dia muito difcil para uma empresa conseguir sobreviver sem alguma ferramenta de BI. Elas necessitam mais do que nunca de um sistema de suporte deciso eficaz e relevante, que tenha condies de gerir uma unidade de negcio de forma continuada para quase todos os nveis ou reas da empresa. Por isso, para alguns setores como telecomunicaes, bancos, seguros, cartes de crdito ou outro tipo de negcio que envolva um volume muito grande de informao, o uso destas solues em BI torna-se cada vez mais essencial para sua sobrevivncia no mercado.

www.codificando.net

Ago / Set - 2010

43

BI no SharePoint 2010, uma evoluo para seu Portal

e-magazine

Note que a Figura 5, na arquitetura do SharePoint 2007 temos o SSP (Shared Service Provider) onde existem os servios interligados a ele como: Search, Excel Services, User Profiles, BDC. Ainda temos o Project Server, InfoPath, WSS e "aplicaes clientes" para demonstrar a arquitetura do SharePoint 2007.

Figura 3 Plataforma SharePoint 2010.

Agora deve estar pensando, quais so os pontos que a Microsoft focou neste tem da plataforma? A resposta encontramos na Figura 4.
Figura 5 Arquitetura SharePoint 2007.

Codificando.net e-magazine

Figura 4 Foco do SharePoint Insights.

Agora que temos uma grande viso de objetivo do BI, Portal e sobre a nova plataforma de SharePoint 2010. Farei algumas comparaes para que possamos entender ainda mais o que mudou na arquitetura, de forma singular.

Figura 6 Arquitetura do SharePoint 2010.

O que mudou? Vejam todos os pontos abaixo: Shared Services Provider (SSP) no tem mais. Tudo orientado a Servio de aplicao. Existem servios novos. InfoPath Service agregado. Word Conversion service Power Point BroadCast Service
Ago / Set - 2010

Entendendo as arquiteturas 2007 X 2010

i. ii. iii.

www.codificando.net

44

BI no SharePoint 2010, uma evoluo para seu Portal

e-magazine

iv. v. vi. vii. viii. a) b) a) b) c)

Web Analystics Services Visio Graphics Services Access Services Managed Metadata PerformancePoint agregado. Ainda temos novas integraes. FAST 2010. Office Web App Service Novas aplicaes clientes Visio Access SharePoint WorksPace

Desta forma, pode-se obter um breve resumo das mudanas da arquitetura do SharePoint 2010. Prtica - BI, no SharePoint 2010 O objetivo at agora era que todos que conhecem ou no a tecnologia SharePoint, mesmo sendo um entusiasta de qualquer tecnologia pudesse entender que na realidade qualquer empresa ou profissional, pode implantar BI no seu portal utilizando o SharePoint, e ainda mais com a nova tecnologia SharePoint 2010. Imagine uma pgina em seu site com informaes provenientes de qualquer linha de aplicativos comerciais exibidos em um painel grfico com os dados atualizados e com capacidade de mostrar os detalhes e filtrar de qualquer jeito que voc precise ou goste. O responsvel por esta interatividade a ferramenta PerformancePoint. Achou emocionante? Ento voc vai adorar ver a Figura 7.

Figura 7 2 Exemplos - Painel de Indicadores e Visio em ao.

O Microsoft PowerPivot (anteriormente conhecido como Gemini) oficialmente atingiu o mundo com duas verses - uma para o SQL Server e o outro para SharePoint. PowerPivot permite drilldown, filtrar e classificar em qualquer categoria de seus dados. Imagine o poder do Excel Pivot Table agora dentro do SharePoint. Veja a Figura 8.

Codificando.net e-magazine

Figura 8 Excel Services.

J imaginou voc poder criar diagramas

www.codificando.net

Ago / Set - 2010

45

BI no SharePoint 2010, uma evoluo para seu Portal

e-magazine

no Visio, como mapa estratgico da sua empresa? E indicar a porcentagem global de cada um? Ou at mesmo fazer o monitoramento da sua rede e atravs de um simples refresh da sua pgina saber se seu servidor est UP ou DOWN? Veja como seria na Figura 9.

Quanto custa? Quanto tempo vai levar? E meus sitemas que uso hoje, como vai ficar? Terei que jogar tudo fora? Este SharePoint, pode substituir meus sistemas especialistas (ERP, Financeiro, RH)? Ou somente uma ferramenta de apresentao, agregao e transformao de dados?

Peguei pesado? Prepare-se, vai ouvir muito isto. Agora eu fao outras perguntas para voc! Sua empresa usa a informao de forma inteligente? Estou levantando esta pergunta, simplesmente para saber se sua empresa est preparada para usar BI. A maioria das empresas onde implantei BI em seus portais no sabiam exatamente o que queriam, somente ouviram, leram que precisavam usar BI ou qualquer ferramenta os ajudassem a tomar decises. No se preocupe com que estou escrevendo. Se pensas que voc somente um especialista e quer saber sobre tecnologia. Agora ainda pensando no foco de tentar implantar esta belssima ferramenta na empresa, comece a pensar em entender todas as reas da empresa, principalmente reas crticas. Com certeza, por ali que ir comear implantar BI no portal de sua empresa ou em seu negcio. Muitos projetos de BI acabam mesmo antes de comearem, em funo dos custos. Mas esta linha de pensamento por parte de alguns executivos um erro e, em
Ago / Set - 2010

Figura 9 Visio Services.

Gostaria de dar uma pequena sugesto. Olhar a ferramenta System Center onde trazem muitas novidades sobre monitoramento de ambientes atravs dos pacotes de gerenciamento para cada plataforma. Consideraes finais - Est preparado para usar BI? Talvez um dos objetivos de estar lendo este artigo, nada mais do que conhecer tecnicamente a ferramenta, entretanto, se estiver lendo para entender melhor e poder convencer sua chefia, gerncia, vicepresidncia ou at mesmo diretoria de que a plataforma BI do SharePoint importante a ser adquirida. Realmente entendendo sua preocupao. Eu talvez possa te ajudar com este artigo. Bom comece a pensar nestas respostas.

Codificando.net e-magazine
|

www.codificando.net

46

BI no SharePoint 2010, uma evoluo para seu Portal

e-magazine

muitos, casos o resultado aquele que conhecemos: a soluo mais barata funcionou por um perodo, mas no supriu as necessidades da empresa ao longo do tempo, e mais uma vez perdeu-se tempo e dinheiro. Deve estar pensando: Velaz, est me dizendo que implantar BI caro?. Por favor, se interpretou desta forma, desculpe. O que quero dizer exatamente isto: toda empresa pode implementar BI, s que podem implementar conforme sua necessidade, investimento e tempo. Ex: com muito pouco pode usar um painel de indicadores na sua intranet indicando quantos contatos e o status de acompanhamento de respostas para cada um. Minha recomendao neste sentido olhar Business Intelligence no como um custo, mas como um investimento que pode dar bons frutos a mdio e longo prazo, independente do custo. Imagine ter todos estes recursos? Para Saber Mais Aproveite e veja na comunidade CanalSharePoint a uma das maiores comunidades de SharePoint do Brasil, os vdeos, tutoriais, artigos e blogs de especialistas disponibilizados sobre esta tecnologia. Qualquer coisa entre em contato nos dados abaixo.

Bruno Velaz Lder da Comunidade CanalSharepoint.com.br e trabalho como Lder Tcnico de Projetos Microsoft nas reas Portais Corporativos, BI, EPM e CRM na i-devNet | Internet & e Colaborao. Principal responsvel no projeto a nvel nacional SISCSV (Certificado de Segurana Veicular), tem trabalhado grandes clientes como Grupo LIGHT , VALE , SEBRAE e Grupo GERDAU-RS, Grupo RANDON, CPFL, SYNGENTA, SENAC e etc. Bacharel em Sistemas da Informao pela UNISINO e Tcnico em Processamento de Dados pelo La SALLE-RS. Fortemente Certificado Microsoft com MCITP EPM 2007, MCPD, MCAD, MCTS SharePoint 2007 Dev e Infra , MCTS WSS 3.0 Dev e Infra, MCTS SQL Server 2005. Atua na comunidade MSDN e TechNet como apresentador de WebCasts e eventos relacionados com SharePoint e EPM, como o TechShare em 2008.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

47

e-magazine

SharePoint e plataforma Azure: solues de integrao


Por: Backer Rosa

Poucas vezes se falou tanto em duas plataformas como que se tem falado em SharePoint e Azure. A primeira, trata-se da plataforma de portais da Microsoft e suas incrveis capacidades. A segunda, a badalada plataforma de aplicao em cloud computing da Microsoft com suas features e caractersticas nicas. E, considerando essas duas estrelas, seria possvel aliar suas capacidades para explorar o melhor dos dois mundos? A resposta SIM! Azure? Azure, cloud computing, e todos estes conceitos que, a primeira vista, podem parecer velhas tecnologias com novos nomes. Afinal, ter um Windows Azure, que basicamente me prove um Web Server fora da minha infra-estrutura local no parece exatamente uma inovao tecnolgica. Agora, se pensarmos que, utilizando a nuvem da Microsoft eu posso ter acesso a uma capacidade de processamento para suportar milhares de usurios em pouqussimo tempo, comparando com todo o processo que envolve aquisio de hardware e software, a sim temos nas mos um conceito revolucionrio. Finalmente temos plataformas realmente baseadas a servio. Hoje possvel, via web, criar uma conta

no Windows Azure, realizar o pagamento e utilizar toda a capacidade adquirida em pouqussimo tempo (tambm pode-se pagar por demanda. Se preciso de x processamento apenas em um ms, no preciso pagar aquele montante o ano todo). Isto inclui servios de hosting de aplicaes, storage e ambiente de gerenciamento de servios (Windows Azure), e banco de dados relacional (SQL Azure) e auxiliando nas conxes disto tudo, o Windows Azure AppFabric. O diagrama da figura 1 auxilia no entendimento da plataforma Azure e como tudo isto se integra aplicaes externas:

Codificando.net e-magazine
|

Figura 1 - Plataforma Azure - Arquitetura macro.

www.codificando.net

Ago / Set - 2010

48

SharePoint e plataforma Azure: solues de integrao

e-magazine

E onde entra o SharePoint 2010? Dentro do cenrio apresentado, trabalharemos com o SharePoint no papel de uma aplicao local. Obviamente, o BPOS (Business Productivity Online Standard Sute) apresenta o SharePoint no formato de servio na nuvem, mas por se tratar ainda da verso 2007 e ter, em geral, nveis de customizao limitados, no abordaremos esta verso. importante frisar que na prxima verso, teremos suporte a SandBoxed Solutions, garantindo bom nvel de customizao. Dentre as opes de integrao, temos diversos cenrios possveis e a escolha do mtodo de integrao, passa pelo modelo de aplicao Azure disponvel e o nvel de integrao necessrio.

http://www.sharepointiando.com.br/? page_id=215 http://www.sharepointiando.com.br/? page_id=224 , alm de atender aos prrequisitos descritos no site da plataforma Azure. Para informaes mais detalhadas, a Microsoft disponibiliza tambm o SDK da plataforma. Azure e SharePoint Designer Os procedimentos abaixo, visam integrar uma aplicao publicada na nuvem com sua plataforma local de portal baseada em SharePoint 2010. Note que para o exemplo abaixo, no ser necessrio codificar uma linha sequer para a integrao entre as plataformas, mas necessrio estar atento a algumas configuraes importantes em relao segurana na integrao. Configuraes de segurana: Secure Store Service

No SharePoint Central Administration, clique em Application Management / Manage Service Application, localize e clique em Secure Store Service (clique no link).
Figura 2 - Modelo de aplicao Azure.

Codificando.net e-magazine

Para incio de conversa Trabalhando em duas opes de integrao, pressupe a existncia de um servio j publicado no Windows Azure, associado um servio de dados do SQL Azure, retornando informaes que sero integradas ao SharePoint. Para entender como estes servios foram criados, utilizar os artigos:

Clique em New e preencha os dados referentes a nova chave de aplicao (Targe Application ID, Display Name, e-mail). Mantenha a configurao de Target Application Type como Individual. Uma chave inicial para o SharePoint j deve ter sido criada para que se possa criar esta nova chave de autenticao externa.

www.codificando.net

Ago / Set - 2010

49

SharePoint e plataforma Azure: solues de integrao

e-magazine

SharePoint Designer e External Content Types Aps os passos de configurao de segurana (credencias de acesso ao sistema externo), ser necessrio criar um tipo de dados externos para acesso ao sistema publicado na nuvem.

Figura 2 Secure Store Service - Criao de Target Application.

Clique em Next para preencher as credencias de acesso ao sistema, informando usurio e senha para acesso ao sistema externo. Clique novamente em Next.

Abra o SharePoint Designer 2010 indicando o site a ser utilizado e clique em External Content Types.

Figura 3 Secure Store Service - Configurao de Target Application Figura 6 - SharePoint Designer - External Content Types

Adicione um administrador da chave criada (responsvel por gerenciar as configuraes de segurana destas credenciais) e clique em Ok para finalizar a configurao.

Clique em External Content Type no Ribbon do SharePoint Designer, informe Name e Display Name e clique no link Clique here to discover external data sources an...

Codificando.net e-magazine

Figura 4 - Secure Store Service - Configurao de Segurana

Com o ID da aplicao criado, ser exibida uma nova aplicao na lista de credencias gerenciadas pelo SharePoint.

Figura 5 - Secure Store Service - Listagem de aplicaes

Figura 7 - SharePoint Designer - External Content Types Information

www.codificando.net

Ago / Set - 2010

50

SharePoint e plataforma Azure: solues de integrao

e-magazine

Clique em Add Connection e selecione SQL Server. Informe os dados de conexo com o SQL Azure, informando a URL do hostname do SQL, nome do banco de dados e selecione a opo Conectt With Impersonate Custom Identity para informar as credencias de acesso aos dados configurados nos passos anteriores. Informe o ID da aplicao criado no Secure Store Service e clique em OK. A conexo foi criada.

Salve o External Content Type e crie uma lista baseada neste External Content Type para gerar interface de manipulao destes dados. Desta forma, temos dados hospedados na plataforma Azure da Microsoft sendo administrados e utilizados diretamente em uma plataforma local de portal baseada em SharePoint 2010. SharePoint + Azure: consumo avanado de servios Os procedimentos a seguir realizam uma comunicao avanada, via cdigo, de consumo de dados de um servio da plataforma azure por WebParts do SharePoint 2010. Crie um novo projeto no Visual Studio 2010, escolhendo Business Data Connectivity Model entre os templates de projeto para SharePoint 2010. Informe o nome do projeto e clique em Ok.

Figura 8 - SharePoint Designer - External Content Types Connection.

Na conexo criada, expanda o menu da conexo e clique com o boto direito no nome do banco de dados (Costumers para o exemplo deste artigo). Selecione a opo Create All Operations e siga com o Wizard para criao das operaes de interface com o banco de dados (listagem, incluso, excluso,...).

Codificando.net e-magazine

Figura 10 - Visual Studio - Criao de um projeto BDC Model.

Figura 9 - SharePoint Designer - External Content Types Connection Properties.

www.codificando.net

Ago / Set - 2010

51

SharePoint e plataforma Azure: solues de integrao

e-magazine

Abra o arquivo Entity1.cs criado automaticamento pelo Visual Studio na estrutura do projeto e substitua o cdigo conforme listagem 1:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AzureBDCDataModel.AzureCustomers { public partial class Entity1 { public string Identifier1 { get; set; } public string tempCustTitle { get; set; } public string tempCustFirstName { get; set; } public string tempCustLastName { get; set; } public string tempCustEmail { get; set; } public string tempCustPhone { get; set; } } }
Listagem 1 - Cdigo.

Adicione a referncia e abra o arquivo Entity1Service.cs, substituindo o cdigo existente pelo cdigo (listagem 2):
using System; using System.Collections.Generic; using System.Linq; using System.Text; using myAzureSvc = AzureBDCDataModel.AzureCustomerService; namespace AzureBDCDataModel.AzureCustomers { public class Entity1Service { public static Entity1 ReadItem(string id) { myAzureSvc.Service1Client myWCFProxy = new myAzureSvc.Service1Client(); string[] returnedData = new string[6]; returnedData = myWCFProxy.getACustomer (Int32.Parse(id)).ToArray(); Entity1 entity1 = new Entity1(); entity1.Identifier1 = returnedData[0]; entity1.tempCustTitle = returnedData[1]; entity1.tempCustFirstName = returnedData[2]; entity1.tempCustLastName = returnedData[3]; entity1.tempCustEmail = returnedData[4]; entity1.tempCustPhone = returnedData[5]; myWCFProxy.Close(); return entity1; } public static List<Entity1> ReadList() { myAzureSvc.Service1Client myWCFProxy = new myAzureSvc.Service1Client(); var salesData = myWCFProxy.getAllCustomers (); List<Entity1> mySalesInfoList = new List<Entity1>(); foreach (var item in salesData) { Entity1 tempEntity = new Entity1(); tempEntity.Identifier1 = item.tempCustID;

O cdigo da listagem 1, alm de criar um tipo de contedo e implementar algumas propriedades necessrias para interface do servio, tambm insere a referncia s bibliotecas System.Linq, utilizadas na manipulao dos dados. No Project Explorer, clique com o boto direito no nvel References e, no menu contextual, clique em Add Service Reference. Configure a referncia , informando o endereo do servio Azure disponvel na estrutura de nuvem criada (para maiores informaes, veja o arquivo http:// www.sharepointiando.com.br/? page_id=224 ).

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

52

SharePoint e plataforma Azure: solues de integrao

e-magazine

tempEntity.tempCustTitle = item.tempCustTitle; tempEntity.tempCustFirstName = item.tempCustFirstName; tempEntity.tempCustLastName = item.tempCustLastName; tempEntity.tempCustEmail = item.tempCustEmail; tempEntity.tempCustPhone = item.tempCustPhone; mySalesInfoList.Add(tempEntity); } myWCFProxy.Close(); return mySalesInfoList; } } }
Listagem 2 - Cdigo.

Figura 11 - Visual Studio - Configurao de BDC Model

Este cdigo (listagem 2) referencia o servio Azure criado e implementa dois mtodos. O primeiro, ReadItem, recebe um identificador como parmetro e popula os dados de um item de um tipo Entity1, criado no cdigo da listagem 1. O segundo mtodo, ReadList, retorna um conjunto de registros fornecidos pelo servio Azure, em uma lista de itens do tipo Entity1. No BDC explorer, adicione o TypeDescriptors ao seu tipo criado, clicando com o boto direito sobre o n Entity1. Certifique-se de que o mapeamento na classe Entity1 aos tipos utilizados estejam corretos (variaveis do tipo String mapeadas para o tipo System.String, por exemplo). A figura abaixo ajuda a entender o processo de criao do TypeDescriptors.

Realize a instalao da soluo clicando com o boto direito sobre o nome do projeto e, em seguida, selecionando a opo Deploy. Ao final do processo de deploy, abra o Internet Explorer e navegue at o site em questo. Na interface do site utilizado, com perfil de administrador, clique em Site Actions / View All Site Content e selecione Create para criar uma nova lista. Selecione External List e clique em Create para criar uma nova lista baseada no tipo criado nos passos anteriores. O novo tipo deve estar disponvel na lista de External Content Types. O procedimento descrito mostra uma integrao simples entre um servio hospedado na estrutura de cloud computing da Microsoft (Azure) e uma plataforma local, mas, por ser realizada atravs de cdigo .NET, permite nveis avanados de manipulao de dados entre as pontas de interface de integrao, provendo grande flexibilidade s solues de integrao.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

53

SharePoint e plataforma Azure: solues de integrao

e-magazine

Consideraes Finais As possibilidades de integrao estre estas plataformas que so as grandes apostas da Microsoft para os prximos anos, so infinitas e trazem grande poder na implementao de solues de alto desempenho e disponibilidade. Uma combinao perfeita para solues envolvendo colaborao e aplicao de misso crtica dentro de uma organizao. Ento, porque no us-las em conjunto?

Backer Rosa Especialista do grupo Conectt, atua em projetos de larga escala em clientes de grande porte. Com mais de 10 anos de experiencia em projetos de T.I., especializado em tecnologias SharePoint deste a sua primeira verso. Atualmente Microsoft Certified Technology Specialist nas tecnologias SharePoint 2010 - Configuration, Windows SharePoint Services 3.0 e Microsoft Office SharePoint Server 2007, alm de possuir certificao em Biztalk Server em implementao de processos de negcio. Tambm o criador do blog SharePointiando (www.sharepointiando.com.br), com contedo exclusivo relacionados a todas as tecnologias que envolvem a plataforma SharePoint.

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

54

e-magazine

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

55

e-magazine

Redes Sociais no SharePoint 2010


Por: Wagner Amorim

Overview Atualmente as Redes Sociais j no fazem parte mais de grupos visionrios, nem apenas uma aposta de mercado, as Redes Sociais j fazem parte da nossa realidade e uma onda mundial. As Redes Sociais geralmente ainda so vinculadas a sites de relacionamentos, com objetivos pessoais (grandes exemplos so Orkut, Facebook, Twitter, MySpace entre outros), mas temos bons exemplos no mundo corporativo de Redes Sociais como o LinkedIn, Digg, Facebook, Twitter e outras comunidades virtuais com profissionais compartilhando interesses em comum (exemplos no mercado de T.I.: CanalSharePoint, Codificando, MSDN, TechNet, entre outras). O grande detalhe est no poder dessas Redes e no potencial que elas podem trazer aos interessados em contribuir e crescer nesse mundo infinito de oportunidades. Voltando ao SharePoint, o produto possui uma vertical focada nesse conceito, chamado SharePoint 2010 Communities, que a rea do SharePoint voltada para as Comunidades, ou seja, as Redes Sociais (Figura 1). Abaixo seguem alguns links interessantes

sobre o assunto: SharePoint 2010 Communities http://sharepoint.microsoft.com/en-us/ product/capabilities/communities/Pages/ default.aspx Meus Sites e Marcao Social http://office.microsoft.com/pt-br/ sharepoint-server-help/ CH010373157.aspx?CTT=97

Codificando.net e-magazine

Figura 1 - SharePoint 2010 Communities.

Soluo Que as Redes Sociais so realidade na vida da nossa sociedade, no uma grande novidade, atualmente comum ouvir falar sobre isso na TV, Rdio, Internet e nos principais canais de comunicao. O ponto interessante como podemos utilizar as Redes Sociais no mundo cor-

www.codificando.net

Ago / Set - 2010

56

Redes Sociais no SharePoint 2010

e-magazine

porativo, como tirarmos proveito desse grande potencial? Pensem comigo, qual o limite? Imaginem que ao nos conectarmos com Redes como o LinkedIn, por exemplo, estaremos conectados a cerca de mais outros 16 milhes de usurios, no Twitter mais de 30 milhes, muito no acham? Realmente um nmero expressivo! Porm ainda pequeno se considerarmos os 500 milhes de usurios que o Facebook possui ao redor do mundo! NOTA: Os dados apresentados acima foram extrados do conhecido site TechCrunch na internet: http://techcrunch.com/. Pois , em uma viso de estratgica de relacionamento (seja pessoal ou profissional) realmente uma rede social considervel, basicamente estamos todos conectados, e o melhor, praticamente sem pagar nada! Ento porque no aproveitarmos esse potencial? Pense que atravs das Redes Sociais estarmos todos conectados pode significar termos contato direto com pessoas que seriam inacessveis pessoalmente ou atravs de outros meios de comunicao, isso fantstico! Dentro de todo esse contexto de Redes Sociais, meu objetivo alm de fazer uma reflexo sobre o potencial das Redes Sociais, apresentar os principais recursos dos produtos e tecnologias SharePoint, que uma plataforma que vem se destacando como a tecnologia para implantao de Redes Sociais corporativas, eu mesmo j participei de diversos projetos utilizando

o SharePoint como plataforma e o resultado incrivelmente gratificante. Vamos abordar em linhas gerais as principais features do SharePoint 2010 que o possibilita ser produtivo e extremamente eficiente quando o objetivo aproximar pessoas, compartilhar conhecimento e ganhar produtividade e acesso a informao de forma simples e interativa.

Figura 2 - Lista de recursos.

Principais Recursos do SharePoint 2010 para Redes Sociais: Na figura 2 temos uma lista com os principais recursos do SharePoint 2010 utilizados em projetos de Communities, eu destaco alguns recursos como Blogs & Wikis, SharePoint Workspace, Office Web Applications e principalmente os recursos do My Site, na minha viso o principal recurso de Redes Sociais no SharePoint 2010. O My Site no Microsoft SharePoint Server 2010 oferece aos usurios de uma organizao um conjunto de recursos muito rico de colaborao e integrao. Esses recursos oferecem aos usurios uma maneira de descobrir reas de especialidade, compartilhar

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

57

Redes Sociais no SharePoint 2010

e-magazine

interesses, responsabilidades e atividades.

que ajuda voc a marcar ou postar notas de forma conveniente em sites diretamente de um navegador da Web. Uma biblioteca de imagens compartilhada, biblioteca de documentos compartilhada e biblioteca de documentos pessoal. A capacidade de adicionar Web Parts personalizadas como um visualizador de RSS (Really Simple Syndication) para exibio de RSS feeds de blogs, fontes de notcias e assim por diante. Um navegador organizacional que usa o Microsoft Silverlight 4 para oferecer uma experincia de navegao organizacional dinmica. A capacidade de gerenciar colegas e associaes de um nico local. O recurso de Localizar pessoas e experincia com base em suas especialidades e funes em uma organizao.

Figura 3 - rea para usurios compartilhar informaes.

O My Site permite que os usurios compartilhem facilmente informaes sobre eles prprios e o trabalho. Esse compartilhamento de informaes incentiva a colaborao, cria e promove experincia e direciona contedo relevante para as pessoas que precisam v-lo. Voc pode adaptar o contedo a cada usurio de uma organizao e, ao mesmo tempo, permitir que os administradores definam diretivas para proteger a privacidade. Algumas caractersticas do My Site: Um perfil para cada usurio onde eles podem compartilhar sua experincia, imagens de perfil e assim por diante. Um news feed para acompanhamento de atividades como Social Bookmarking, atualizaes de status e comentrios de colegas. Uma ferramenta de marcas e notas

Com trs modos de exibio distintos:

Codificando.net e-magazine

Seo Minha Rede (My Network) mostra as pessoas, os interesses e as atividades que um usurio est acompanhando. Seo Meu Contedo (My Content) lista documentos pessoais e compartilhados, imagens compartilhadas e bibliotecas, listas, quadros de discusso e pesquisas que um usurio mantm. Seo Meu Perfil (My Profile) mostra informaes do perfil pessoal.

www.codificando.net

Ago / Set - 2010

58

Redes Sociais no SharePoint 2010

e-magazine

Vamos explorar um pouco mais cada um desses recursos de My Site: Navegador da organizao (Organization Browser) Com ele possvel visualizar a hierarquia de subordinao de um usurio, utilizando o Silverlight para tornar a experincia do usurio mais rica. O navegador da organizao habilitado por padro. As informaes da organizao podem ser criadas manualmente ou importadas de um servio de diretrio, como o AD DS (Servios de Domnio Active Directory) ou o LDAP.

as padro e a guia Centro de Pesquisa com escopos de pesquisa personalizados e guias para grupos de usurios mais especficos.

Figura 5 - Pesquisa de pessoas.

Adicionar Colegas De forma muito fcil, possvel adicionar pessoas sua lista de colegas, gerenciar colegas usando grupos e restringir quem pode v-los, com o recurso Suggested Colleagues. possvel seguir as atividades de seus colegas no seu News feed, recebendo suas principais atualizaes e alteraes. Existem algumas configuraes que habilitam a incluso automtica de colegas, de acordo a hierarquia dos usurios por exemplo. Tambm possvel aplicar a privacidade para gerenciar quem pode ver algumas de suas informaes pessoais, como detalhes pessoais de seu perfil, suas associaes e seus colegas. Uma grande possibilidade compartilhar listas de colegas com as pessoas na empresa para criar relacionamentos e aumentar a Rede Social.

Codificando.net e-magazine

Figura 4 - Informaes compartilhadas.

Pesquisa de Pessoas Os resultados de Pesquisa de Pessoas contm links para os perfis pblicos de cada usurio e links para contat-los por meio de programas de email ou sistema de mensagens. No planejamento de usurios de My Site, convm considerar a suplementao do escopo de pesquisa de pesso-

www.codificando.net

Ago / Set - 2010

59

Redes Sociais no SharePoint 2010

e-magazine

Para ajudar a recomendar colegas, o SharePoint Server tambm pode identificar pessoas para quem voc envia e-mails com freqncia usando um programa de email compatvel com o SharePoint, como o Microsoft Outlook. Voc pode exibir as recomendaes de sua lista de colegas, alm de receber sugestes para colegas por e-mail.

sicionando nesse mercado, para maiores informaes, dicas & truques, acessem o site da Comunidade CanalSharePoint: http://www.canalsharepoint.com.br.

Wagner Amorim Lder da Maior Comunidade de SharePoint do Brasil (CanalSharePoint), participante de diversos projetos para mdias e grandes empresas utilizando tecnologias Microsoft, tm se especializado nas Tecnologias SharePoint e .NET desde 2003. Atualmente trabalha como Consultor Especialista SharePoint por todo o Brasil, com participao focada no desenvolvimento e customizao dos Produtos e Tecnologias SharePoint, tambm participa como membro ativo das comunidades TechNet e MSDN.

Figura 6 - Sugestes de colegas para envio de email.

Esses so os principais recursos do My Site no SharePoint 2010, considerado na minha viso como o principal modelo de implantao do SharePoint 2010 para Redes Sociais. Para uma visualizao completa do SharePoint 2010 Communities, veja: http://sharepoint.microsoft.com/en-us/ product/capabilities/communities/Pages/ default.aspx Concluso Nesse artigo conseguimos explorar o conceito de Redes Sociais no mundo corporativo e como o SharePoint 2010 vem se po-

Codificando.net e-magazine
|

www.codificando.net

Ago / Set - 2010

60

e-magazine

Visual Studio LightSwitch primeiras impresses


Por: Alexandre Tarifa
A Microsoft j liberou para os assinantes MSDN Subscription o download para o Beta 1 do Visual Studio LightSeitch, em breve acredito que toda a comunidade poder conhecer a ferramenta. Por enquanto, visite o site: http://www.microsoft.com/ visualstudio/en-us/lightswitch e acopanhe os vdeos caso voc no tenha uma assinatura. O principal objetivo da ferramenta, que roda dentro do Visual Studio 2010, oferecer uma plataforma de desenvolvimento ULTRA SIMPLES para aplicaes de negcios em ambiente desktop ou na nvem, mas claro, com ampla capacidade de customizao. Muitas pessoas vo dizer que isso impossvel, que todos os cenrios de desenvolvimento so ultra complexo, etc etc etc... at porqu, se os desenvolvedores no valorizarem o seu trabalho, quem valorizar . Eu tenho uma idia um pouco diferente, sei que existe cenrios ultra complexos, complexos, mdios, simples, ultra simples, etc... e esse cenrio tem duas variveis chave: complexidade de negcio e complexidade da empresa. Esta ferramenta utiliza um modelo de dados como base para a criao das aplicaes, sendo que este modelo pode ser de um banwww.codificando.net
Jun Jul - 2009 Abril // Maio 2010

co SQL Server j existente ou no. Dentro da ferramenta temos uma interface de criao das tabelas, com as funes bsicas para a criao do modelo. Veja abaixo: Criao do projeto

Primeira deciso: modelo novo ou j existente.

||

61

e-magazine
Criao de uma tabela Com um modelo definido, a ferramenta nos proporciona muita facilidade na criao de telas, sempre baseada no modelo existente. As telas so classificadas em templates: Data Screen, Search Data, Detais, Editable Grid e List or details. A criao extremamente simples, basta selecionar a tabela no modelo e o tipo de tela:

claro que em muitos cenrios essa simplicidade no pode ser aplicada, mas entendo essa ferramenta como mais uma opo para as empresas oferecerem a pequenos projetos de banco de dados, projetos de manipulao de dados, projetos rpidos, etc... alias, esse um tipo de aplicao que a plataforma .Net ainda era encarada como falha! Entendo perfeitamente essa ferramenta e o nosso leque fica cada vez maior e melhor. Abraos

No final basta executar o projeto e um dashboard tas tabelas e telas executado.

www.codificando.net

Jun Jul - 2009 Abril // Maio 2010

||

62