codificando 17

Upload: ricardo-palma

Post on 06-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 codificando 17

    1/62

  • 8/3/2019 codificando 17

    2/62

    Fale com Editor

    muito importante para a equipesaber a sua opinio sobre a revis-ta, caso tenha alguma critica, su-gesto, ou elogio entre em conta-to.

    Caso tenha interesse em publicarum artigo na revista envie o ttuloe um resumo do tema em formatoWord.

    [email protected]

    EDITORES

    Alexandre TarifaDiego NogareEmerson FacunteFernanda SallaiSergio Gonalves

    REVISOFabrcio Lopes SanchezSara Barbosa

    EDITORAO E DIAGRAMAOAdriano AlmeidaFabiano Rodrigues

    COLABORADORESAline MaiaBacker RosaBruno VelazMarcel MedinaRodolfo RoimRodrigo RomanoThiago SilvaWagner Amorim

    Produzido por:

    www.codificando.net

    Edio 17 Nmero 17 Ano 04 2010

    Sumrio

    03:. Editorial 61:. .Close ( )

    Por: Marcel Medina

    21 :. Developer DashBoard

    Por: Rodrigo Romano

    28 :. Governana no SharePoint

    2010

    Por: Thiago Silva

    34 :. List Definition e Content Types

    no SharePoint 2010

    Por: Bruno Velaz

    42 :. BI no SharePoint 2010, uma

    evoluo para seu Portal

    Por: Backer Rosa

    48 :. SharePoint e plataforma

    Azure: solues de integrao

    Por: Aline Maia

    04 :. Processo de Upgrade e Mi-

    grao no SharePoint 2010

    Por: Rodolfo Roim

    11 :. Client Object Model

    Por: Wagner Amorim

    56 :. Redes Sociais no SharePoint

    2010

  • 8/3/2019 codificando 17

    3/62

    Fernanda [email protected]"O conhecimento o processo de acumular dados. A sabedoria reside na sua simplificao."

    (Martin H. Fischer)

    Ol novamente a todos os leitores da revista Codificando .NET e-Magazine com prazer e alegria queabro 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. Queroagradec-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 principal-mente ao Wagner Amorim que apoiou esse projeto e proporcionou aos leitores da Codificando .NET e-Magazine, 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 Ob-ject Model.Marcel Medina demonstra como exibir os resultados de processamento de sua pgina graficamente atravsdo 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 nossasaplicaes: 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 co-munidade s me resta agradecer a sua participao leitor e desejar uma excelente leitura!

    Editorial

    Edio 17 Nmero 17 Ano 04 2010

    EDITORIAL

  • 8/3/2019 codificando 17

    4/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 4444

    Processo de Upgrade e Migrao no

    SharePoint 2010

    No h como negar: o SharePoint 2010 estsensacional! A quarta edio da ferramenta(e plataforma de desenvolvimento) estmais madura e poderosa. Mantendo a mes-ma arquitetura bsica baseada em pgi-nas geradas dinamicamente, a partir deparametrizao em bancos de dados decontedo porm com a camada de Servi-os Aplicacionais redesenhada e agora par-te da verso Foundation, muitas novas fun-cionalidades esto disponveis para os u-

    surios. E, se por um lado as mudanastornam o SharePoint 2010 ainda mais atra-ente para usurios finais, podemos consi-derar que a onda de adoo iniciada pe-lo SharePoint 2007 nas organizaes s ten-de a crescer.

    Liderando o Quadrante Mgico nos relat-rios de anlise do Gartner que posicionam

    a Microsoft como Leader desde o lana-mento da verso 2007, a sofisticao atingi-da pelo Microsoft SharePoint 2010 contri-

    bui para que desenvolvedores e profissio-nais administradores de IT tenham umambiente ainda mais atrativo para suas so-lues customizadas. Se com as mudanasde arquitetura iniciadas na verso 2007 oSharePoint passou a ser a ferramenta n-

    mero um para a criao de portais de cola-borao (com grande adoo pelo mercado brasileiro e mundial), na verso 2010 oproduto atinge plena maturidade.

    Mas uma nova verso nos leva ao se-

    guinte questionamento: como asorganizaes que j adotaram o SharePo-int 2007 esto se preparando para migrarpara SharePoint 2010? Um ambienteSharePoint 2007 estvel e em produo um bom candidato a migrao para Sha-rePoint 2010? E para ns, profissionaisda rea, fica ainda a pergunta: qual acomplexidade tcnica de uma operaocomo esta?

    Apesar de ser possvel optar pelo upgra-de in-place de ambientes (em que anova verso instalada diretamente na

    farm que possui a verso 2007 e maiscomum em cenrios de ambientes no-produo ou virtualizados, por no per-mitir revertermos a operao) nota-seque a estratgia mais utilizada a de mi-

    grao de dados. Ao optarmos por mi-grao de dados, uma nova farm Share-Point 2010 criada e configurada antesde receber os dados existentes, migradosatravs da restaurao de backups dos

    bancos de dados de contedo. Uma dasmuitas vantagens deste mtodo a pre-servao das condies da farm originale a possibilidade de se realizar diversas

    simulaes e testes dos procedimentosat a homologao e real migrao doambiente. Neste artigo iremos discutir o

    Por: Aline Maia

  • 8/3/2019 codificando 17

    5/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 5555

    http://technet.microsoft.com/en-us/library/cc287730(office.14).aspx .

    Projetos de migrao so ainda uma boaoportunidade de rever a necessidade demanter em produo dados e funcionali-dades j obsoletos. importante prever,

    junto s reas usurias e analistas de ne-gcio envolvidos no projeto (e eles DE-VEM fazer parte da equipe!) quais sites esite collections podem ser arquivados ouremovidos, alm de identificar sites com

    problemas de funcionamento e contendoitens rfos que possam ser apagados.Tambm possvel que algumas funcio-nalidades at ento no existentes noMOSS 2007 e que demandaram a criaode cdigo customizado (como tag clou-ding , webparts para exibio de vdeo,controles de calendrio e tantos outrosexemplos) possam ser depreciadas apsa migrao.

    Preparando a Nova Farm

    Os passos para a preparao da novafarm podem ser encontrados com deta-lhes seguindo-se a documentao exis-tente no Microsoft TechNet (http://technet.microsoft.com/en-us/library/cc287900(office.14).aspx), cabendo ressal-

    tar a necessidade de finalizarmos os se-guintes passos antes de proceder com amigrao:

    Refazer as configuraes gerais da

    farm os administradores do ambien-te devero finalizar a configurao taiscomo na farm 2007, incluindo reverextenses de arquivos bloqueadas,

    configuraes de envio de e-mail, log-ging, bem como dos servios aplicacio-nais em uso (incluindo aqueles intro-

    processo de migrao de dados, as fasesdesse processo e pontos de ateno noapenas do ponto de vista do administra-

    dor de IT, mas tambm do desenvolve-dor.

    Por onde comear?

    Uma boa forma de iniciar a fase de pla-nejamento da migrao executar o co-mando preupgradecheck ainda na farm2007 para obter um relatrio preliminarcom possveis fontes de problema e pon-tos de ateno que precisem ser trabalha-dos antes da efetiva migrao para Sha-rePoint 2010. O comando preupgrade-check est disponvel na ferramenta sts-tadm a partir da verso SP2 (mas reco-menda-se que seja utilizada a verso dis-ponvel a partir do Cumulative Update deoutubro de 2009) e a documentao de-talhada para sua execuo pode ser en-

    contrada em:http://technet.microsoft.com/en-us/library/cc287628(office.14).aspx. Como aferramenta no realiza nenhuma modifi-cao na farm , podemos execut-la emambiente produtivo sem receios e obtera lista de site definitions, site templates,fea-tures e language packs em uso, alm deidentificar quaisquer modificaes no-

    suportadas (como alteraes no schemado banco de dados e arquivosweb.config com erros). importante queseja feito o inventrio de todas as custo-mizaes existentes, especialmente aque-las relacionadas a solues .wsp distri-

    budas, controles, webparts, event handles,masterpages e quaisquer outros binriosque necessitaro instalao prvia tam-

    bm no novo ambiente. Para auxili-lonesta tarefa, voc pode consultar o chec-klist disponvel em:

    Processo de Upgrade e Migrao no SharePoint 2010

  • 8/3/2019 codificando 17

    6/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 6666

    Iniciando a Migrao

    Com o backup full dos bancos de dados

    de contedo restaurados no novo servi-dor SQL, podemos testar mais uma vez aintegridade e compatibilidade dos sitesanteriores com o novo ambiente Share-Point 2010, dessa vez utilizandoPowershell e o cmdletTest-SPContentDatabase. Utilizandoo SharePoint 2010 Management Shell,execute o seguinte comando:

    Test-SPContentDatabase -Name -WebApplication

    No cenrio de testes de customizaesdeste artigo, temos uma web applicationcontendo os seguintes sites collections:

    / (raiz) Contm subsites utilizadospara teste de migrao de customiza-

    es de layout (masterpages modifica-das, pginas unghosted, uso de lan-guage packs, site templates)

    /sites/contenttypes Para teste de con-tent types.

    /sites/features Para teste defeatures ewebparts distribudas com e sem o usode WSP

    /sites/ListEvents Para teste de event

    handlers /sites/workflow Para teste de work-

    flows

    Dica: Para testar webparts, contenttypese outros tipos de cdigo customizados,adote a estratgia de criar antes da mi-grao uma ou mais site collection detestes (como no exemplo acima) conten-

    do todos estes elementos, preferencial-mente utilizando bancos de dados sepa-rados. Voc ter assim um ambiente bas-

    duzidos com o SharePoint 2010). es-sencial que um guia de instalao sejagerado com todos os passos detalha-

    dos, de forma que possa ser utilizadoem cenrios de disaster recovery. Comodesenvolvedor, voc deve fornecer rea de administrao e operao doambiente todos os passos necessriospara aplicao das customizaes.

    Recriar as Web Applications recrieas web applicartions pr-existentes, sem

    deixar de configurar managed paths,alternate access mappings e certifique-sede adicionar como conta gerenciada aconta de acesso ao content database aser migrado. Certifique-se de optar pe-lo mesmo mtodo de autenticao pre-liminarmente utilizado. Habilite aindaa opo self-service site creation, casoesta estivesse em uso tambm na farmanterior. Durante o processo de cria-o da web application , um novo bancode dados (vazio) ser criado. No necessrio preocupar-se com a nomen-clatura utilizada para ele, pois iremosremov-lo e apag-lo antes de realizara migrao dos dados existentes.

    Aps termos o novo ambiente instalado,configurado e com as web applications an-

    teriores pr-criadas, podemos iniciar oprocesso de migrao. No necessriocriar site collections nas web applicationsrecm-configuradas, mas podemos faz-lo apenas para testar as configuraesaplicadas. Aps os testes de configura-o, remova a associao do banco dedados de contedo criado com a web apl-lication. Estaremos prontos para iniciar

    os testes de migrao.

    Processo de Upgrade e Migrao no SharePoint 2010

  • 8/3/2019 codificando 17

    7/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 7777

    banco de dados de contedo com a webapplication, executaremos o seguinte co-mando:

    Mount-SPContentDatabase -Name -WebApplication

    (Obs: CurrentSiteCount indica, na ver-dade, a quantidade de site collectionsexistentes na figura 2).

    Diversos bancos de dados podem ser mi-grados simultaneamente atravs destecomando, bastando executar o comandoMount-SPContentDatabase em diferen-

    tes consoles Powershell. Para testes deidentificao do tempo necessrio para acompleta migrao de farms com mlti-plas web applications, pode-se paraleli-zar a operao.

    Nota: No possvel adicionar o mesmobanco de dados de contedo em mais deuma web application, em uma mesmafarm

    (ainda que o banco de dados esteja reno-meado). Cada site collection possui umGUID que adicionado ao banco de da-dos de configurao e deve ser nico.Apesar da operao ser concluda comsucesso, duplicar site collections causarproblemas na exibio e funcionamentodos sites. Se voc necessita duplicar sitecollections e sites, utilize os comandos

    relacionados a backup/restore atravs doCentral Administration, ststadm ou Po-wershell, j que estes gerem novos

    tante interessante para testar o funciona-mento do seu cdigo aps a migrao (eo feito de utiliz-lo no SharePoint 2010)

    Ao executar o comando Test-SPContentDatabase no banco de dadosde contedo deste cenrio, obtive umalista de pontos de ateno, descritos, porexemplo, na figura 1:

    Em que:

    Category Indicar o tipo de ele-mento no encontrado, tal comoMissingWebPart,

    MissingSetupFile, etc. Error True ou False. UpgradeBlocking Caso o valor seja

    False, o upgrade do schema do ban-co de dados ser executado, ainda queo contedo contenha erros

    Message e Remedy so os camposque contero mais informaes paranos auxiliar no processo de identifica-

    o dos itens com problemas.

    Apesar dos erros apresentados durante oteste, optarei por prosseguir com a mi-grao do contedo, j que nenhuma dasmensagens indica UpgradeBlocking =True. Em nosso caso, apenas as pginasque estiverem fazendo uso dos itens noencontrados no sero perfeitamente

    renderizados no browser.

    Para realizar, de fato, a associao do

    Processo de Upgrade e Migrao no SharePoint 2010

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

  • 8/3/2019 codificando 17

    8/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 8888

    migrados, ou utilize o seguinte comandoPowershell:

    Upgrade-SPContentDatabase - id Em que o GUID o identificador do ban-co de dados. Uma forma de listar oGUID do content database :

    Get-SPContentDatabase Identity

    Com o processo de vinculao conclu-do, sites cujo contedo customizado foi

    previamente distribudo para a novafarm tero suas pginas corretamenteexibidas, mantendo o visual exibido naverso 2007 (figura 4):

    Notem que pginas unghosted, queforam alteradas via SharePoint Designere/ou que tiveram suas masterpages mo-dificadas tambm mantm o visual ante-rior. Para converter os sites para o tem-plate nativo do SharePoint 2010, bastaacessar a opo Visual Upgrade a par-tir do menu de aes do site. Note que possvel testar o upgrade antes de aplic

    GUIDs para os sites/site collections du-rante o processo.Observem que no apenas um, mas

    DOIS relatrios com informaes sobre oprocesso so gerados (por padro,em /14/LOGS):

    Upgrade-.txt contmtoda informao dos passos executa-dos na migrao, incluindo erros e su-cessos. Pode ser bastante extenso, con-forme o tamanho dos bancos de dadosmigrados

    Upgrade--error.txt con-tm apenas as informaes de errosdurante o processo.

    Notem que algumas informaes impor-tantes, classificadas como warning,sero tambm listadas no apenas noarquivo com as informaes completas,como no resumo, facilitando nosso pro-

    cesso de troubleshooting. Em meu exem-plo, h arquivos de site theming queno foram encontrados no servidor,figura 3.

    Aps a migrao, o schema do banco dedados est totalmente alterado para anova verso (caso haja algum erro queimpea a concluso completa, o banco dedados estar listado como pendente deconcluso. Navegue via Central Admi-

    nistration ao Upgrade and Migration >Check Upgrade Status para retomar mi-grao de bancos de dados parcialmente

    Processo de Upgrade e Migrao no SharePoint 2010

    Figura 4 - Exemplos de sites migrados parafarm SP2010, mantendo visual anterior(incluindo masterpages no nativas e

    posteriormente adicionadas ao site).Figura 3 - arquivos de site theming noencontrados.

  • 8/3/2019 codificando 17

    9/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 9999

    rio garantir que as configuraes dosservios aplicacionais (especialmente a-queles que dependam do contedo em

    questo, como o Search) esteja de acordocom o cenrio desenhado para a soluo.

    Recomenda-se que tantos testes de mi-grao sejam executados at que hajaplena segurana de sua real execuo.Ainda assim, tenha um plano derollback, que pode incluir a manuten-o do uso da farm MOSS 2007 preserva-

    da por mais algum tempo at a total ho-mologao da migrao.

    A lista a seguir um resumo de algunsKBs relacionados ao processo de migra-o que podem ser consultados para au-xlio no troubleshooting (e tambm paraevitar problemas):

    981495 - "You cannot upgrade fromSharePoint 2007 to SharePoint 2010 ona server farm"

    981487 - "Error message when you tryto upgrade a server farm to SharePointFoundation 2010 or to SharePointServer 2010: 'This upgrade session has

    been stopped'" 980328 - "Troubleshooting resources

    for issues that you may encounter

    when you upgrade to SharePointServer 2010 or to SharePoint Founda-tion 2010"

    982575 - "The My Links link disap-pears after you upgrade SharePointServer 2007 to SharePoint Server 2010"

    982579 - "'User modifications to theSharePoint content database' errormessage when you upgrade a Share-

    Point Server 2007 content database toSharePoint Server 2010"

    981233 - "Document conversions do

    -lo em definitivo e a aplicao pode serfeita granularmente (site a site), ou deuma nica vez para toda a site collecti-

    on. Observe, porm, que pginasunghosted mantero suas modifica-es e ser necessrio utilizar a funoReset to Template atravs do SharePo-int Designer para aplicar o visual verso2010.

    Para os sites que possuem pginas comcontroles ou componentes no encontra-

    dos, podemos receber mensagens de er-ro tais como a figura 5:

    Utilize o correlation ID informado paralocalizar mais informaes sobre o com-ponente no encontrado no log de tra-cing do SharePoint. Uma outra dica paraidentificar componentes no encontra-dos acessar a rea de

    Settings (_layouts/settings) para verifi-car por webparts/contentypes nas galeri-as destes sites.

    Distribua os componentes no encontra-dos para o novo ambiente e as pginaspassaro a ser exibidas corretamente.

    Passos Ps-Migrao

    Aps a migrao dos content databasesser concluda com sucesso, ser necess-

    Processo de Upgrade e Migrao no SharePoint 2010

    Figura 5 - Mensagens de erro.

  • 8/3/2019 codificando 17

    10/62

    www.codificando.net

    Codificando.nete-magazine

    e-magazine

    Ago / Set - 2010 | 10101010

    not work after you perform an in-place upgrade to SharePoint Server2010"

    982249 - "You cannot start a Share-Point 2007 out-of-box workflow inSharePoint 2010"

    Verifique sempre a lista de KBs mais re-centes em http://support.microsoft.com emuito sucesso em seus projetos de mi-grao!

    Abraos e boa sorte!

    Processo de Upgrade e Migrao no SharePoint 2010

    Aline Maia

    Trabalha na Microsoft como Premier

    Field Engineer, com foco em atendi-

    mentos 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 CertifiedTechnical 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.

  • 8/3/2019 codificando 17

    11/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    11111111Ago / Set - 2010 |

    Client Object Model

    Introduo

    As inovaes que o SharePoint 2010 trouxeno ltimo dia 12 de Maio, lanamento ofi-cial daverso da plataforma, so inmeras.Tantas que torna difcil a tarefa de cit-lasem um nico artigo ou apresentao. So-mente uma edio de uma revista paraconseguir agrupar as principais inovaes veja que eu no disse todas, mas as prin-cipais juntas.

    As mudanas no SharePoint 2010 come-am pelo posicionamento do produto, dei-xando de ser apenas um produto para serconsiderado uma plataforma de desenvol-vimento de aplicaes de negcios. E comotal, o SharePoint 2010 inovou nas possibli-dade de acessar as informaes armazena-

    das em suas bibliotecas e listas. Dentre es-sas inovaes, uma delas a implementa-o do RESTful onde o produto expe para leitura apenas interfaces para suaaplicao consumir informaes das listase bibliotecas do SharePoint.

    Outra inovao na rea do desenvolvimen-to de aplicaes o Client Object Model -assunto desse artigo - uma composio deDLLs que torna possvel desenvolver apli-caes client side com uma experincia

    muito prxima do desenvolvimento deaplicaes para SharePoint 2010 serverside. Com o Client Object Model o desen-volvedor poder desenvolver aplicaesutilizando Silverlight, .NET e ECMAS-cript. Veremos exemplos de cada um dostipos ao longo do artigo.

    Mas antes de comearmos por uma das

    tecnologias de desenvolvimento, ne-cessrio que saibamos o bsico do ClientOM.

    Client Object Model

    Cenrio atual

    Suponha que voc tenha uma demandade desenvolvimento de uma aplicao,

    que ir rodar no lado do cliente (clientside), e essa aplicao dever consumir eeventualmente inserir informaes doseu portal SharePoint 2007. A nica op-o de desenvolvimento que existe autilizao dos WebServices do SharePo-int 2007, localizados no diretrio_vti_bin de cada site.

    Imagine agora que, analisando os web-services j disponveis, voc no encon-tra a funcionalidade que precisa para re-

    Por: Rodolfo Roim

  • 8/3/2019 codificando 17

    12/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    12121212Ago / Set - 2010 |

    solver o seu problema. Cavando umpouco mais fundo, voc descobre que afuncionalidade existe, mas no est ex-

    posta em nenhum WebService out of thebox. Sua sada criar novos Webservi-ces utilizando as APIs do SharePoint eexpor essas funcionalidades. Ou seja: vo-c precisa reinventar a roda, pois taisfuncionalidades j existem na API doSharePoint.

    Suponha ainda que voc precise escreveruma interface web dessa aplicao utili-

    zando alguma linguagem de Script(JScript, JavaScript). Voc sabe que con-sumir um WebServices de uma aplicao

    JavaScript no hoje uma tarefa fcil.

    Muito bem, antes de voc pedir demis-so ou entrar em vias de fato com seugerente, leia esse artigo at o final, por-que cenrios como o descrito acima no

    so raros de acontecer e a situao podese repetir a qualquer novo projeto.

    Faamos uma pausa aqui para recapitu-lar a maneira que costumvamos traba-lhar esse desenvolvimento no SharePoint2007 e como esse mecanismo todo fun-cionava. O diagrama da figura 1 ilustra ofuncionamento de uma chamada feita

    por uma aplicao Cliente, desenvolvidapara interagir com um Portal construdono SharePoint 2007.

    Veja que a Aplicao Cliente tinha queinstanciar um WebServices para retornarou incluir informaes no SharePoint.Esse, por sua vez fazia acesso s APIs doSharePoint e ento acessava as informa-

    es do SQL Server, repositrio de dadosdo produto.

    Client Object Model

    SharePoint 2010

    O Client Object Model uma camada deabstrao para retornar resultados reco-nhecidos como objetos do SharePoint. Va-mos melhorar o conceito...

    Com o Cliente OM voc consegue desen-volver uma aplicao client utilizado umaAPI (no mais um WebServices) com todaa riqueza de funcionalidades que a APIdo SharePoint oferece. Essa abordagemgarante, inclusive, consistncia para o de-senvolvedor, que pode desenvolver Apli-caes Server da mesma forma que asaplicaes clientes.

    Certo, mas como isso tudo fun-ciona?

    Voltemos ao cenrio anterior - antes devoc pedir demisso - onde voc haviasido designado para desenvolver uma a-plicao cliente que, a princpio, consumainformaes de um site construdo noSharePoint 2010.

    O que antes era limitado aos WebServi-ces, agora voc tem um novo servio cha-mado Client.svc, que nada mais um ser-

    vio WCF que reside no SharePoint 2010 eo Client OM um proxy para esse ser-vio WCF. Sendo assim, quando voc re-

    Figura 1 - Modelo de acesso aos dadosarmazenados no SharePoint 2007.

  • 8/3/2019 codificando 17

    13/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    13131313Ago / Set - 2010 |

    quer alguma informao do servidor emsua aplicao desenvolvida com o ClientOM, voc est mandando essa requisio

    em formato XML para o Client.svc, queir enviar para o servidor processar. U-ma vez processado, o Client.svc empaco-ta o resultado em um XML e devolve pa-ra o Client OM no formato JSON( JavaScript Object Notation). A figura 2ilustra bem esse trfego de informaesentre sua aplicao cliente e o servidor.

    Evidentemente que voc, como um de-senvolvedor, no precisa saber o que es-t acontecendo por trs de tudo que suaaplicao est realizando, entretanto, sa-

    bendo do fluxo da informao e da ma-neira que suas requisies so processa-das, voc consegue ter uma idia mais

    ntida da eficincia do Client OM.

    Voc pode estar se perguntando, antesde qualquer coisa, o que eu consigo fazercom o Cliente OM? Um exemplo: vocconsegue ter acesso Site Collection, Si-tes, Listas, Itens das Listas, Views, ListSchemas, Arquivos, Pastas, WebParts,Segurana, Content Types, Site Templa-

    tes e operaes do Site Collection. Bemcompleto, no?!

    Client Object Model

    Como foi dito acima, voc pode desenvol-ver, utilizando o Client OM, de trs dife-rentes maneiras: com .NET, Silverlight ou

    ECMAScript. A tabela da figura 3 mostraque a diferena de sintaxe entre as trsmaneiras de programao muito sutil,enaltecendo a consistncia nodesenvolvi-mento e facilitando, assim, a vida do pro-fissional.

    Percebam que nos quadros que utilizam oClient OM podemos notar a presena deuma nova classe, chamada ClientContext.Esse o cerne do desenvolvimento quan-do o assunto Client OM e vamos vercom mais detalhes.

    ClientContext

    ClientContext a classe utilizada na pro-gramao de aplicaes cliente onde pas-sam todas as requisies da sua aplicao. atravs do ClientContext que voc defi-ne qual o site que est sendo acessado porsua aplicao, quando voc passa a URLcomo atributo na construo do objeto.

    O exemplo de cdigo da listagem 1, escri-to em uma aplicao Console, demonstracomo utilizar o objeto clienteContext e a

    partir dessa chamada, como retornar osttulos de todas as listas de um determi-nado site.

    Figura 2 - Fluxo de informaes entre a

    Aplicao Cliente e o SharePoint 2010 atravsdo Client OM.

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

  • 8/3/2019 codificando 17

    14/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    14141414Ago / Set - 2010 |

    using (ClientConextclientContext = newCli-entContext("http://intranet.contoso.com")){

    //Retorna o Site CollectionSiteSiteCollection = clientContext.Site;

    clientConext.Load(SiteCollection);clientConext.ExecuteQuery();

    //Retorna o top level siteWeb site = clientConext.Web;clientConext.Load(site);clientConext.ExecuteQuery();

    //Retorna apenas os ttulos das listasclientConext.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);}

    Uma observao que deve ser feita nocdigo da listagem 1 - outra inovao noSharePoint 2010 - a utilizao da ex-presso lambda que estamos passandocomo parmetro para o objeto Client-Context. Essa expresso garante que oClient OM ir buscar toda a coleo delistas do site do contexto, no entanto re-

    tornar apenas os ttulos das listas, ouseja, o retorno um objeto muito maisleve. Alm disso, a utilizao da expres-so lambda permite que voc, desenvol-vedor, consiga buscar exatamente a in-formao que voc precisa.

    Nota: A classe ClientContext deriva daclasse ClientRuntimeConext, que, por

    sua vez, herda a interface IDisposable.Sendo assim, a ttulo de melhores prti-

    Client Object Model

    cas, recomendado que voc use a classeClientContext dentro da instruo using.

    RefernciasA primeira coisa que voc precisa fazerpara testar o cdigo acima adicionar du-as referncias ao seu projeto: Micro-soft.SharePoint.Client.dll e Micro-soft.SharePoint.Client.Runtime.dll. A pri-meira DLL a que contm as classes quevoc ir utilizar para desenvolver seu c-digo e a segunda a que contm toda algica de transporte da informao entrea aplicao cliente e o servidor SharePo-int.

    Autenticao

    Voc poder notar no cdigo includo noApndice 1 - mais completo - que nenhu-ma credencial foi fornecida em nenhummomento. Isso porque medida que oobjeto ClientContext estabelece uma cone-xo com o servidor, ele prprio gerencia aautenticao no portal, utilizando as cre-denciais do usurio local.

    Entretanto, quando voc estiver desenvol-vendo uma aplicao com o Client OMutilizando .NET (Windows Forms, Con-sole App, WPF) voc poder modificar o

    esquema de autenticao utilizando apropriedade ClientCon-text.AuthenticationMode e alternar entreautenticao annima ou atravs deforms-based authentication.

    Dependendo do modo de autenticaoespecificado, o Client OM chama o web-services de autenticao do SharePoint([...]/_ vti_bin / Authentication.asmx), emseguida, obtm e define um cookie queele usa para futuras chamadas.

    Listagem 1 - Classe ClientContext.

  • 8/3/2019 codificando 17

    15/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    15151515Ago / Set - 2010 |

    A mudana no esquema de autenticaos pode ser alterada nas aplica-es .NET. Quando voc estiver escre-

    vendo uma aplicao com ECMAScript,o Client OM ir autenticar usando a cre-dencial que estiver executando a pgina,no momento da chamada.

    Diferenas entre .NET/Silverlight & ECMAScript

    J que entramos no assunto, vamos falarum pouco mais sobre as principais dife-

    renas entre o desenvolvimento de apli-caes clientes utilizando .NET / Silverli-ght e ECMAScript.

    Para que ainda no est familiarizado, o ter-mo ECMAScript foi um termo cunhado pelaECMA International para definir o padroda linguagem de script utilizada nas aplica-es Web, para desenvolvimento no lado

    Cliente. O padro foi criado para que as em-presas responsveis pelas duas principaislinguagens de script (JavaScript e JScript)utilizassem esse padro e as aplicaes pu-desse rodar nos diferentes navegadores.Se voc tiver maior interesse pela histria dacriao do ECMAScript, poder encontrar apgina pesquisada nas referncias desse ar-tigo.

    A assinatura do mtodo poder serdiferente, assim como o construtordo ClientContext (ECMASCript:ClientContext URLRelativaDoSer-vidor). No ECMAScript esse cons-trutor leva uma URL relativa doservidor, mas na verso com o c-digo gerenciado desse construtor

    leva ou uma URL completa ou umaUri.

    Client Object Model

    Os dois modelos de objetos usamdiferentes tipos de valores de dados.O modelo de objeto do ECMAScript

    no tem um equivalente para todosos tipo de valores de dados do .NETFramework. ECMAScript se refere StringCollection como string[]. Poroutro lado, o ECMAScript tem ou-tros valores que o .NET Frameworkno tem, como por exemplo, o NaN(not a number), ou o infinito po-sitivo/negativo;

    O modelo de objeto do ECMAScriptpermite Forms Authentication, masvoc no pode especificar o meca-nismo de autenticao para se co-nectar ao servidor.

    Quando voc est criando um item eadicionando-o para uma coleo e-xistente, novas atualizaes no po-dem ser realizadas naquela coleoenquanto a consulta est sendo exe-cutada. Esta questo aplica-se quan-do estiver adicionando um item auma coleo, caso contrrio vriosclientes simultaneamente pode ler egravar os itens existentes dentro deuma coleo;

    Como parte da segurana em geral,voc no pode usar o modelo de ob-

    jeto ECMAScript em uma pginapara trabalhar com os dados do Mi-crosoft SharePoint 2010 Fundation amenos que a pgina contenha umform digest control, por exemplo;

    Voc, geralmente no pode compar-tilhar variveis atravs de escopos,

  • 8/3/2019 codificando 17

    16/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    16161616Ago / Set - 2010 |

    ento, por esse motivo, voc nopode usar padres de cdigos co-muns, tais como try/catch/finally;

    Algumas comparaes com case-insensitive no funcionam da mesmamaneira no cliente como funcio-nam no servidor. Algumas compa-raes no lado do servidor usam oWebSite local e para fazer a compa-rao, mas o cliente pode usar so-mente a cultura invariante para e-

    vitar round-trips frequentes. Share-Point Foundation 2010 no suportacomparaes case-in sensitive se oservidor estiver usando um WebSite local.

    Consideraes finais

    O Client Object Model mais uma ino-vao, dentro do pilar Composite , que o

    SharePoint 2010 trouxe. Essa nova abs-trao tem por objetivo facilitar o desen-volvimento de aplicaes cliente que ne-cessitam interagir com os dados armaze-nados no SharePoint 2010.

    Aplicaes que antes demandavam oconsumo dos WebServices do SharePo-int 2007 ou ainda, que demandavam a

    criao de novos WebServices para es-tender funcionalidades j existentes naAPI do SharePoint 2007, agora, na ver-so 2010 do produto, podem ser atendi-das escrevendo suas aplicaes utilizan-do o Client Object Model.

    Do ponto de vista da experincia do de-senvolvedor, a meta do time de enge-

    nharia do SharePoint 2010 era: consistn-cia, ou seja, que o desenvolvedor pudes-se ter uma curva de aprendizado muito

    Client Object Model

    branda, uma vez que a similaridade coma API do servidor muito grande.

    Referncias1. ECMA Internationalhttp://en.wikipedia.org/wiki/Ecma_International

    2. ECMAScripthttp://en.wikipedia.org/wiki/ECMAScript

    3. Code Snippets: Using the SharePointClient Object Model with External Listshttp://msdn.microsoft.com/en-us/library/ff464372.aspx

    4. Understanding the using statementin C#http://www.codeproject.com/KB/cs/tinguusingstatement.aspx

    5. JSON - Wikipedia, the free encyclope-diahttp://en.wikipedia.org/wiki/JSON

    6. Introduction to the Client OM in Share-Point 2010http://www.slideshare.net/benrobb/introduction-to-the-client-om-in-

    sharepoint-2010

    7. Developing with Data Technologies inSharePoint 2010 (Level 100)https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032442298&CountryCode=US

    8. Managed Client Object Modelhttp://msdn.microsoft.com/en-us/library/ee537247.aspx

  • 8/3/2019 codificando 17

    17/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    17171717Ago / Set - 2010 |

    9. Client Object Model | SharePoint 2010Developer Training Coursehttp://channel9.msdn.com/learn/courses/

    SharePoint2010Developer/ClientObjectModel/

    10. Using the SharePoint Foundation2010 Managed Client Object Model withthe Open XML SDK 2.0http://msdn.microsoft.com/en-us/library/ee956524(office.14).aspx

    11. SharePoint Connections - SharePoint2010 & Client Object Modelhttp://www.sharepointproconnections.com/article/sharepoint/SharePoint-2010-s-Client-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 pro-curar pela tag: Codificando_eMagazinee encontre todos os artigos consultadoscomo referncia para esse artigo.

    Apndices

    Apndice 1 Cdigo de uma ConsoleApplication.

    staticvoid Main(string[] args){

    try{

    //get the contextusing (ClientContext clientContext =

    new ClientContext("http://intranet.contoso.com"))

    Client Object Model

    {//get site collectionSite siteCollection = clientContext.Site;

    try{

    Console.WriteLine("Trying to readthe Site Collection URL");

    Console.WriteLine(siteCollection.Url);

    }catch

    (PropertyOrFieldNotInitializedException ex){

    Console.WriteLine("Failed to readthe Site Collection URL");

    Console.WriteLine(ex.Message);Console.WriteLine();

    }

    //Fill the Url PropertyConsole.WriteLine("Requesting the

    Site Collection URL from the server...");clientContext.Load(siteCollection);clientContext.ExecuteQuery();

    //Try to read againConsole.WriteLine("Slite Collection

    Url: " + siteCollection.Url);Console.WriteLine();

    //Get the SiteWeb site = clientContext.Web;

    //try to read the titletry{

    Console.WriteLine("Trying to readthe site title");

    Console.WriteLine(site.Title);}catch

    (PropertyOrFieldNotInitializedException x){

  • 8/3/2019 codificando 17

    18/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    18181818Ago / Set - 2010 |

    Console.WriteLine("Failed to readsite title");

    Console.WriteLine(x.Message);Console.WriteLine();

    }

    //Fill the Title PropertyConsole.WriteLine("Requesting the

    Site Collection Title from the server...");clientContext.Load(site);clientContext.ExecuteQuery();

    //Try to read Title nowConsole.WriteLine("Site Title: " +

    site.Title);

    //Get the list titleConsole.WriteLine();Console.WriteLine("Lists in this site");

    clientContext.Load(site.Lists);clientContext.ExecuteQuery();

    //Include titlesclientContext.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);

    Client Object Model

    }catch (ClientRequestException x){

    Console.WriteLine(x);}

    }

    Apndice 2 Cdigo de uma a-plicao Silverlight

    namespace Micro-soft.SDK.SharePointServices.Samples{

    publicpartialclass MainPage : UserControl{

    Web oWebsite;ListCollection collList;IEnumerable listInfo;

    public MainPage(){

    InitializeComponent();}

    privatevoid Button_Click(object sender,RoutedEventArgs e)

    {ClientContext clientContext = Client-

    Context.Current;oWebsite = clientContext.Web;ListCollection collList = oWebsite.Lists;

    clientContext.Load(oWebsite, web-site=>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);

    }

  • 8/3/2019 codificando 17

    19/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    19191919Ago / Set - 2010 |

    privatevoid onQuerySucceeded(objectsender, ClientRequestSucceededEventArgsargs)

    {UpdateUIMethod updateUI = Dis-

    playInfo;this.Dispatcher.BeginInvoke

    (updateUI);}

    privatevoid onQueryFailed(objectsender, ClientRequestFailedEventArgs args)

    {MessageBox.Show = "Request failed. "

    + args.Message + "\n" + args.StackTrace;}

    privatevoid DisplayInfo(){

    MyOutput.Text = "Title: " + oWeb-site.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;

    }}

    }

    privatedelegatevoid UpdateUIMethod();

    }}

    Client Object Model

    Apndice 3 Exemplo de cdigode uma aplicao ECMAScript

    var ClientContext;var site;

    function GetSiteButton_Click(){

    this.ClientContext = newSP.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());

    }

  • 8/3/2019 codificando 17

    20/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    20202020Ago / Set - 2010 |


    Client Object Model

    Rodolfo Roim

    Sou formado em Cincia da Computa-

    o pela Universidade de Marlia. Cur-

    sei 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 8anos, 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.

  • 8/3/2019 codificando 17

    21/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    21212121Ago / Set - 2010 |

    Developer DashBoard

    Durante o desenvolvimento de solues,ns desenvolvedores temos a preocupa-o de entregar solues funcionais, queestejam de acordo com os requisitos soli-citados. Apesar de me preocupar com o

    desempenho de minhas aplicaes, namaioria das solues comerciais que te-nho trabalhado o desempenho no umfator crtico.

    Dependendo do cenrio e se isso for umrequisito? Como obter informaes dediagnstico em suas solues no SharePo-int 2010?

    Justamente agora temos o Developer Da-shboard que traz um painel de informa-es de Tracing.

    Nesse artigo vou mostrar como habilitar oDeveloper Dashboard, como utilizar asAPIs para exibir suas informaes de Tra-cing e como exibir os resultados de pro-cessamento de sua pgina graficamente.

    Apresentao

    Gostaria de apresentar o Developer Dash- board, conforme podemos ver na Figura1:

    OBS.: Repare que a borda do Dashboard de cor verde, pois no contm asserts eeventos crticos. A mudana de cor sercomparada mais adiante.

    Analisando esse painel, podemos perce-ber que o lado esquerdo apresenta os e-ventos executados durante o processa-mento da pgina (http handler events) eseus respectivos tempos de execuo,enquanto que no lado direito temos um

    mix contendo informaes abrangentes etambm detalhes do mergulho da requi-sio, como por exemplo as queries envi-adas ao banco de dados.

    O interessante que os links revelam oCallstack da execuo e mais detalhes,de acordo com a figura 2:

    Por: Marcel Medina

    Figura 1 SharePoint 2010 DashboardDeveloper.

  • 8/3/2019 codificando 17

    22/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    22222222Ago / Set - 2010 |

    Durante a anlise da execuo de cdigo,os detalhes da Figura 2 so bem relevantespara a identificao de qualquer proble-ma.

    Ativao e desativao

    Por padro o Developer Dashboard novem habilitado e para exib-lo temos 3possibilidades. Utilizando:

    Cdigo .Net STSADM PowerShell

    Tambm temos 3 nveis de exibio doDashboard: On, Off e OnDemand. Onde:

    No nvel de exibio "On" o painelsempre ser exibido;

    Em "Off" ele desligado; Em "OnDemand" um cone adicio-

    nado pgina para exibio do pai-

    nel apenas quando solicitado.

    A figura 3 nos exibe tal cone:

    OBS: importante ressaltar que se o Dash-board foi habilitado utilizando OnDemand,somente Administradores do Site Collectione Owners tero acesso. Membros e Visitan-tes no visualizaro o cone. Em todas asativaes do Developer Dashboard utiliza-

    rei o nvel de exibio OnDemand, que nomeu ponto de vista o ideal.

    Cdigo .Net

    Podemos criar uma Feature que ative oudesative o Dashboard, ao invs de utilizarscripts. Dessa forma a ativao ou desativa-o pode ser feita diretamente pelo Site Col-lection Features.

    Crie um projeto no Visual Studio 2010 dotipo Empty SharePoint Project chamadoDeveloperDashboard. Escolha a opo pa-ra trabalharmos com uma Farm Solution.Seu projeto inicial deve estar semelhante Figura 4:

    Developer DashBoard

    Figura 2 Detalhes de uma query do banco dedados.

    Figura 3 cone do Developer Dashboard

    Figura 4 Projeto Inicial da FeatureDeveloperDashboard.

  • 8/3/2019 codificando 17

    23/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    23232323Ago / Set - 2010 |

    Adicione um Event Receiver Featureconforme exibido na Figura 5:

    A classe DeveloperDashboardEventRe-ceiver ser criada automaticamente, comos mtodos comentados. Adicione o se-guinte cdigo para ativao e desativaoda feature:

    Code Snippet

    publicoverridevoid FeatureActivated(SPFeatureReceiverProperties properties){

    SPWebService contentService = SPWebSer-vice.ContentService;

    contentService.DeveloperDashboardSettings.DisplayLevel = SPDeveloper-DashboardLevel.OnDemand;

    contentService.DeveloperDashboardSettings.Provision();}

    publicoverridevoid FeatureDeactivating(SPFeatureReceiverProperties properties){

    SPWebService contentService = SPWebSer-vice.ContentService;

    contentService.DeveloperDashboardSettings.DisplayLevel = SPDeveloper-DashboardLevel.Off;

    contentService.DeveloperDashboardSettings.Unprovision();}

    No final seu projeto deve ficar parecido como da figura 6:

    Compile e faa o deploy diretamente peloVisual Studio 2010 em ambientes de desen-volvimento. Para ambientes de produofaa o deploy via STSADM conforme figura7:

    No final nossa feature deve estar habilitadaconforme a figura 8:

    Developer DashBoard

    Figura 5 Adio de Event Receiver.

    Figura 6 Projeto Final da FeatureDeveloperDashboard.

    Figura 7 Deploy da feature em Produo.

  • 8/3/2019 codificando 17

    24/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    24242424Ago / Set - 2010 |

    Faa o download da soluo:http://cid-19bf2880e221bb9.office.live.com/self.aspx/.Public/DeveloperDashboard.zip

    STSADM

    Abra o command e digite o seguinte tre-cho para habilitar o Developer Dashboard:stsadm o setproperty pn developer-

    dashboard pv OnDemand

    Para desabilitar:stsadm o setproperty pn developer-

    dashboard pv Off

    OBS: A opo pv case-sensitive.

    Resultado (figura 9):

    PowerShell

    Uma outra possibilidade que temos a

    utilizao do PowerShell para a execuo

    de scripts.

    Para habilitar o Developer Dashboard:

    $dash =[Microsoft.SharePoint.Administration.SPWebService]::ContentService$settings = $dash.DeveloperDashboardSettings$settings.DisplayLevel =[Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::OnDemand$settings.Update()

    Resultado (figura 10):

    Para desabilitar:

    $dash =[Microsoft.SharePoint.Administration.SPWebService]::ContentService$settings = $dash.DeveloperDashboardSettings$settings.DisplayLevel =[Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::Off$settings.Update()

    Resultado (figura 11):

    Medindo performance e adicionan-do mensagens via Tracing

    Uma vez que o Dashboard est ativo, pode-

    Developer DashBoard

    Figura 8 Deploy da Feature DeveloperDashboard.

    Figura 9 Execuo dos comandos via STSADM.

    Figura 10 Execuo de script de ativao viaPowerShell.

    Figura 11 Execuo de script de desativao viaPowerShell.

  • 8/3/2019 codificando 17

    25/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    25252525Ago / Set - 2010 |

    mos prosseguir com a adio de mensa-gens no Tracing do SharePoint 2010. Con-forme j dito essa uma excelente manei-

    ra de voc medir a performance de seucdigo e adicionar mensagens customiza-das para monitoramento.

    Para medirmos o tempo do trecho de cdi-go que temos a inteno de monitorar, de-vemos utilizar a classe SPMonitoredSco-pe. Essa informao ser disponibilizadano lado esquerdo do Dashboard.

    Para adicionarmos mensagens de log,warnings ou assert messages utilizaremosa classe SPCriticalTraceCounter. Essa in-formao ser disponibilizada no lado di-reito do Dashboard, e um link estar a dis-posio para visualizarmos os detalhes damensagem.

    OBS: O Callstack que se encontra nos de-

    talhes da mensagem pode adicionar al-guns Kb na pgina. Portanto fique atentoao crescimento da quantidade de mensa-gens customizadas que voc tiver, elas voaumentar o tamanho (Kb) de sua pginacaso o Dashboard esteja ativado.

    Adicione um novo projeto do tipo VisualWeb Part chamado Tracing. A soluo de-ve ficar parecida com a figura 12:

    No arquivo TracingWebPartUserCon-trol.ascx.cs adicione o cdigo listagem 1:

    Code Snippetusing System;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using Microsoft.SharePoint.Utilities;

    namespace Tracing.TracingWebPart{

    publicpartialclassTracingWebPartUserCon-trol : UserControl{

    protectedvoid Page_Load(object sender,EventArgs e)

    {// Utilizando classe para monitoramento

    do tempo de execuousing (SPMonitoredScope sc = newSP-

    MonitoredScope("LoadMeter"))

    { for (uint i = 0; i < 10; i++){

    // Adicionando mensagens customi-zadas

    SPCriticalTraceCoun-ter.AddDataToScope(i, "Loop For", 15, s-tring.Format("Mensagem monitorada - {0}", i-.ToString()));

    }

    }}}

    }

    Esse cdigo contm as duas classes SPMo-nitoredScope e SPCriticalTraceCounterconforme j comentamos. Vale ressaltar que

    o traceLevel (3 parmetro do mtodo Add-

    Developer DashBoard

    Figura 12 - Projeto da Web Part de Tracing.

    Listagem 1 - Classe TracingWebPartUserControl.

  • 8/3/2019 codificando 17

    26/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    26262626Ago / Set - 2010 |

    DataToScope) pode ser:

    1 Critical

    4 - Exception (Watson) 6 Assert 8 Warning 10 Unexpected 15 - Monitorable

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

    Veja o Dashboard, seu enquadramentono est mais da cor verde conforme Figu-ra 1. Temos a cor vermelha que mostraque temos asserts e eventos crticos ocor-rendo (no nosso caso as mensagens cria-das):

    Clique sobre uma das mensagens e observeque podemos ver os detalhes do Callstack eda mensagem (figura 15):

    Visualizao grfica

    Podemos incrementar o Dashboard com umgrfico de visualizao chamado DeveloperDashboard Visualizer criado por Jaap Vos-sers que consiste em um UserControl quefaz utilizao do JQuery para exibio doseixos eventos x tempos de execuo (ladoesquerdo do Dashboard).

    Esse projeto est disponvel no Codeplexpelo link: http://devdashvis.codeplex.com/

    Baixe o pacote wsp e instale-o utilizando oSTSADM, conforme a figura 16:

    Developer DashBoard

    Figura 13 Adio da Web Part de Tracing.

    Figura 14 Dashboard com Time Scope eMensagens adicionadas.

    Figura 15 Mensagem customizada exibida nosdetalhes

  • 8/3/2019 codificando 17

    27/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    27272727Ago / Set - 2010 |

    Os http handler events so exibidos ime-diatamente acima do dashboard:

    Concluso

    Nesse artigo vimos como habilitar o Deve-

    loper Dashboard do SharePoint 2010, vi-mos que informaes de diagnstico emensagens de tracing so exibidas no out-put da pgina ao browser que fez o re-quest. Tais informaes podem ajudar naclarificao de erros ou resultados indese-

    jados durante o processamento de sua so-luo no SharePoint 2010.

    Espero que esse artigo seja til.

    Developer DashBoard

    Figura 16 Ativando o Developer DashboardVisualizer

    Figura 17 Visualizao Grfica

    Marcel Medina

    Especialista em desenvolvimen-to .NET / SharePoint, atua como

    Consultor Microsoft nas tecno-logias citadas. Tambm Microsoft Trainer.Atualmente vive em Auckland, Nova Ze-lndia e gosta de esportes radicais, msicae games.Como desenvolvedor Snior coor-denou e participou de vrios projetos gran-des de desenvolvimento, incluindo os jogosPan-americanos Rio 2007 nas plataformasweb, windows e mobile.

    Possui 10 anos de experincia no mercadode TI e as seguintes certificaes: MCP,MCDBA, MCAD, MCSD, MCTS (incluindoWSS 3.0, MOSS 2007 e SharePoint 2010,Application Development), MCPD(Enterprise Application Developer e Share-Point Developer 2010) e MCT.

    Contato:

    [email protected]:http://www.sharepoint4developers.net

    http://www.canalsharepoint.com.br/marcelmedina

  • 8/3/2019 codificando 17

    28/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    28282828Ago / Set - 2010 |

    Governana no SharePoint 2010

    Introduo

    Este artigo abordar um assunto muito im-portante e na maioria dos casos deixado delado quando o assunto SharePoint - a"Governana". A Governana to essenci-al quanto qualquer item em um projeto, e,em muitos casos (ou maioria deles), fatorcrtico para o sucesso.

    Para falar de governana, o primeiro passoseria explicar qual o seu significado. Go-vernana o conjunto de funes, regras,diretivas, responsabilidades e processosque so utilizados para gerenciar e/ou con-trolar como a cooperao entre as divisesde negcios e as equipes de TI se relacio-nam a fim de cumprir com suas metas cor-

    porativas. E governana com SharePoint?Como funciona?

    Governana no SharePoint

    Primeiro precisamos salientar que cadacorporao tem suas necessidades espe-cficas. Isso pode variar, principalmente,de acordo com o tamanho das organiza-es. Desta forma podemos ter um nvelmaior ou menor de controle o que svezes pode levar a uma burocratizao

    de processos e eventuais atrasos se a cor-porao no estiver muito bem alinhada.

    Para a correta implementao de gover-nana no SharePoint 2010, a boa comuni-cao entre os stakeholders fundamen-tal. Ao designar uma comisso de gover-nana, devemos reunir os itens abaixo:

    Participantes executivos: os princi-pais executivos devem definir asmetas gerais da comisso de gover-nana, conceder-lhe autoridade eavaliar periodicamente o xito dasprticas e diretivas implementadas.

    Participantes financeiros: os direto-res financeiros devem assegurarque as regras e os processos de go-

    vernana ajudem a aumentar o re-torno sobre o investimento da em-

    Por: Rodrigo Romano

    Figura 1 - Estrutura da governana.

  • 8/3/2019 codificando 17

    29/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    29292929Ago / Set - 2010 |

    presa nos produtos e tecnologiasdo SharePoint.

    Lderes de TI: os lderes de TI de-vem ajudar a desenvolver as ofer-tas de servio e determinar o quedeve ser feito para desincumbir su-as responsabilidades com xito(por exemplo, prover segurana egarantir confiabilidade) enquantodo suporte aos recursos de que asequipes de negcios necessitam.

    Lderes de diviso de negcios: oslderes de negcios representam asequipes que fazem o trabalho prin-cipal da empresa e geram os requi-sitos funcionais e arquiteturais deimplantao do SharePoint Server2010. Eles devem colaborar com osarquitetos para determinar os pa-dres de arquitetura de informa-es e taxonomia organizacional daempresa. Alm disso, h a necessi-dade de que colaborem com a cria-o dos contratos de nvel de servi-o e de outras diretivas de suporte.

    Arquitetos da informao ou taxo-nomistas: os membros desses gru-pos possuem ampla experincia no

    planejamento e design de sistemasde informaes e taxonomias. Com

    base na anlise das necessidades deinformaes dos pblicos-alvo, elesdesenvolvem planos que do su-porte aos objetivos organizacionaise definem a arquitetura e navega-o de sites.

    Responsvel pela conformidade: agovernana envolve a certeza de

    Governana no SharePoint 2010

    que a empresa est dentro dos re-quisitos regulatrios e legais, e deque ela gerencia seu conhecimento

    corporativo. Caso a sua empresapossua funes responsveis por su-pervisionar tais questes, inclua re-presentantes dessas disciplinas nacomisso de governana.

    Lderes de desenvolvimento: os lde-res na organizao de desenvolvi-mento de software devem ajudar a

    determinar quais ferramentas depersonalizao devem ser permiti-das, como verificar a segurana docdigo e outras prticas recomenda-das relacionadas ao cdigo.

    Profissionais de informaes: osmembros da sua organizao querealizam um trabalho dirio paraajudar a garantir que a arquiteturadas informaes e os servios doSharePoint Server 2010 atendero ssuas necessidades.

    Treinadores: os especialistas em ins-truo devem ser responsveis pelodesenvolvimento de um plano detreinamento e conduzir todo o trei-namento e educao apropriados.

    Aps termos os papis definidos e distri-budos, ou seja, com a comisso de gover-nana montada, devemos relacionar al-guns conceitos tcnicos do SharePointcom os elementos disponveis na organi-zao.

    Antes de qualquer coisa, precisamos en-

    tender e estabelecer os conceitos para u-ma instalao de SharePoint bem sucedi-da.

  • 8/3/2019 codificando 17

    30/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    30303030Ago / Set - 2010 |

    Arquitetura da Informao

    Arquitetura da Informao a arte e acincia de estruturar e organizar ambien-tes de informao para ajudar as pessoasa satisfazerem suas necessidades de in-formao de forma efetiva (Toub,2000). Mas o que isso quer dizer? Signifi-ca que devemos dispor as informaesde forma que fiquem acessveis para ousurio, questes como navegabilidade,organizao e clareza de forma que o u-surio atinja os seus objetivos de forma

    rpida, eficiente e agradvel.

    Relacionado SharePoint, uma avaliaodetalhada da arquitetura da informaoem uma empresa ajuda a identificar asineficincias, como as seguintes:

    O uso inconsistente de metadados,o que pode dificultar a pesquisa e a

    comparao de contedo e dadosrelacionados.

    Um armazenamento de contedocriado e gerenciado de forma ina-dequada, o que pode gerar vriasverses de documentos, sem ne-nhum meio de identificar a versooriginal.

    Um armazenamento de dados pre-cariamente catalogados e gerencia-dos, fazendo com que tomadoresde decises localizem e confiem emdados equivocados.

    Uma navegao de portal mal pro-jetada ou informaes apresentadas

    de forma inadequada, dificultandoa localizao de sites e informaesimportantes.

    Governana no SharePoint 2010

    Servios de TI que hospedam oSharePoint Server

    O SharePoint Server 2010 inclui muitosrecursos novos que devem ser tratadospor um plano de governana eficiente.Entre esses, esto:

    Uma nova arquitetura de aplicativode servios, incorporada no Micro-soft SharePoint Foundation 2010,que substitui o modelo SSP.

    Melhorias no backup e restaurao.

    Multitenancy , que cria um genunoambiente de hospedagem e viabilizao compartilhamento dos recursos deservio entre clientes (locatrios) aomesmo tempo que particiona os da-dos com base nas inscries no site.

    Contas gerenciadas que automati-zam as mudanas de senhas.

    O Windows PowerShell, a nova inter-face de linha de comando e lingua-gem de script, foi projetado especifi-camente para administradores desistema.

    Se voc no tiver um plano de governan-a, o crescimento rpido e descontroladode servidores Web, gerenciados individu-almente, que executam o SharePoint Ser-ver pode ter resultados imprevisveis, co-mo:

    Servidores isolados hospedando umgrupo mal organizado de sites que

    no possuem ndice de pesquisa, na-vegao ou esquema de seguranaem comum. Se voc deseja dar su-

  • 8/3/2019 codificando 17

    31/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    31313131Ago / Set - 2010 |

    porte criao de sites pessoais,precisa de um plano que inclua adisposio de contedo e o arqui-

    vamento de sites.

    Servidores hospedando aplicativosque no so seguros, o que podecomprometer a integridade do con-tedo.

    Solicitaes de suporte tcnico paraservidores locais que esto execu-

    tando o SharePoint Server sem oconhecimento da equipe de supor-te.

    Atividades essenciais, como confor-midade normativa, que talvez se-

    jam administradas de modo incon-sistente entre servidores.

    Atividades regulares de manuten-o, como backup e restaurao dedados e instalao de atualizaesde produto, que talvez no sejamexecutadas devido ao treinamentoinadequado ou inconsistncia naconfigurao dos servidores.

    Alteraes nas propriedades do siteque levantam dvidas com relao

    propriedade do contedo ou queprovocam o bloqueio de sites.

    medida que o uso do SharePoint Ser-ver 2010 aumentar na empresa, o depar-tamento de TI dever implementar umconjunto de servios de hospedagem

    bem controlado que torne o SharePointServer 2010 disponvel e que administre

    o seu uso e configurao. (Microsoft)

    Governana no SharePoint 2010

    Com todos os recursos e facilidades que oSharePoint fornece, uma de suas maiorescaractersticas pode se tornar exatamente

    um dos maiores viles se no tratado /gerenciado de forma correta: a Personali-zao.

    Por exemplo, recursos como formulrios,Business Inteligence , Fluxos de Trabalho,ECM (Enterprise Content Management Gerenciamento de Contedo) so alta-mente customizveis e por isso se tornamfocos de ateno quando falamos de go-vernana. (Para mais informaes, consul-te o WhitePaper Diretiva de personaliza-o de Produtos e Tecnologias do Share-Point (http://go.microsoft.com/fwlink/?linkid=92311&clcid=0x416)).

    Nota: o ambiente de desenvolvimento omuito crtico e como existem muitos re-cursos customizveis e recursos que po-

    dem permitir acesso diretamente ao hard-ware e outros componentes essenciais,devemos ter uma ateno especial.

    Devemos definir, por exemplo, se o usodo SharePoint Designer 2010 ser permiti-do. Se for, devemos definir, tambm, oque poder ser acessado e por quem. Este um ponto de ateno pensar o que efeti-

    vamente vamos ganhar ou perder comesse recurso. J atuei em algumas empre-sas onde este recurso estava desativadopara todos os usurios e com isso com-prometia diretamente os prazos duranteuma entrega, at porque tudo o que erapermitido era somente as funcionalidadesnativas.

    Nota: uma gesto correta aquela queconsegue englobar a maior parte dos re-cursos sem fazer com que a essncia da

  • 8/3/2019 codificando 17

    32/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    32323232Ago / Set - 2010 |

    ferramenta seja perdida por um excessode controle. Normalmente excessos a-contecem por falta de conhecimento do

    time ou da equipe responsvel por toma-da de decises.

    Outro ponto muito importante, quandose trata de desenvolvimento para Share-Point, so as boas prticas de desenvol-vimento. (Para saber mais sobre boasprticas utilizando o SharePoint, consul-te: http://technet.microsoft.com/en-us/

    office/sharepointserver/bb736746.aspx).

    A prpria Microsoft disponibiliza ferra-mentas para checagem do cdigo desen-volvido para saber se os recursos estosendo utilizados de forma correta e acorreta liberao dos mesmos esto sen-do efetuadas. (Umas destas ferramentas o SPDisposeChecker-http://code.msdn.microsoft.com/SPDisposeCheck).

    Assim como o desenvolvimento, os tes-tes do que foi desenvolvido igualmenteimportante. Devemos pensar em ambi-entes de desenvolvimento, homologa-o, produo, de forma a permitir uma

    bateria de testes e fazer com que a solu-o seja segura e confivel.

    Alm disso, existem outros recursos quedevem entrar no plano de governana:

    Marca (Branding) Um recurso cada vezmais falado atualmente, um conjuntoformal de diretivas de identidade visualdeve ser criada para fazer com que todosos sites utilizem consistentemente ima-

    gens, fontes, temas e outros elementosde design.

    Governana no SharePoint 2010

    Treinamento Por mais fcil que o Share-Point seja para alguns usurios, para ou-tros pode ser uma tarefa realmente desafi-

    adora fazer a administrao correta dossites do SharePoint. Alm disso, algumasdiretivas de governana podem exigiruma explicao adicional. Lembrandoque um portal de colaborao tende a serum amigo dirio e somente com o trei-namento necessrio na ferramenta ousurio se sentir plenamente confiante autilizar e explorar os recursos de forma

    que melhor lhe atenda e satisfaa suasnecessidades.

    Permissionamento

    O SharePoint, como todos j sabem, u-ma ferramenta que visa a produtividade ecada vez mais se estabelece/ganha merca-do por ser mais que uma ferramenta, esim um framework baseado em produti-

    vidade e voltado s solues aderentesaos negcios.

    O SharePoint possui um modelo muitobom e intuitivo de gerenciamento de per-misses e nveis de acesso.

    Com isso, podemos definir as permissesalinhadas cultura organizacional. Para

    isso, precisamos ter definido quais pap-is/funes devem ser centralizados deforma que o controle do ambiente sejamantido.

    Concluso

    Analisando os pontos apresentados nesteartigo, percebe-se a tendncia do mercado

    atual de utilizar cada vez mais a platafor-ma software mais servios (SAAS). Quan-do se trata de um produto to extenso

  • 8/3/2019 codificando 17

    33/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    33333333Ago / Set - 2010 |

    quanto o SharePoint 2010, a governanase torna um item cada vez mais essenci-al.

    Devemos seguir este artigo como base eexplorar os diversos pilares da ferramen-ta analisando suas dependncias e recur-sos de forma a gerenciar corretamente oambiente e fornecer um suporte adequa-do plataforma.

    Referncias

    Microsoft. (s.d.). Viso geral sobre a gov-ernana (SharePoint Server 2010). Acessoem 27 de 06 de 2010, disponvel em Mi-crosoft Technet:http://technet.microsoft.com/pt-br/library/cc263356.aspxToub, S. (2000). Evaluating Information

    Architecture.

    http://technet.microsoft.com/pt-br/library/cc263031.aspx

    http://technet.microsoft.com/pt-br/library/cc263356.aspx

    Governana no SharePoint 2010

    Rodrigo A. Romano

    Moderador dos fruns Te-chnet BR voltados ao Share-

    Point, membro ativo da co-munidade MSDN e colunis-

    ta da maior comunidade de SharePo-int do Brasil (CanalSharePoint). Atuaem diversos projetos pelo Brasil emempresas de pequeno, mdio e grandeporte, bem como a disseminao doconhecimento, sendo instrutor em pro-gramas como o Microsoft Students 2

    Business em parceria com os MicrosoftInnovation Centers.

    Utiliza as tecnologias Microsoft, emespecial o SharePoint. Seguindo asmelhores prticas recomendadas, atuadesde a instalao at o desen-volvimento e customizao desolues.

    Twitter: @Rodrigo_Romano.

  • 8/3/2019 codificando 17

    34/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    34343434Ago / Set - 2010 |

    List Definition e Content Types no

    SharePoint 2010

    Viso Geral

    As tecnologias SharePoint, tanto a versogratuita, que acompanha as licenas deWindows Server (SharePoint Foundation2010) como a verso licenciada parte(Microsoft SharePoint Server 2010), vemganhando destaque cada vez maior nomercado de Tecnologia da Informaonos ltimos anos. Isso, graas a boa ado-o da sua verso anterior, o WindowsSharePoint Services (WSS) 3.0 e o Micro-soft Office SharePoint Server (MOSS)2007.

    Com lanamento recente da nova versodo produto (SharePoint 2010), percebe-mos, logo de cara, uma forte adoo danova plataforma. Foram feitas inmerasmelhorias, desde performance at recur-sos atuais que o mercado exige, inclusive,com grande foco s Redes Sociais. Ob-viamente que direcionado para o ladocorporativo.

    Este artigo traz uma definio de comopodemos utilizar melhor o potencial queo SharePoint nos proporciona. Vou abor-dar dois recursos que devem ser utiliza-dos quando estivermos Arquitetando ePlanejando nossas aplicaes baseadono SharePoint. So eles: List DefinitioneContent Types.

    Content Types e List Definition

    Um Tipo De Contedo (Content Type) uma coleo reutilizvel de metadados(colunas) para uma categoria de itens oudocumentos em uma biblioteca de docu-mentos ou lista do SharePoint 2010. Ti-pos de contedo permitem que voc ge-rencie as configuraes para uma catego-ria de informaes de maneira centrali-zada e reutilizvel.

    Pense no seguinte: Voc possui uma listado SharePoint com o nomeChamados. Nesta lista, tm -se trs

    tipos de Chamados. Nvel I, Nvel II eNvel III. Cada um destes tipos possuium conjunto de informaes comparti-lhadas (por exemplo, Descrio do Cha-mado) e algumas informaes especfi-cas de cada tipo (por exemplo,Assigned To e/ou Abrir chamado comfabricante?).

    Ento, podemos criar trs Tipos DeContedo para esta lista, onde compar-tilhamos as informaes gerais e adicio-nais a cada tipo, a sua definio especfi-ca.

    Atrelado isso, criaremos um ListDefi-nition que ir conter estes trs Tipos deContedo. Assim, teremos disponvel no

    site um modelo de lista que j contemplaestes Tipos de Contedo.

    Por: Thiago Silva

  • 8/3/2019 codificando 17

    35/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    35353535Ago / Set - 2010 |

    Vamos ver como isso funciona na prtica:

    Nota: No final do documento, esto os s-

    creenshots do resultado dos passos queiremos realizar a seguir.

    Requisitos:

    Microsoft SharePoint 2010; Visual Studio 2010; SQL Server 2008; Windows 7 (ambiente de testes) ou

    Windows Server 2008;

    Crie um projeto SharePoint ListDefinition

    1. Inicie o Visual Studio 2010, clique emFile , aponte para New , e ento cliqueem Project.

    2. Na janela de dilogo New Project , naseo Installed Templates , clique em

    Visual C# , clique em SharePoint e, emseguida, clique em 2010.

    3. Clique em List Definition. Na caixa Na-me, digite Chamados e, em seguida, cli-que em OK.

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

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

    5. Na tela seguinte, devemos dar o DisplayName e selecionar qual Tipo de List Defi-nition o nosso novo List Definition irherdar suas caractersticas. Neste caso,iremos selecionar Custom List , e em se-guida, clique em Finish (figura 3).

    Nota: Deixe marcada a caixa de seleo paraadicionar uma instncia de lista baseada no

    nosso List Definition ao seu site, assim que

    List Definition e Content Types no SharePoint 2010

    Figura 1 - Template de Novo Projeto.

    Figura 2 - Wizard para especificar nvel desegurana e site para depurao.

    Figura 3 - Wizard para definir nome e tipo da listaque iremos criar.

  • 8/3/2019 codificando 17

    36/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    36363636Ago / Set - 2010 |

    a feature for ativada. Ou seja, ao ativar aFeature, ser criada uma lista automatica-mente no site.

    6. No Solution Explorer , expandaListInstance1 e abra o arquivo Ele-ments.xml (figura 4).

    7. Dentro do elemento do ListInstancemude o Title para Chamados e mude oTemplateType para 10002 conforme lis-tagem 1.

    Nota: Estas so as configuraes da lista(instance) que ser criada ao ativar a Featu-re. Perceba, por exemplo, que j podemos

    especificar qual ser a url de acesso a lista(figura 5).

    8. No Solution Explorer, abra o Ele-ments.xml.

    9. Dentro do elemento ListTemplate , mudeo Type para 10002 e adicione o atributoDisallowContentTypes="FALSE" , comolistagem 2:

  • 8/3/2019 codificando 17

    37/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    37373737Ago / Set - 2010 |

    Sequence="410"DisplayName="Chamados - ListDefini-

    tion"Description="My List Definition"Image="/_layouts/images/itgen.png"/>

    10. Insira o XML (listagem 3) no topo doElements no arquivo Elements.xml. Es-te XML descreve o Content Type do I-tem do Chamado que a lista ir armaze-

    nar.

    11.Agora, insira o seguinte XML acima des-te da listagem 3. Este XML (listagem 4)

    contm os campos (colunas) que o Con-tent usar.

    List Definition e Content Types no SharePoint 2010

    Listagem 2 - Elemento ListTemplate.

    Listagem 3 - Arquivo xml.

  • 8/3/2019 codificando 17

    38/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    38383838Ago / Set - 2010 |

    Sim

    SimNo

    12.No Solution Explorer, abra o Sche-ma.xml conforme figura 6.

    13.Adicione o atributo EnableContentTy-pes="TRUE" para o elemento da Listadentro do arquivo Schema.xml.

    14.Insira o seguinte XML (listagem 5) den-tro do elemento ContentTypes no sche-ma.xml. Este XML descreve os tipos decontedo que a lista ir armazenar.

    List Definition e Content Types no SharePoint 2010

    Figura 6 - Solution Explorer mostrando o arquivoSchema do ListInstance.

    Listagem 4 - Arquivo xml. Listagem 5 - Arquivo xml.

  • 8/3/2019 codificando 17

    39/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    39393939Ago / Set - 2010 |

    15.Dever ficar conforme listagem 6, o ele-mento ContentTypes:

    16.Insira o XML (listagem 7) dentro do e-lemento Fields. Este XML descreve oscampos (colunas) que a lista ir armaze-nar. Estes campos esto diretamente re-lacionados aos ContentType que adicio-namos anteriormente. O elemento Fi-elds dever ficar como listagem 7:

    Sim

    SimNo

    17.No menu, cliquem em Build, e em segui-da, clique em Deploy Chamados (figura7).

    List Definition e Content Types no SharePoint 2010

    Listagem 6 - Arquivo xml.

    Listagem 7 - Arquivo xml.

    Figura 7 - Efetuando Deploy da Solution.

  • 8/3/2019 codificando 17

    40/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    40404040Ago / Set - 2010 |

    ScreenShots

    Template da lista (figura 8):

    Tipos de Contedo da Lista:

    Nvel I:

    Nvel II:

    Nvel III:

    List Settings Content Types eColumns:

    List Definition e Content Types no SharePoint 2010

    Figura 9: Tipos de Contedo que a lista possui

    Figura 10: Primeiro Tipo de Contedo

    Figura 11: Segundo Tipo de Contedo

    Figura 12: Terceiro Tipo de Contedo

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

    Figura 13 - Tipos de Contedo e Colunasadicionadas a nossa lista.

  • 8/3/2019 codificando 17

    41/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    41414141Ago / Set - 2010 |

    Site Columns

    Nota: Estas colunas ficam disponveis pa-ra que sejam adicionadas a outras listas dosite.

    Content Types

    Nota: Estes Content Types ficam dispon-veis para que sejam adicionados a outras

    listas do site.Concluso

    Neste artigo criamos um List Definitionque possui trs Content Types (que po-dem ser adicionados a outras listas semproblemas). Com isso, conseguimos pla-nejar e arquitetar melhor nossa implanta-o de uma aplicao baseado no SharePo-

    int 2010 Server, criando componentes reu-tilizveis e padronizados.

    Seguindo este modelo conseguimos aindaautomatizar processos de Deploy, criandolistas padronizadas e vinculadas a featu-res.

    Espero que o contedo deste artigo tenhasido to til para vocs como pra mim!

    At a prxima! Grande Abrao!

    Referncias

    http://msdn.microsoft.com/en-us/library/ms472236.aspx - Introduction to ContentTypeshttp://msdn.microsoft.com/en-us/library/ms415091.aspx - List Element (List)http://msdn.microsoft.com/en-us/library/ms460922.aspx - List Definition(Schema.xml) Fileshttp://msdn.microsoft.com/en-us/library/

    aa543822.aspx - Content Type IDshttp://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

    List Definition e Content Types no SharePoint 2010

    Figura 14: Colunas customizadas do Site.

    Figura 15: Tipos de Contedo do Site.

    Thiago Silva

    Bacharel em Cincias da Computao e

    colunista da maior Comunidade de Share-

    Point no Brasil (CanalSharePoint), con-

    sultor de Tecnologia da Informao a 6

    anos, focado principalmente em tecnologias Microsoft,

    com experincia em algumas tecnologias de outros fabri-

    cantes como Symantec, CA, RIM e outros. Nos ltimos

    dois anos vem se especializando nas Tecnologias Share-

    Point e .Net.

    Blog: http://thiagottss.spaces.live.com/blog.

  • 8/3/2019 codificando 17

    42/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    42424242Ago / Set - 2010 |

    BI no SharePoint 2010, uma evolu-

    o para seu Portal

    Antes de mais nada importante respon-der uma pergunta que muitos fizeram-nosnos eventos TechShare , que realizamos du-rante este ano.

    - O que BI (Business Intelligence)? Comoele hoje representado no mercado x tec-nologias SharePoint.

    Vamos partir deste ponto para que todospossamos entender sobre o que estou fa-lando antes sair escrevendo siglas, tcni-cas, ferramentas e etc.

    O grande desafio de todas as empresas tomar decises e, convenhamos, voc jtomou alguma deciso sem nenhuma in-formao? Resposta: claro que no. Este o

    comeo de tudo. Agora imagine a amplia-o deste cenrio? Uma empresa com 20funcionrios, 4 setores (RH, Projetos, Fi-nanceiro e Comercial) que fatura mais deR$ 120.000,00 (cento e vinte mil reais) porano.

    Observando algumas fontes comoSEBRAE, fiquei espantado em receber ainformao de que atualmente a maioriadas empresas que tem mais de 2 anos deexistncia no mercado, j se enquadram

    neste cenrio.

    Desta necessidade surgiu ento o concei-to de Business Intelligence.

    Os sistemas de BI atuais tm como carac-tersticas:

    Extrair e integrar dados de mlti-

    plas 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 conheci-mento empresarial;

    De forma resumida temos: Negcio +Informao + Tecnologia. Agora vemoutra pergunta: Onde todas estas infor-maes so apresentadas?. Acho que jsabem a resposta, certo? Numa interfacegrfica que fica de forma centralizada,onde todos possam acessar em seuPortal.

    Se estiver questionando: Mas, por que

    Portal?. Hoje por causa do internet, co-laborao, web 2.0 e todas as ferramen-tas ficam centralizadas e uma nica pala-

    Por: Bruno Velaz

  • 8/3/2019 codificando 17

    43/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    43434343Ago / Set - 2010 |

    vra, Portal, um local onde todos os cola-boradores possam acessar seus sistemas,notcias e contedos da sua empresa. E

    porque no um portal de indicadorespara facilitar tomada de decises?

    Veja a Figura 1, e entenda a idia de umportal.

    Hoje em dia muito difcil para umaempresa conseguir sobreviver sem algu-ma ferramenta de BI. Elas necessitammais do que nunca de um sistema de su-porte deciso eficaz e relevante, quetenha condies de gerir uma unidadede negcio de forma continuada paraquase todos os nveis ou reas da empre-sa. Por isso, para alguns setores comotelecomunicaes, bancos, seguros, car-tes de crdito ou outro tipo de negcioque envolva um volume muito grandede informao, o uso destas solues emBI torna-se cada vez mais essencial parasua sobrevivncia no mercado.

    BI no SharePoint 2010, uma evoluo para seu Portal

    A Figura 2 apresenta de forma esquemti-ca esta idia.

    O principal motivo de escrever sobre BI

    (Business Intelligence) quebrar o "tabu"de que somente as grandes empresas po-dem ter BI implantado e, irei explicar, co-mo podemos fazer isto.

    Agora vamos falar de SharePoint 2010?

    Quando falamos de BI no SharePoint es-tamos falando de um dos 6 itens da plata-

    forma, SharePoint Insights.

    SharePoint Insights foca em necessidadede entregar e compartilhar informaes, etransformar os dados, ou seja, informa-es para ajudar a direcionar o seu neg-cio.

    Veja a figura 3.

    Figura 1 - Portal.

    Figura 2 Portal e BI no SharePoint 2010.

  • 8/3/2019 codificando 17

    44/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    44444444Ago / Set - 2010 |

    Agora deve estar pensando, quais so ospontos que a Microsoft focou nestetem da plataforma? A respostaencontramos na Figura 4.

    Agora que temos uma grande viso deobjetivo do BI, Portal e sobre a nova pla-taforma de SharePoint 2010. Farei algu-mas comparaes para que possamosentender ainda mais o que mudou naarquitetura, de forma singular.

    Entendendo as arquiteturas

    2007 X 2010

    BI no SharePoint 2010, uma evoluo para seu Portal

    Note que a Figura 5, na arquitetura doSharePoint 2007 temos o SSP (Shared Ser-vice Provider) onde existem os servios

    interligados a ele como: Search, Excel Ser-vices, User Profiles, BDC. Ainda temos oProject Server, InfoPath, WSS e"aplicaes clientes" para demonstrar aarquitetura do SharePoint 2007.

    O que mudou? Vejam todos ospontos abaixo:

    Shared Services Provider (SSP) notem mais. Tudo orientado a Servi-o de aplicao.

    Existem servios novos.

    i. InfoPath Service agregado.ii. Word Conversion serviceiii. Power Point BroadCast Service

    Figura 3 Plataforma SharePoint 2010.

    Figura 4 Foco do SharePoint Insights.

    Figura 5 Arquitetura SharePoint 2007.

    Figura 6 Arquitetura do SharePoint 2010.

  • 8/3/2019 codificando 17

    45/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    45454545Ago / Set - 2010 |

    iv. Web Analystics Servicesv. Visio Graphics Servicesvi. Access Services

    vii. Managed Metadataviii. PerformancePoint agregado.

    Ainda temos novas integraes.

    a) FAST 2010. b) Office Web App Service

    Novas aplicaes clientes

    a) Visio b) Accessc) SharePoint WorksPace

    Desta forma, pode-se obter um breve re-sumo das mudanas da arquitetura doSharePoint 2010.

    Prtica - BI, no SharePoint2010

    O objetivo at agora era que todos queconhecem ou no a tecnologia SharePo-int, mesmo sendo um entusiasta de qual-quer tecnologia pudesse entender que narealidade qualquer empresa ou profis-sional, pode implantar BI no seu portalutilizando o SharePoint, e ainda maiscom a nova tecnologia SharePoint 2010.

    Imagine uma pgina em seu site com in-formaes provenientes de qualquer li-nha de aplicativos comerciais exibidosem um painel grfico com os dados atu-alizados e com capacidade de mostrar osdetalhes e filtrar de qualquer jeito quevoc precise ou goste. O responsvel poresta interatividade a ferramenta Perfor-

    mancePoint. Achou emocionante? Entovoc vai adorar ver a Figura 7.

    BI no SharePoint 2010, uma evoluo para seu Portal

    O Microsoft PowerPivot (anteriormente

    conhecido como Gemini) oficialmenteatingiu o mundo com duas verses - umapara o SQL Server e o outro paraSharePoint. PowerPivot permite drill-down, filtrar e classificar em qualquercategoria de seus dados. Imagine o poderdo Excel Pivot Table agora dentro doSharePoint. Veja a Figura 8.

    J imaginou voc poder criar diagramas

    Figura 7 2 Exemplos - Painel de Indicadores eVisio em ao.

    Figura 8 Excel Services.

  • 8/3/2019 codificando 17

    46/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    46464646Ago / Set - 2010 |

    no Visio, como mapa estratgico da suaempresa? E indicar a porcentagem glo-

    bal de cada um? Ou at mesmo fazer o

    monitoramento da sua rede e atravs deum simples refresh da sua pgina saberse seu servidor est UP ou DOWN? Vejacomo seria na Figura 9.

    Gostaria de dar uma pequena sugesto.Olhar a ferramenta System Center ondetrazem muitas novidades sobre monito-ramento de ambientes atravs dos paco-tes de gerenciamento para cada platafor-ma.

    Consideraes finais - Est pre-parado para usar BI?

    Talvez um dos objetivos de estar lendoeste artigo, nada mais do que conhecertecnicamente a ferramenta, entretanto, seestiver lendo para entender melhor e po-der convencer sua chefia, gerncia, vice-presidncia ou at mesmo diretoria deque a plataforma BI do SharePoint im-portante a ser adquirida. Realmente en-tendendo sua preocupao. Eu talvez

    possa te ajudar com este artigo. Bom co-mece a pensar nestas respostas.

    BI no SharePoint 2010, uma evoluo para seu Portal

    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 umaferramenta de apresentao, agrega-o e transformao de dados?

    Peguei pesado? Prepare-se, vai ouvirmuito isto. Agora eu fao outras pergun-tas para voc!

    Sua empresa usa a informao de formainteligente?

    Estou levantando esta pergunta, simples-mente para saber se sua empresa est pre-parada para usar BI. A maioria das em-presas onde implantei BI em seus portaisno sabiam exatamente o que queriam,somente ouviram, leram que precisavamusar BI ou qualquer ferramenta os ajudas-sem a tomar decises.

    No se preocupe com que estou escreven-do. Se pensas que voc somente um es-pecialista e quer saber sobre tecnologia.

    Agora ainda pensando no foco de tentar

    implantar esta belssima ferramenta naempresa, comece a pensar em entendertodas as reas da empresa, principalmen-te reas crticas. Com certeza, por alique ir comear implantar BI no portal desua empresa ou em seu negcio.

    Muitos projetos de BI acabam mesmo an-tes de comearem, em funo dos custos.

    Mas esta linha de pensamento por partede alguns executivos um erro e, em

    Figura 9 Visio Services.

  • 8/3/2019 codificando 17

    47/62

    www.codificando.net

    Codificando.nete-maga

    zine

    e-magazine

    47474747Ago / Set - 2010 |

    muitos, casos o resultado aquele queconhecemos: a soluo mais barata fun-cionou por um perodo, mas no supriu

    as necessidades da empresa ao longo dotempo, e mais uma vez perdeu-se tempoe dinheiro.

    Deve estar pensando: Velaz, est me di-zendo que implantar BI caro?. Por favor,se interpretou desta forma, desculpe.

    O que quero dizer exatamente isto: to-

    da empresa pode implementar BI, s quepodem implementar conforme sua ne-cessidade, investimento e tempo.

    Ex: com muito pouco pode usar umpainel de indicadores na sua intranet in-dicando quantos contatos e o status deacompanhamento de respostas paracada um.

    Minha recomendao neste sentido o-lhar Business Intelligence no como umcusto, mas c