View
219
Download
0
Category
Preview:
Citation preview
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.
revista@codificando.net
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 Sallairevista@codificando.net"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:
marcel.net@sharepoint4developers.netBlogs: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
Recommended