p. 2
sumário edição 17 número 17 ano 04 2010 editores alexandre tarifa diego nogare emerson facunte fernanda sallai sergio gonçalves revisÃo fabrício lopes sanchez sara barbosa editoraÇÃo e diagramaÇÃo adriano almeida fabiano rodrigues colaboradores aline maia backer rosa bruno velaz marcel medina rodolfo roim rodrigo romano thiago silva wagner amorim 04 processo de upgrade e gração no sharepoint 2010 por mi aline maia 11 client object model por rodolfo roim 21 developer dashboard por marcel medina 28 governança no sharepoint 2010 por rodrigo romano fale com editor É muito importante para a equipe saber a sua opinião sobre a revista caso tenha alguma critica sugestão ou elogio entre em contato caso tenha interesse em publicar um artigo na revista envie o título e um resumo do tema em formato word revista@codificando.net 34 list definition e content types no sharepoint 2010 por thiago silva 42 bi no sharepoint 2010 uma evolução para seu portal por bruno velaz produzido por 48 sharepoint e plataforma azure soluções de integração por backer rosa www.codificando.net 56 redes sociais no sharepoint 2010 por wagner amorim 03 editorial 61 .close
[close]
p. 3
edição 17 número 17 ano 04 2010 editorial olá novamente a todos os leitores da revista codificando .net e-magazine é com prazer e alegria que abro o editorial desta 17ª edição apertem o cinto de segurança pois você está prestes a viajar pelo fascinante mundo do sharepoint mas antes começarei o editorial fazendo dois comunicados importantes infelizmente por motivos pessoais o leandro alves santos precisará se desligar do time da revista quero agradecê-lo pela colaboração e desejar boa sorte no seu caminho devido problemas de hospedagem o endereço do site da revista mudou para http www.codificandomagazine.com.br realizamos uma parceria entre as comunidades codificando.net e canal sharepoint agradeço principalmente ao wagner amorim que apoiou esse projeto e proporcionou aos leitores da codificando .net emagazine através de seu esforço em reunir autores de alto gabarito no que se diz respeito ao sharepoint a possibilidade conhecer ainda mais essa tecnologia e esse mundo tão envolvente e fascinante nesta edição teremos aline maia apresenta de forma simples sobre o processo de migração do sharepoint 2007 para o 2010 rodrigo roim explica sobre uma inovação na área de desenvolvimento de aplicações chamada client object model marcel medina demonstra como exibir os resultados de processamento de sua página graficamente através do developer dashboard rodrigo romano aborda sobre o significado da governança e seu uso junto ao sharepoint thiago silva mostra a utilização de dois recursos para quando estamos arquitetando e planejando nossas aplicações os list definition e content types bruno velaz relata da necessidade do business intelligence e sua utilização junto ao sharepoint backer rosa demonstra a integração entre a plataforma azure e sharepoint diante de todo esse conteúdo de qualidade elaborado por profissionais renomados e conhecidos da comunidade só me resta agradecer a sua participação leitor e desejar uma excelente leitura fernanda sallai revista@codificando.net o conhecimento é o processo de acumular dados a sabedoria reside na sua simplificação martin h fischer editorial
[close]
p. 4
e-magazine processo de upgrade e migração no sharepoint 2010 por aline maia não há como negar o sharepoint 2010 está sensacional a quarta edição da ferramenta e plataforma de desenvolvimento está mais madura e poderosa mantendo a mesma arquitetura básica baseada em páginas geradas dinamicamente a partir de parametrização em bancos de dados de conteúdo porém com a camada de serviços aplicacionais redesenhada e agora parte da versão foundation muitas novas funcionalidades estão disponíveis para os usuários e se por um lado as mudanças tornam o sharepoint 2010 ainda mais atraente para usuários finais podemos considerar que a onda de adoção iniciada pelo sharepoint 2007 nas organizações só tende a crescer liderando o quadrante mágico nos relatórios de análise do gartner que posicionam a microsoft como leader desde o lançamento da versão 2007 a sofisticação atingida pelo microsoft sharepoint 2010 contribui para que desenvolvedores e profissionais administradores de it tenham um ambiente ainda mais atrativo para suas soluções customizadas se com as mudanças de arquitetura iniciadas na versão 2007 o sharepoint passou a ser a ferramenta número um para a criação de portais de colaboração com grande adoção pelo mercado brasileiro e mundial na versão 2010 o produto atinge plena maturidade mas uma nova versão nos leva ao seguinte questionamento como as organizações que já adotaram o sharepoint 2007 estão se preparando para migrar para sharepoint 2010 um ambiente sharepoint 2007 estável e em produção é um bom candidato a migração para sharepoint 2010 e para nós profissionais da área fica ainda a pergunta qual a complexidade técnica de uma operação como esta apesar de ser possível optar pelo upgrade in-place de ambientes em que a nova versão é instalada diretamente na farm que possui a versão 2007 e mais comum em cenários de ambientes nãoprodução ou virtualizados por não permitir revertermos a operação nota-se que a estratégia mais utilizada é a de migração de dados ao optarmos por migração de dados uma nova farm sharepoint 2010 é criada e configurada antes de receber os dados existentes migrados através da restauração de backups dos bancos de dados de conteúdo uma das muitas vantagens deste método é a preservação das condições da farm original e a possibilidade de se realizar diversas simulações e testes dos procedimentos até a homologação e real migração do ambiente neste artigo iremos discutir o codificando.net e-magazine www.codificando.net ago set 2010 4
[close]
p. 5
processo de upgrade e migração no sharepoint 2010 e-magazine processo de migração de dados as fases desse processo e pontos de atenção não apenas do ponto de vista do administrador de it mas também do desenvolvedor por onde começar uma boa forma de iniciar a fase de planejamento da migração é executar o comando preupgradecheck ainda na farm 2007 para obter um relatório preliminar com possíveis fontes de problema e pontos de atenção que precisem ser trabalhados antes da efetiva migração para sharepoint 2010 o comando preupgradecheck está disponível na ferramenta ststadm a partir da versão sp2 mas recomenda-se que seja utilizada a versão disponível a partir do cumulative update de outubro de 2009 e a documentação detalhada para sua execução pode ser encontrada em http technet.microsoft.com/en-us library/cc287628office.14 aspx como a ferramenta não realiza nenhuma modificação na farm podemos executá-la em ambiente produtivo sem receios e obter a lista de site definitions site templates features e language packs em uso além de identificar quaisquer modificações nãosuportadas como alterações no schema do banco de dados e arquivos web.config com erros É importante que seja feito o inventário de todas as customizações existentes especialmente aquelas relacionadas a soluções wsp distribuídas controles webparts event handles masterpages e quaisquer outros binários que necessitarão instalação prévia também no novo ambiente para auxiliá-lo nesta tarefa você pode consultar o checklist disponível em http technet.microsoft.com/en-us library/cc287730office.14 aspx projetos de migração são ainda uma boa oportunidade de rever a necessidade de manter em produção dados e funcionalidades já obsoletos É importante prever junto às áreas usuárias e analistas de negócio envolvidos no projeto e eles devem fazer parte da equipe quais sites e site collections podem ser arquivados ou removidos além de identificar sites com problemas de funcionamento e contendo itens órfãos que possam ser apagados também é possível que algumas funcionalidades até então não existentes no moss 2007 e que demandaram a criação de código customizado como tag clouding webparts para exibição de vídeo controles de calendário e tantos outros exemplos possam ser depreciadas após a migração preparando a nova farm os passos para a preparação da nova farm podem ser encontrados com detalhes seguindo-se a documentação existente no microsoft technet http technet.microsoft.com/en-us/library cc287900office.14 aspx cabendo ressaltar a necessidade de finalizarmos os seguintes passos antes de proceder com a migração · refazer as configurações gerais da farm os administradores do ambiente deverão finalizar a configuração tais como na farm 2007 incluindo rever extensões de arquivos bloqueadas configurações de envio de e-mail logging bem como dos serviços aplicacionais em uso incluindo aqueles intro codificando.net e-magazine www.codificando.net ago set 2010 5
[close]
p. 6
processo de upgrade e migração no sharepoint 2010 e-magazine duzidos com o sharepoint 2010 É essencial que um guia de instalação seja gerado com todos os passos detalhados de forma que possa ser utilizado em cenários de disaster recovery como desenvolvedor você deve fornecer à área de administração e operação do ambiente todos os passos necessários para aplicação das customizações · recriar as web applications recrie as web applicartions pré-existentes sem deixar de configurar managed paths alternate access mappings e certifique-se de adicionar como conta gerenciada a conta de acesso ao content database a ser migrado certifique-se de optar pelo mesmo método de autenticação preliminarmente utilizado habilite ainda a opção self-service site creation caso esta estivesse em uso também na farm anterior durante o processo de criação da web application um novo banco de dados vazio será criado não é necessário preocupar-se com a nomenclatura utilizada para ele pois iremos removê-lo e apagá-lo antes de realizar a migração dos dados existentes após termos o novo ambiente instalado configurado e com as web applications anteriores pré-criadas podemos iniciar o processo de migração não é necessário criar site collections nas web applications recém-configuradas mas podemos fazêlo apenas para testar as configurações aplicadas após os testes de configuração remova a associação do banco de dados de conteúdo criado com a web apllication estaremos prontos para iniciar os testes de migração iniciando a migração com o backup full dos bancos de dados de conteúdo restaurados no novo servidor sql podemos testar mais uma vez a integridade e compatibilidade dos sites anteriores com o novo ambiente sharepoint 2010 dessa vez utilizando powershell e o cmdlet test-spcontentdatabase utilizando o sharepoint 2010 management shell execute o seguinte comando test-spcontentdatabase -name
[close]
p. 7
processo de upgrade e migração no sharepoint 2010 e-magazine tante interessante para testar o funcionamento do seu código após a migração e o feito de utilizá-lo no sharepoint 2010 ao executar o comando testspcontentdatabase no banco de dados de conteúdo deste cenário obtive uma lista de pontos de atenção descritos por exemplo na figura 1 banco de dados de conteúdo com a web application executaremos o seguinte comando mount-spcontentdatabase -name
[close]
p. 8
processo de upgrade e migração no sharepoint 2010 e-magazine guids para os sites/site collections durante o processo observem que não apenas um mas dois relatórios com informações sobre o processo são gerados por padrão em /14/logs · upgrade timestamp txt contém toda informação dos passos executados na migração incluindo erros e sucessos pode ser bastante extenso conforme o tamanho dos bancos de dados migrados · upgrade timestamp error.txt contém apenas as informações de erros durante o processo notem que algumas informações importantes classificadas como warning serão também listadas não apenas no arquivo com as informações completas como no resumo facilitando nosso processo de troubleshooting em meu exemplo há arquivos de site theming que não foram encontrados no servidor figura 3 migrados ou utilize o seguinte comando powershell upgrade-spcontentdatabase id
[close]
p. 9
processo de upgrade e migração no sharepoint 2010 e-magazine -lo em definitivo e a aplicação pode ser feita granularmente site a site ou de uma única vez para toda a site collection observe porém que páginas unghosted manterão suas modificações e será necessário utilizar a função reset to template através do sharepoint designer para aplicar o visual versão 2010 para os sites que possuem páginas com controles ou componentes não encontrados podemos receber mensagens de erro tais como a figura 5 rio garantir que as configurações dos serviços aplicacionais especialmente aqueles que dependam do conteúdo em questão como o search esteja de acordo com o cenário desenhado para a solução recomenda-se que tantos testes de migração sejam executados até que haja plena segurança de sua real execução ainda assim tenha um plano de rollback que pode incluir a manutenção do uso da farm moss 2007 preservada por mais algum tempo até a total homologação da migração a lista a seguir é um resumo de alguns kbs relacionados ao processo de migração que podem ser consultados para auxílio no troubleshooting e também para evitar problemas · 981495 you cannot upgrade from sharepoint 2007 to sharepoint 2010 on a server farm · 981487 error message when you try to upgrade a server farm to sharepoint foundation 2010 or to sharepoint server 2010 this upgrade session has been stopped · 980328 troubleshooting resources for issues that you may encounter when you upgrade to sharepoint server 2010 or to sharepoint foundation 2010 · 982575 the my links link disappears after you upgrade sharepoint server 2007 to sharepoint server 2010 · 982579 user modifications to the sharepoint content database error message when you upgrade a sharepoint server 2007 content database to sharepoint server 2010 · 981233 document conversions do ago set 2010 figura 5 mensagens de erro utilize o correlation id informado para localizar mais informações sobre o componente não encontrado no log de tracing do sharepoint uma outra dica para identificar componentes não encontrados é acessar a área de settings layouts/settings para verificar por webparts/contentypes nas galerias destes sites distribua os componentes não encontrados para o novo ambiente e as páginas passarão a ser exibidas corretamente passos pós-migração após a migração dos content databases ser concluída com sucesso será necessá codificando.net e-magazine www.codificando.net 9
[close]
p. 10
processo de upgrade e migração no sharepoint 2010 e-magazine not work after you perform an inplace upgrade to sharepoint server 2010 · 982249 you cannot start a sharepoint 2007 out-of-box workflow in sharepoint 2010 verifique sempre a lista de kbs mais recentes em http support.microsoft.com e muito sucesso em seus projetos de migração abraços e boa sorte aline maia trabalha na microsoft como premier field engineer com foco em atendimentos de casos sharepoint com experiência em desenvolvimento e suporte a sistemas é pós-graduada em engenharia de software foi recentemente aprovada nas provas beta de sharepoint 2010 configuração e administração além de ser microsoft certified technical specialist mcts em wss 3.0 e moss 2007 infra e dev e microsoft certified solution developer mcsd com provas que incluem desde vb 6.0 às diversas versões do .net framework acredita que um bom desenvolvedor deve estar preocupado com os aspectos relacionados à administração do ambiente sharepoint e vice-versa blog http alinefmrk.spaces.live.com não muito atualizado mas ainda ativo e twitter @alinefmaia codificando.net e-magazine www.codificando.net ago set 2010 10
[close]
p. 11
e-magazine client object model por rodrigo roim introdução as inovações que o sharepoint 2010 trouxe no último dia 12 de maio lançamento oficial da versão da plataforma são inúmeras tantas que torna difícil a tarefa de citá-las em um único artigo ou apresentação somente uma edição de uma revista para conseguir agrupar as principais inovações veja que eu não disse todas mas as principais juntas as mudanças no sharepoint 2010 começam pelo posicionamento do produto deixando de ser apenas um produto para ser considerado uma plataforma de desenvolvimento de aplicações de negócios e como tal o sharepoint 2010 inovou nas possiblidade de acessar as informações armazenadas em suas bibliotecas e listas dentre essas inovações uma delas é a implementação do restful onde o produto expõe para leitura apenas interfaces para sua aplicação consumir informações das listas e bibliotecas do sharepoint outra inovação na área do desenvolvimento de aplicações é o client object model assunto desse artigo uma composição de dlls que torna possível desenvolver aplicações client side com uma experiência muito próxima do desenvolvimento de aplicações para sharepoint 2010 server side com o client object model o desenvolvedor poderá desenvolver aplicações utilizando silverlight .net e ecmascript veremos exemplos de cada um dos tipos ao longo do artigo mas antes de começarmos por uma das tecnologias de desenvolvimento é necessário que saibamos o básico do client om client object model codificando.net e-magazine cenário atual suponha que você tenha uma demanda de desenvolvimento de uma aplicação que irá rodar no lado do cliente client side e essa aplicação deverá consumir e eventualmente inserir informações do seu portal sharepoint 2007 a única opção de desenvolvimento que existe é a utilização dos webservices do sharepoint 2007 localizados no diretório _vti_bin de cada site imagine agora que analisando os webservices já disponíveis você não encontra a funcionalidade que precisa para reago set 2010 www.codificando.net 11
[close]
p. 12
client object model e-magazine solver o seu problema cavando um pouco mais fundo você descobre que a funcionalidade existe mas não está exposta em nenhum webservice out of the box sua saída é criar novos webservices utilizando as apis do sharepoint e expor essas funcionalidades ou seja você precisa reinventar a roda pois tais funcionalidades já existem na api do sharepoint suponha ainda que você precise escrever uma interface web dessa aplicação utilizando alguma linguagem de script jscript javascript você sabe que consumir um webservices de uma aplicação javascript não é hoje uma tarefa fácil muito bem antes de você pedir demissão ou entrar em vias de fato com seu gerente leia esse artigo até o final porque cenários como o descrito acima não são raros de acontecer e a situação pode se repetir a qualquer novo projeto façamos uma pausa aqui para recapitular a maneira que costumávamos trabalhar esse desenvolvimento no sharepoint 2007 e como esse mecanismo todo funcionava o diagrama da figura 1 ilustra o funcionamento de uma chamada feita por uma aplicação cliente desenvolvida para interagir com um portal construído no sharepoint 2007 veja que a aplicação cliente tinha que instanciar um webservices para retornar ou incluir informações no sharepoint esse por sua vez fazia acesso às apis do sharepoint e então acessava as informações do sql server repositório de dados do produto figura 1 modelo de acesso aos dados armazenados no sharepoint 2007 sharepoint 2010 o client object model é uma camada de abstração para retornar resultados reconhecidos como objetos do sharepoint vamos melhorar o conceito com o cliente om você consegue desenvolver uma aplicação client utilizado uma api não mais um webservices com toda a riqueza de funcionalidades que a api do sharepoint oferece essa abordagem garante inclusive consistência para o desenvolvedor que pode desenvolver aplicações server da mesma forma que as aplicações clientes codificando.net e-magazine certo mas como isso tudo funciona voltemos ao cenário anterior antes de você pedir demissão onde você havia sido designado para desenvolver uma aplicação cliente que a princípio consuma informações de um site construído no sharepoint 2010 o que antes era limitado aos webservices agora você tem um novo serviço chamado client.svc que nada mais é um serviço wcf que reside no sharepoint 2010 e o client om é um proxy para esse serviço wcf sendo assim quando você reago set 2010 www.codificando.net 12
[close]
p. 13
client object model e-magazine quer alguma informação do servidor em sua aplicação desenvolvida com o client om você está mandando essa requisição em formato xml para o client.svc que irá enviar para o servidor processar uma vez processado o client.svc empacota o resultado em um xml e devolve para o client om no formato json javascript object notation a figura 2 ilustra bem esse tráfego de informações entre sua aplicação cliente e o servidor como foi dito acima você pode desenvolver utilizando o client om de três diferentes maneiras com .net silverlight ou ecmascript a tabela da figura 3 mostra que a diferença de sintaxe entre as três maneiras de programação é muito sutil enaltecendo a consistência no desenvolvimento e facilitando assim a vida do profissional figura 3 diferença entre as chamadas do modelo de objeto do sharepoint 2010 figura 2 fluxo de informações entre a aplicação cliente e o sharepoint 2010 através do client om evidentemente que você como um desenvolvedor não precisa saber o que está acontecendo por trás de tudo que sua aplicação está realizando entretanto sabendo do fluxo da informação e da maneira que suas requisições são processadas você consegue ter uma idéia mais nítida da eficiência do client om você pode estar se perguntando antes de qualquer coisa o que eu consigo fazer com o cliente om um exemplo você consegue ter acesso à site collection sites listas itens das listas views list schemas arquivos pastas webparts segurança content types site templates e operações do site collection bem completo não percebam que nos quadros que utilizam o client om podemos notar a presença de uma nova classe chamada clientcontext esse é o cerne do desenvolvimento quando o assunto é client om e vamos ver com mais detalhes codificando.net e-magazine clientcontext clientcontext é a classe utilizada na programação de aplicações cliente onde passam todas as requisições da sua aplicação É através do clientcontext que você define qual o site que está sendo acessado por sua aplicação quando você passa a url como atributo na construção do objeto o exemplo de código da listagem 1 escrito em uma aplicação console demonstra como utilizar o objeto clientecontext e a partir dessa chamada como retornar os títulos de todas as listas de um determinado site ago set 2010 www.codificando.net 13
[close]
p. 14
client object model e-magazine using clientconext clientcontext new clientcontext http intranet.contoso.com retorna o site collection site sitecollection clientcontext.site clientconext.loadsitecollection clientconext.executequery retorna o top level site web site clientconext.web clientconext.loadsite clientconext.executequery retorna apenas os títulos das listas clientconext.loadclientconext.web x x.lists.includel l.title wherel l.title null clientconext.executequery foreachlist list in site.lists console.writelinelists.title listagem 1 classe clientcontext cas é recomendado que você use a classe clientcontext dentro da instrução using referências a primeira coisa que você precisa fazer para testar o código acima é adicionar duas referências ao seu projeto microsoft.sharepoint.client.dll e microsoft.sharepoint.client.runtime.dll a primeira dll é a que contém as classes que você irá utilizar para desenvolver seu código e a segunda é a que contém toda a lógica de transporte da informação entre a aplicação cliente e o servidor sharepoint autenticação você poderá notar no código incluído no apêndice 1 mais completo que nenhuma credencial foi fornecida em nenhum momento isso porque à medida que o objeto clientcontext estabelece uma conexão com o servidor ele próprio gerencia a autenticação no portal utilizando as credenciais do usuário local entretanto quando você estiver desenvolvendo uma aplicação com o client om utilizando .net windows forms console app wpf você poderá modificar o esquema de autenticação utilizando a propriedade clientcontext.authenticationmode e alternar entre autenticação anônima ou através de forms -based authentication dependendo do modo de autenticação especificado o client om chama o webservices de autenticação do sharepoint vti_bin authentication.asmx em seguida obtém e define um cookie que ele usa para futuras chamadas uma observação que deve ser feita no código da listagem 1 outra inovação no sharepoint 2010 é a utilização da expressão lambda que estamos passando como parâmetro para o objeto clientcontext essa expressão garante que o client om irá buscar toda a coleção de listas do site do contexto no entanto retornará apenas os títulos das listas ou seja o retorno é um objeto muito mais leve além disso a utilização da expressão lambda permite que você desenvolvedor consiga buscar exatamente a informação que você precisa nota a classe clientcontext deriva da classe clientruntimeconext que por sua vez herda a interface idisposable sendo assim a título de melhores práti codificando.net e-magazine www.codificando.net ago set 2010 14
[close]
p. 15
client object model e-magazine a mudança no esquema de autenticação só pode ser alterada nas aplicações .net quando você estiver escrevendo uma aplicação com ecmascript o client om irá autenticar usando a credencial que estiver executando a página no momento da chamada diferenças entre .net silverlight ecmascript já que entramos no assunto vamos falar um pouco mais sobre as principais diferenças entre o desenvolvimento de aplicações clientes utilizando .net silverlight e ecmascript
[close]