Revista e-magazine - O SharePoint está lento?
Transcrição
Revista e-magazine - O SharePoint está lento?
Sumário 03 :. Editorial Edição 19 Número 19 Ano 04 10/11 EDITOR RESPONSÁVEL Cleber Dantas REVISÃO Sara Barbosa Sergio Gonçalves (Ganso) Erick Lopes EDITORAÇÃO E DIAGRAMAÇÃO Sara Barbosa Sergio Gonçalves (Ganso) CAPA Edjan Santos COLUNISTAS Alexandre Tarifa Luciano Palma COLABORADORES Aline Maia Elemar Júnior Fabian André Gehrke Fernanda Saraiva Pablo Hadler Sara Barbosa IDEALIZADORES Alexandre Tarifa Diego Nogare Por: Cleber Dantas 04 :. Coluna: Cultura XXI Por: Luciano Palma 07 :. O SharePoint está lento. O que eu faço? Por: Aline Maia 13 :. Como criar e gerenciar usuários na Central de Administração do Microsoft Online Services Por: Sara Barbosa 16 :. Habilitando PDF com Ifilter no SharePoint Server 2010 Por: Fernanda Saraiva 20 :. Como funciona o Windows Azure – O Hypervisor Por: Elemar Júnior 28 :. SharePoint 2010 - Administração Avançada com PowerShell Por: Fabian André Gehrke 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. [email protected] Produzido por: www.codificando.net 35 :. Ferramenta de desenvolvimento auxilia o programador .NET Por: Pablo Hadler 40 :. Coluna: .Close() Por: Alexandre Tarifa Edição 19 Número 19 Ano 04 2010 Editorial Caro leitor é com muito orgulho e entusiasmo que escrevo este editorial. EDITORIAL Estou orgulhoso por ter sido convidado pelo time do Codificando.Net para estar | frente de um projeto como a revista Codificando e-Magazine e ao lado de um time fant{stico que faz a revista acontecer a cada edição. O entusiasmo é grande pois sei de todo o potêncial da revista e do seu alcance junto a comunidade de desenvolvedores brasileiros, é uma grande responsabilidade e um grande desafio, a Codificando eMagazine é uma revista feita pela comunidade para comunidade e estar participando de um projeto como este me deixa realmente muito feliz. Meu nome é Cleber Dantas atuo no mercado de TI a mais de 7 anos e sou especialista em tecnologias de desenvolvimento Web, ministro palestras e mini-cursos dentro das comunidades Microsoft, j{ escrevi artigos para portais como Imasters, DevMedia e LinhaDeCodigo. Possuo algumas certificações como MCAD e MCTS. Hoje trabalho como coordenador de desenvolvimento do maior portal de Saúde e Bemestar da internet brasileira, o portal Minha Vida (http://www.minhavida.com.br) e agora tenho o orgulho de também ser o Editor da revista Codificando.Net e-Magazine. Começamos o ano anunciando um novo time de colunistas, além do Alexandre Tarifa e sua coluna .Close() teremos nesta edição Luciano Palma com sua coluna Cultura XXI e para as próximas edições mais dois grandes nomes da comunidade estarão conosco, são eles: Emerson Facunte e Rodolfo Roim. fantastico! Também quero deixar um recado para você leitor que tem interesse de colaborar com a revista de alguma forma, seja escrevendo artigos, nos ajudando com revisões técnicas, diagramações, arte, divulgação e etc. Por favor entre em contato através do email [email protected], a comunidade agradece! Que todos tenham um ótimo 2011 repleto de desafios e conquistas, agora apreciem o conteúdo desta edição que foi feita com muito carinho e dedicação pelo nosso time. Abraços, Cleber Dantas Editor Respons{vel Email: [email protected] Twitter: @cleberdantas e-magazine Coluna: Cultura XXI Luciano Palma é Palestrante e Consultor Estratégico de Redes Sociais, Novas Mídias e Tecnologia. Trabalhou mais de 8 anos na Microsoft do Brasil como Consultor e Evangelista Técnico, com a função de manter uma Comunidade de Influenciadores energizada e atualizada sobre as últimas tecnologias. Desde 2006 foi palestrante do Tech Ed Brasil, tendo realizado 9 palestras em 4 edições. Você pode acompanhar suas atividades pelo Blog (http:// lpalma.com) ou pelo Twitter (@lucianopalma) O convite do Tarifa para escrever esta coluna me pegou de surpresa. Depois vieram os sentimentos de felicidade, honra, orgulho e agradecimento. Agradecimento a ele pelo convite, mas também a toda a equipe que mantém a revista, com empenho e zelo em cada detalhe, para levar até você informação atual com qualidade - sem esquecer daqueles que contribuíram no passado para tornar a Codificando.Net eMagazine o que ela é hoje. Nesta coluna, Cultura XXI, discutiremos mudanças comportamentais que estão acontecendo no Século XXI, grande parte delas decorrentes dos incríveis avanços da tecnologia. Quando eu era criança (não vou entrar no mérito de datas), o desenho "Os Jetsons" era pura ficção. Os carros voavam, robôs substituíam humanos em tarefas repetitivas, e a videoconferência era coisa dos sonhos - ainda mais quando acontecia no relógio do George. Codificando.net e-magazine Ok, nossos carros ainda não voam (felizmente - imagine a sombra causada pelos congestionamentos), mas j{ podemos carregar no bolso aparelhos capazes de fazer videoconferência. E muito ainda est{ por vir! Com os novos recursos e - principalmente - com novos meios de conexão que eliminam a vari{vel "espaço" entre as pessoas, relacionamentos e comportamentos estão em fase de ajustes. Essa mudança est{ sendo introduzida em nossa cultura, e este ser{ o assunto principal desta coluna. www.codificandomagazine.com.br Dez / Jan - 10/11 | 4 e-magazine Coluna: Cultura XXI A evolução comportamental não se restringe aos relacionamentos pessoais. As empresas, e até os governos, estão tendo que se adaptar. Adotar novos canais e novas formas de comunicação não é mais opcional, e tudo indica que nas 9 décadas que restam do século, as relações profissionais tendem a mudar muito, tornando obsoleto o modelo hier{rquico atual, baseado em comando em controle. A interconexão entre pessoas criar{ uma força "anti-hierarquias", e a informação, assim como a ação, passarão a fluir em Rede. É nesse contexto de informação livre que convido você a participar desta coluna. Entre em contato com a revista e comigo através do canal que preferir, e exponha sua opinião, discorde, complemente, aprofunde. Essa é a din}mica do "socialcast", que deve servir de base para esta coluna e para os novos canais digitais. Ela avança sobre o modelo de "broadcast", onde um emissor gera a mensagem e os receptores a consomem passivamente. Em outras palavras, esta coluna também é sua, pois ela deve refletir a transformação da forma de se comunicar, de interagir e também de fazer negócios no século XXI. Sejamos todos bem-vindos! Codificando.net e-magazine Mais sobre o colunista: Professor do curso de pós-graduação do SENAC (Web: Estratégias de Inovação e Tecnologia), ministra disciplinas envolvendo Hipermídia, Sistemas Virtuais e Comércio Eletrônico. Ministrou também a disciplina "Redes Sociais, a Inovação Digital e suas Mídias" no curso de MBA da Faculdade Impacta: Planejamento e Estratégia de Negócios com Suporte da TI. Com 22 anos de experiência, é co-autor do “Guia de Consulta R{pida de TCP/IP” (Novatec, 2000) e do “Livro Intercon 2009” (Clube de Autores, 2009). www.codificandomagazine.com.br Dez / Jan - 10/11 | 5 e-magazine Codificando.net e-magazine www.codificandomagazine.com.br Dez / Jan - 10/11 | 6 e-magazine O SharePoint está lento. O que eu faço? Por: Aline Maia Introdução: Cenário do Caso O cliente implantou o Microsoft Office SharePoint Server 2007 SP2 para a criação de um portal intranet de colaboração e publicação de conteúdo. O portal consite de uma única Web Application, com uma única site collection definida e diversos subsites/webs. E quando digo “diversos”, falo de algo em torno de centenas de sites só no primeiro nível de subsites “filhos” do top-level na raiz da site collection. Por ser composto de uma única site collection, h{ também um único content database para todos os subsites (cerca de 60 GB no lançamento do portal). A empresa contratou um fornecedor para implementar o projeto, o que envolvia não só a adequação do padrão visual do portal (que usa template de publicação), como o desenvolvimento de novos componentes (webparts, controles de exibição de conteúdo e um novo menu de navegação) e o “design” do site principal, ou seja: edição das p{ginas e adição de webparts (não somente, mas inclusive usando “Content Web Parts” para escrita livre de conteúdo HTML). Como trata-se de um template de publicação, cada nova alteração gerava uma nova versão das p{ginas editadas no banco de dados de conteúdo; afinal, uma p{gina nada mais é que um item de uma biblioteca de p{ginas (a “Pages”, por padrão) neste tipo de template. Codificando.net e-magazine Como engenheira do suporte Premier Microsoft com foco em soluções SharePoint, não é tão incomum que eu receba esse tipo de questionamento. O artigo que escrevo nesta edição é inspirado justamente em um caso recente que vivi, em que o cliente estava insatisfeito por ter implantado um portal intranet desenvolvido com o SharePoint como plataforma (para substituir uma antiga solução feita em ASP), mas que estava “mais lento” que o site antigo! Era “mais bonito” e tinha “mais funcionalidades” mas, segundo a {rea de marketing (patrocinadora do projeto e cliente da {rea de TI - respons{vel pela implantação) , “invi{vel de ser utilizado pelos cerca de 3.000 funcion{rios da empresa pela lentidão ao carregar a p{gina principal”. Qual ser{ o problema? Resumindo: algumas customizações precisavam ser distribuídas como bin{rios (como as dlls do novo menu), outras foram incluídas direto no banco de dados de conteúdo (via browser e www.codificandomagazine.com.br Dez / Jan - 10/11 | 7 O SharePoint está lento. O que eu faço? SharePoint Designer). E o desenvolvimento era feito em um ambiente diferente do de produção, na empresa fornecedora, que necessitava entregar conteúdos (leia-se: backup do banco de dados de conteúdo) e códigofonte de bin{rios para o cliente. Como a data de lançamento do portal j{ havia sido definida, o prazo final de entrega estava próximo e ainda havia muitas atividades a cumprir, o Teste de Estresse foi sendo adiado. Quando foi finalmente executado, eis a surpresa: “o site estava lento”. O projeto foi para produção mesmo assim, mas decidiu-se de última hora adicionar dois novos servidores de Web Front End na farm para minimizar a percepção de lentidão pelos usu{rios. e-magazine para “levar a culpa”, mas realizar um trabalho científico para RESOLVER a situação (aqui, nenhuma vida est{ em risco). Se o “culpado” do problema é, por exemplo, uma DLL com memory leak, não podemos “apontar dedos” para o desenvolvedor. A capacidade de gerenciar conflitos e expectativas (ou seja, lidar com as pessoas) é muito importante nestes casos. Pra deixar bem claro: nesta analogia, o foco não é o “C” (de “Crime”), mas o “I” (de “Investigation”), ok? É claro que por questões de confidencialidade o nome do cliente est{ omitido, bem como todos os demais detalhes tanto do projeto como do meu trabalho na an{lise e correção dos problemas. Por isso mesmo este artigo Análise do Caso (ou “Brincando de CSI: Crime Scene Investigation”) não pode ser seguido “ao pé da letra” Como ajudar a identificar problemas, oportunidades de melhoria e agir em um caso como este? Costumo comparar o trabalho de suporte reativo ao realizado pelos personagens do seriado “CSI: Crime Scene Investigation”: chegamos | “cena do crime” para encontrar “o(s) culpado(s)” através da an{lise de “evidências e provas”, listando primeiramento os principais “suspeitos” que tenham “motivo e oportunidade” para agir. dar subsídios a vocês, leitores, para suas problema de lentidão, mas o objetivo é próprias investigações no estilo “CSI”. Reproduzindo o Problema Codificando.net e-magazine Mas, bem diferente do CSI, aqui os “culpados e suspeitos” NÃO são as pessoas, e sim itens de software e é muito importante que isso fique bem claro: não se trata de buscar pessoas como fonte de solução para qualquer A primeira ação foi, junto com o cliente, navegar pelo portal e procurar reproduzir o problema (ou, no estilo CSI, “visitar a cena do crime e refazer os passos da vítima”). Por GPO, o portal é a home page obrigatória de todos os usu{rios que abrem o browser e a navegação, para todos eles, sempre ficava “bloqueada” por alguns segundos até que o menu expansível customizado fosse montado e fechado (ele é montado todo “expandido” e fechava no final da montagem). Notei ainda que as webparts da content page j{ estavam www.codificandomagazine.com.br Dez / Jan - 10/11 | 8 O SharePoint está lento. O que eu faço? sendo carregadas de forma assíncrona. Esse comportamento do menu se repetia para os demais acessos e não apenas para o carregamento da home page. Utilizei o PerfMon para criar os counters (tenha “templates” | mão) e o PAL para an{lise de threshoulds. Antes mesmo de obter esses resultados, usando o Taks Manager/Process Explorer, j{ podia observar que o processo w3wp.exe referente ao application pool do portal j{ ficava constantemente entre 80% e 100% de utilização (comportamento muito anormal) em todas as m{quinas. O uso de memória era também era alto. O ideal seria também utilizar ferramentas como o Fiddler (http:// www.fiddler2.com/fiddler2) ou outro monitor HTTP para tem o tempo real de loading da p{gina (e voltar a medir quando eventuais mudanças com foco em melhorias fossem feitas), mas fui direto ao assunto: procurar a DLL do menu e, usando o “SPDisposeCheck” http://code.msdn.microsoft.com/ SPDisposeCheck procurar por possíveis evidências de memory leaks. No modelo de objetos do SharePoint, objetos como Microsoft.SharePoint.SPSite e Microsoft.SharePoint.SPWeb são criados em código gerenciado como um pequeno wrapper (de aproximadamente 2KB). Este wrapper então cria objetos não-gerenciados de aproximadamente 12MB que, por não serem removidos automaticamente da memória pelo garbage collector, precisam ser explicitamente marcados para “dispose”. Para mais informações recomendo a leitura dos artigos http:// msdn.microsoft.com/library/ bb687949.aspx e http:// msdn.microsoft.com/library/ aa973248.aspx. O fato é que o SPDisposeCheck listou v{rios pontos com lógicas “suspeitas”. Por exemplo: Codificando.net e-magazine Eu j{ tinha um primeiro suspeito: o controle (customizado) de menu. Precisava saber mais sobre ele e recolher evidências de sua “participação” no processo. Liguei então contadores de performance, para coleta por um ciclo completo de 24h, para todos os servidores, considerando os 4 principais “sinais vitais” de um server: CPU, memória, disco e rede. Uma dica é fazer a coleta no formato .csv e analis{-los utilizando o PAL (“Performance Analysis of Logs”) disponível em http:// pal.codeplex.com ou ainda utilizar uma ferramenta Enterprise e proativa de monitoramento (como o Microsoft Operations Manager – SCOM – que j{ possui pacotes de gerenciamento específicos para servidores SharePoint e que vão além dos sinais vitais b{sicos, pois monitoram os serviços específicos como Timer e Search – leia mais em http://bit.ly/9Xpany). e-magazine ID: SPDisposeCheckID_XX Module: [NomedoAssembly].dll Method: [Namespace].[ClasseMenu] DisplayClass1.OnLoad Statement: this.myRoot.{System.Xml.Linq.XContainer} Add(this.<>4__this.{ [Namespace].[ClasseMenu] } BuildMap(local0.{Microsoft.SharePoint.SPSite} OpenWeb(), 0)) Pelos resultados obtidos e trechos dos métodos exibidos, desconfiei não somente que tivéssemos problemas de memory leak por esquecimento de “dispose”: a lógica de “loop” usada para montar o menu não me parecia a mais otimizada (se considerarmos pr{tica de www.codificandomagazine.com.br Dez / Jan - 10/11 | 9 O SharePoint está lento. O que eu faço? programação .NET convencional, mesmo). Pra ser mais clara: não estava sendo usado com o controle nenhuma das classes do namespace “Microsoft.SharePoint.Publishing.Navig ation” (veja em http:// msdn.microsoft.com/en-us/library/ microsoft.sharepoint.publishing.navigati on(v=office.12).aspx – versão 2007 – e http://msdn.microsoft.com/en-us/library/ microsoft.sharepoint.publishing.navigati on.aspx - versão 2010) como fonte de dados, nem mesmo um data source customizado herdando de “HierarchicalDataBoundControl”. Ou seja, o menu era montado a partir de loops no objeto SPSite, todas as vezes que a p{gina era carregada. E sem uso de cache, ou seja: cada request HTTP, de cada um dos 3.000 usu{rios, gerava uma chamada de c{lculo de menu. Considerando a rotina para validar permissão de acesso, tínhamos aí um ponto de melhoria. técnicos (de administração, performance, suportabilidade, futuras migrações de versão) de uma decisão como essa podem ser grandes. Para mais sobre o assunto “Navegação Customizada”, recomendo este ótimo post: http:// blogs.msdn.com/b/modonovan/ archive/2008/05/30/custom-navigation-in -sharepoint-the-full-monty.aspx Pronto! J{ havíamos identificado um fator importantíssimo de ação pra melhoria da performance! E, como tínhamos acesso ao código-fonte, bastou uma r{pida verificação na lógica usada para comprovar as suspeitas. Os próximos passos seriam um code review mais completo, considerando não só as melhores pr{ticas de desenvolvimento para SharePoint como de aplicações ASP.NET mesmo. Observamos também que o Application Lifecycle Management tinha muitas oportunidades de melhoria! Não havia builds, o capacity planning e diversos tipos de testes não estavam sendo feitos, não havia gestão de builds/releases e, pior: as customizações estavam sendo copiadas para produção sem o uso de pacotes .WSP/features e também via restauração de backups de bancos. Eu poderia escrever muitos outros artigos sobre cada um destes itens, mas ao invés disso recomendo a leitura atenta do Resource Center de melhores pr{ticas SharePoint no MSDN (para v3, o endereço é: http://msdn.microsoft.com/ en-us/sharepoint/dd367963.aspx) e os livros de download gratuito dos “patterns & practices”. Codificando.net e-magazine Nota: O namespace “Microsoft.SharePoint.Publishing.Navig ation” j{ possui uma série de classes otimizadas que levam em consideração a hierarquia dos objetos SPSite / SPWeb, bem como permissão e cache. Procure utilizar sempre que possível o que o SharePoint j{ oferece nativamente: no caso acima, o desenvolvedor até me disse que os objetos nativos “não atendiam os requisitos de negócio”, mas vejo muitas vezes o escopo do projeto e as exigências das {reas usu{rias sendo utilizados como “palavra final inquestion{vel” para partirmos para desenvolvimento customizado. Às vezes falta um pouco mais de argumentação técnica que mostre que os impactos e-magazine Mais sugestões de leitura: www.codificandomagazine.com.br Dez / Jan - 10/11 | 10 O SharePoint está lento. O que eu faço? “Estimate performance and capacity requirements for Windows SharePoint Services collaboration environments (Office SharePoint Server)” - http:// technet.microsoft.com/en-us/library/ cc261795(office.12).aspx “Tools for performance and capacity planning” – http:// technet.microsoft.com/en-us/library/ cc288064(office.12).aspx Sugestões de Arquitetura e Topologia Se você é um profissional SharePoint um pouco mais experiente provavelmente identificou, na minha descrição do caso (em “Introdução: Cen{rio do Caso”) ainda outros fatores que merecem a nossa atenção. Vale avaliar também o uso de compressão HTTP e blob cache, o desenho da autorização, a topologia dos servidores por serviço eque features/conte types usar... (mais outros vários tópicos para novos artigos!). Caso você, leitor, tenha dúvidas quanto a estes tópicos, sugiro continuar consultando os documento de planejamento disponíveis no TechNet, para 2007 e também versão 2010. E como terminou esse chamado? Bom, tivemos reuniões com todos os envolvidos (marketing, TI, fornecedores), montamos um plano de ação, dividimos as responsabilidades e todos estavam “juntos” em prol de resolver os problemas. O clima, que no começo era de insatisfação com o SharePoint e desconfiança quanto | plataforma escolhida, mudou e recuperamos a credibilidade com o cliente. Tivemos muito cuidado em abordar os problemas de forma séria, porém positiva, de forma que mesmo as “falhas de execução” foram entendidas como fruto das “pressões de entrega” e vistas como oportunidade de , daqui pra frente, buscar melhorias não só técnicas como de processos. Como todo projeto de TI deve ser. Abraços a todos e até o próximo artigo! Codificando.net e-magazine A estrutura “1 Web Application + 1 Site Collection + 1 Content Database”, em princípio mais simples pra instalar e configurar, implica em uma arquitetura mais complexa de gerenciar ao longo do tempo. Pensando em fatores operacionais (como tempo de backup e restore, política de cotas de uso por site collection, retenção e arquivamento de itens) um número número maior de site collections (com um banco de dados de conteúdo para cada) pode trazer mais benefícios ao longo do tempo. A questão é que, em se tratando de desenho de solução SharePoint, muitas vezes não é questão de “Certo” ou “Errado”, mas de “Prós” e “Contras”. Precisa se listar as implicações de cada decisão de forma abrangente. e-magazine 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. www.codificandomagazine.com.br Dez / Jan - 10/11 | 11 e-magazine Codificando.net e-magazine www.codificandomagazine.com.br Dez / Jan - 10/11 | 12 e-magazine Como criar e gerenciar usuários na Central de Administração do Microsoft Online Services Por: Sara Barbosa Nesse artigo, vou detalhar um pouco sobre a administração dos serviços do online services, inicialmente partindo dos usu{rios que irão aproveitar os serviços na nuvem. Para que você consiga acompanhar o artigo, indico a leitura e o vídeo de como ativar sua conta de avaliação dos serviços, sendo assim fica mais f{cil compreender e j{ exercitar o aprendizado que é muito simples. Então, vamos ao que interessa: Como criar e gerenciar usu{rio na Central de Administração do Microsoft Online Services, que é o foco dessa leitura. No primeiro contato com a central administrativa, são solicitadas algumas tarefas, a central j{ deixa explicito que para garantir os serviços 5 tarefas devem ser feitas, veja na figura: “Tarefas que preciso executar”: Nesse caso vou pular duas delas (vou detalhar nos próximos artigos/posts no blog) e ir para a criação de usu{rios, que para mim é essencial, até mesmo deixar de usar o admin da central, criar como se fosse um backup dele e conceder as permissões de admin. Codificando.net e-magazine Para aprender como ativar sua conta de avaliação: http://azureservicesbr.ning.com/profiles/ blogs/avaliacao-gratuita-microsoft Figura 1 - Central de Administração Para criar esse novo usu{rio, clique em adicionar usu{rio: Figura 2 - Adicionar Usuário Preencha os dados do novo usu{rio e clique em próxima: www.codificandomagazine.com.br Dez / Jan - 10/11 | 13 Como criar e gerenciar usuários na Central de Administração e-magazine administrador na central, não quer dizer que no site do SharePoint ele ter{ automaticamente perfil de controle total, as permissões da central são independentes dos serviços. Figura 3 - Preencha os campos com informações do usuário Codificando.net e-magazine Nessa parte você vai definir se seu usu{rio deve ter permissões de administrador da central de administração, a senha tempor{ria que ser{ gerada, se você deseja habilitar a conta do usu{rio para os serviços que você contratou e onde esse usu{rio est{ localizado. No meu caso, selecionei “Sim” na permissão de administrador e selecionei “Sim” para habilitar a conta do usu{rio, depois disso é só clicar em próxima: Nota: Você defnir o usu{rio como Próxima etapa, você tem acesso a data da compra, serviços que o usu{rio ter{ disponível, número de licenças disponíveis no seu pacote, no meu caso tem 20 licenças, pois estou usando a versão trial. Também consegue visualizar a quantidade de espaço destinado a caixa de correio, como são 20 licenças para caixa de correio, você tem 20 Licenças x 25 GB = Total: 500 GB de espaço. Você define nessa etapa entre 256 MB a 25GB qual o tamanho da MailBox do usu{rio que você est{ criando. Escolha o tamanho e clique em concluir: Última etapa, defina o e-mail para onde o Figura 5 - Serviços Ativos usu{rio vai receber seu user e password para o primeiro acesso, digite o endereço de e-mail clique em enviar e depois em concluir: Figura 4 - Configurações Figura 6 - Confirmação www.codificandomagazine.com.br Dez / Jan - 10/11 | 14 Como criar e gerenciar usuários na Central de Administração Pronto. Seu novo usu{rio vai receber um e-mail com as orientações, basta seguir, trocar a senha e começar a usar os serviços que contratou e ativou. Para administrar e gerenciar esse usu{rio, depois de criado, você ser{ direcionado a lista de usu{rios habilitados, note que o campo ações est{ com v{rias opções desabilitadas: Figura 7 - Modo de exibição todos os usuários Selecione o usu{rio, veja que no campo “Ações, você tem opção de editar informações do usu{rio, redefinir senha, excluir usu{rio: usu{rio a trocar a senha a cada 90 dias, pois é o tempo m{ximo que a senha dele ser{ valida, caso ele não troque ela expira, e você ter{ que gerar uma nova senha. Se você orientar o usu{rio, você poupa o trabalho de fazer isso e ele consegue trocar sem que ela expire. Excluir usu{rio: Para casos que é necess{rio tirar da sua base de usu{rio um em especifico, fique atento ao número de licenças que contratou e no seu contrato de 12 meses para não gerar cobranças fora do esperado. O Microsoft Online Services, segue a linha dos recursos que a maioria dos usu{rios j{ estão familiarizados, por isso é utilizado o Live ID para criar uma conta de avaliação e os recursos para gerenciar serviços e usu{rios na central de administração também são bem intuitivos e com v{rios fontes de ajuda sendo sinalizados para facilitar o uso dos serviços. A ideia é essa, disponibilizar os serviços com total simplicidade e facilidade. Espero que tenham gostado, até os próximos. Codificando.net e-magazine Figura 8 - Status dos usuários criados e-magazine Sara Barbosa Editar propriedades: Você pode alterar endereço, departamento, sobrenome, nome, alterar permissão, desabilitar conta, definir alias de e-mail caso tenha outros domínios ou tenha modificado o user do endereço de e-mail, etc. Redefinir senha: Você altera a senha atual do usu{rio e envia para o endereço de e-mail que ele ter{ acesso a trocar a senha padrão por uma de sua preferência. Nota: Para evitar transtornos, oriente seu MSP, revisa artigos para revista Codificando.NET e-Magazine, membro do conselho da comunidade WININFO. Co-Leader da Comunidade AzureServicesBr (azureservicesbr.ning.com). Moderadora TechNetBrasil no fórum de BPOS. Faz parte do time PensouNET (www.pensou.net) empresa Gold Certified Partner em Goi{s. Mais sobre no blog: www.sarajbarbosa.wordpress.com e twitter: @sarabarbosa www.codificandomagazine.com.br Dez / Jan - 10/11 | 15 e-magazine Habilitando PDF com Ifilter no SharePoint Server 2010 Por: Fernanda Saraiva O IFilter é uma ferramenta que combinada com o Search do SharePoint, permite uma busca mais refinada para arquivos de extensão .PDF, incluindo na busca o conteúdo interno dos documentos. A extensao .PDF (third-part) não faz parte da lista de extensões OOTb, embora sejam indexadas como outros documentos, não apresentam formatação adequada. Vamos habilitar essa funcionalidade!! Muito bem, mãos a obra: O primeiro passo é exibir o ícone PDF nos arquivos carregados no portal: Faça o download do ícone PDF aqui: http://www.actonguides.org/images/ icons/pdf_icon.gif. Se optar por outra imagem para o PDF, edite o seu tamanho para 16px X 16px Figura 2 - Inclua a entrada no arquivo DOCICON.XML Salve o arquivo. E em seguida Reinicie o IIS (Start > Run > IISReset). Se você tiver algum arquivo salvo na sua document librarie do SharePoint, j{ vai conseguir visualizar o ícone PDF onde antes estava o ícone de uma folha branca. Figura 3 - O ícone PDF j{ aparece associado ao documento J{ informamos ao SharePoint qual o ícone correto para a extensão PDF, mas se realizarmos a busca por "PDF", o arquivo retornar{ com o ícone incorreto, precisamos então incluir a extensão PDF na rastreabilidade do engine de busca. Figura 4 - Veja na imagem que o engine de busca não associou a imagem Figura 1 - Grave o ícone na pasta ...\images 2. Insira a entrada para o ícone PDF no arquivo DOCICON.XML Utilize o notepad pra abrir o arquivo DOCICON.XML localizado no caminho: 3. Inclusão da extensão .PDF na busca do Sharepoint A partir da Administração Central, clique em "Manage Service applications", www.codificandomagazine.com.br Dez / Jan - 10/11 Codificando.net e-magazine 1. Grave o ícone PDF na pasta de imagens: “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES” “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML” Insira uma entrada "ByExtension" conforme a imagem abaixo: | 16 Habilitando PDF com Ifilter no SharePoint Server 2010 e-magazine O IFilter é uma ferramenta que combinada com o Search do SharePoint, permite uma Figura 8 - Clique em Manage Figura 5 - Localize o serviço de busca busca mais refinada para arquivos de extensão .PDF, incluindo na busca o conteúdo interno dos documentos. A extensao .PDF (third-part) não faz parte Faça o download do ícone PDF aqui: http://www.actonguides.org/images/icons/ pdf_icon.gif. Se optar por outra imagem para o PDF, Figura 9 - Clique em content Sources. Figura 6 - Insira a extensão PDF na lista de extensões suportadas da lista de extensões OOTb, embora sejam indexadas como outros documentos, não apresentam formatação adequada. Vamos habilitar essa funcionalidade!! Muito bem, mãos a obra: O Figura 11 - O ícone PDF est{ indexado corretamente edite o seu tamanho para 16px X 16px Figura 7 - Clique em Manage Service Application, no grupo "Application Management" 1. Grave o ícone PDF na pasta de imagens: “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES” primeiro passo é exibir o ícone PDF nos arquivos carregados no portal: www.codificandomagazine.com.br Dez / Jan - 10/11 Codificando.net e-magazine Figura 10 - Clique na flecha para expandir o menu. Selecione "Start Full crawl". | 17 Habilitando PDF com Ifilter no SharePoint Server 2010 O IFilter é uma ferramenta que combinada com o Search do SharePoint, permite uma busca mais refinada para arquivos de extensão .PDF, incluindo na busca o conteúdo interno dos documentos. A extensao .PDF (third-part) não faz parte da lista de extensões OOTb, embora sejam indexadas como outros documentos, não apresentam formatação adequada. Vamos habilitar essa funcionalidade!! Muito bem, mãos a obra: e-magazine Extensions\14\TEMPLATE\IMAGES” Figura 14 - Execute um novo crawling completo da busca O primeiro passo é exibir o ícone PDF nos arquivos carregados no portal: 2. Figura 15 - Realize uma nova busca. O ícone est{ indexado corretamente Figura 12 - Configure o Path do IFilter Insira a entrada para o ícone PDF no arquivo DOCICON.XML Faça o download do ícone PDF aqui: http://www.actonguides.org/images/ icons/pdf_icon.gif. Se optar por outra imagem para o PDF, edite o seu tamanho para 16px X 16px Figura 13 - Reinicie o serviço de busca através do prompt de comando Files\Microsoft Shared\Web Server www.codificandomagazine.com.br Dez / Jan - 10/11 Codificando.net e-magazine 1. Grave o ícone PDF na pasta de imagens: “C:\Program Files\Common Fernanda Saraiva. Analista de Sistemas, com foco em ambientes colaborativos de gestão, liderando equipes de desenvolvimento em SharePoint, WSS e Project. MCTS e membro do MCPBrasil.com, parceira da Microsoft, como Gerente de Projetos. Organizadora do evento e mantenedora do site www.MSTECHDAY.com, participa também como palestrante de tecnologias da plataforma Microsoft, com foco EPM e Sharepoint. Atua em treinamentos empresariais e consultoria em portais colaborativos. Membro da Comunidade MCPBrasil.com e influenciadora Microsoft, colabora regularmente com fóruns como Technet e MSDN (Sharepoint / EPM). Mantém o site www.fernandasaraiva.com.br e pode ser encontrada no twitter @fefesaraiva. | 18 e-magazine Codificando.net e-magazine www.codificandomagazine.com.br Dez / Jan - 10/11 | 19 e-magazine Como funciona o Windows Azure – O Hypervisor Por: Elemar Júnior Introdução Windows Azure representa uma alternativa bastante vi{vel para desenvolvimento para Cloud. Se você ainda não sabe nada sobre o assunto, não perca tempo! Este artigo trata dos internals do Windows Azure. Isso significa que não pretendo demonstrar como escrever código para ele. Este artigo dever{ ser apenas o primeiro de muitos que pretendo escrever sobre este tema. Especificamente nesse artigo, quero falar sobre um dos elementos mais importantes da arquitetura do Windows Azure: o Hypervisor. Boa parte do que você vai ler aqui vêm dessas fontes. Obviamente, adiciono minhas considerações (e é nesses pontos que devem estar os prov{veis desvios que você encontrar{ aqui). Codificando.net e-magazine Por onde eu comecei e o caminho que percorri… O Windows Azure é uma tecnologia inteiramente nova. Consequentemente, poucas pessoas fora da Microsoft possuem conhecimento sólido de seu funcionamento. Definitivamente não estou entre elas! Sou um estudante e como tal utilizo diversos recursos para aprender. Dentre os recursos que recomendo estão: partida o do Ot{vio Pecego. Site do Azure: www.azure.com Livros Pro Azure Services Platform Developing Applications for the Cloud Programming Windows Azure Windows Azure Platform Building applications in the Cloud: Concepts, Patterns and Projects Por que considero importante saber como o Azure Funciona? Sempre que me deparo com uma nova tecnologia, considero importante separar seu estudo em três partes. Observe: Blogs H{ v{rios, mas gostaria de recomendar como ponto de Figura 1 - Espaços de estudo para www.codificandomagazine.com.br Dez / Jan - 10/11 | 20 Como funciona o Windows Azure – O Hypervisor H{, obviamente, o estudo de como escrever código usando a nova tecnologia. Com relação ao Windows Azure, h{ um grande número de fontes que podem mostrar como isso funciona. Em outro extremo, estão |s informações sobre como a tecnologia funciona, os internals. Penso que usar uma tecnologia sem entender como ela funciona é como lutar sem conhecer o campo de batalha. Se você quer construir uma aplicação com performance superior ou deseja entender um comportamento estranho, compreender como as coisas funcionam por baixo do capô pode ser a diferença entre vencer ou perder a batalha. Penso que mesmo que não tenha uso direto para uma tecnologia, ter algum conhecimento sobre como as coisas funcionam pode ser divertido. Para um bom arquiteto, pode representar insights interessantes. Nessa representação, as camadas mais externas são aquelas com as quais temos mais contato quando codificamos. J{ as mais internas são aquelas mantidas sob controle mais rígido da Microsoft. Com mais detalhes, percebemos que: Figura 2 - Organização do Azure O hardware, no centro da representação acima, é mantido pela Microsoft em diversos data centers espalhados em todo o mundo. Alguns desses data centers “rodam” o Azure; Cada m{quina do datacenter executa um hypervisor otimizado e ajustado para seu datacenter, bem como para o hardware que formam essas m{quinas. O hypervisor não tem um nome oficial (até onde eu saiba). Entretanto, é prov{vel que você o veja com o nome Windows Azure Hypervisor. A coisa mais importante para lembrar aqui é que não se trata do Hyper-V. O agrupamento das m{quinas nos data centers para o Azure é gerenciado por uma aplicação massivamente distribuída chamada “Fabric”. O Fabric gerencia o hardware, os sistemas operacionais nos computadores e as aplicações rodando nessas m{quinas. Essas aplicações, por sua vez, podem utilizar todos os serviços que o Windows Azure oferece; H{ muitos desses Fabrics rodando em diferentes localizações geogr{ficas. Quando distribuímos uma aplicação, ou quando criamos uma conta de armazenamento, escolhemos quais dessas localizações desejam que seja a hospedeira. www.codificandomagazine.com.br Dez / Jan - 10/11 Codificando.net e-magazine O que h{ para ser visto? Windows Azure é uma plataforma complexa e multicamada. É uma combinação de hardware e software, separados em diversas camadas lógicas, instalados fisicamente em datacenters presentes em diferentes localidades. Passei a entender melhor o Windows Azure a partir de uma representação proposta no livro Programming Windows Azure. Observe: e-magazine | 21 Como funciona o Windows Azure – O Hypervisor Como j{ foi dito, meu foco principal hoje é o Windows Azure Hypervisor. poder computacional. Ainda assim, penso que a analogia com SO seja um pouco forçada. Uma palavra sobre os datacenters Os datacenters são os “palcos” onde toda a ação Azure acontece. Windows Azure é executado em diversos datacenters da Microsoft ao redor do mundo. Como qualquer outra grande companhia que mantém datacenters, a Microsoft mantém certo mistério sobre eles. O primeiro Datacenter da Microsoft foi montado em setembro de 1989. Localizado no campus da Microsoft, em Redmond, est{ muito abaixo dos datacenters que rodam os serviços online da Microsoft hoje em dia. A Microsoft não revela o número exato de datacenters que possuí (brincam dizendo algo em torno de 10 e 100). Além disso, a Microsoft não fala sobre a localização exata desses datacenters. Até onde se sabe, esses datacenters atendem a uma diversidade de propósitos e não somente rodar o Azure. Cada um dos datacenters é escal{vel, mas, ao mesmo tempo, são montados para serem ecologicamente corretos. Quase toda energia consumida provem de hidroelétricas o cooling quase sempre ocorre com {gua recicl{vel. Codificando.net e-magazine Afinal, o Windows Azure é um sistema operacional? Ouvi dezenas de vezes a afirmação de que o Windows Azure é o sistema operacional para nuvem da Microsoft. Essa analogia é útil para explicar a coisa para pessoas não técnicas. Entretanto, confunde desenvolvedores que imaginam que h{ um novo sistema operacional espalhando nos datacenters da Microsoft executando seus aplicativos. É importante destacar que essa analogia é um pouco forçada. Se nós conceituarmos um sistema operacional, veremos que uma de suas tarefas mais importantes é gerar alguma abstração do hardware para os aplicativos que executa. Ou seja, no lugar do desenvolvedor ficar preocupado com especificações do hardware, pode escrever código para uma API genérica e deixar o sistema cuidar dos detalhes. Nesse sentido, o Azure é um sistema operacional, pois ele abstrai o hardware do datacenter. Entretanto, a analogia acaba aqui. Windows Azure não é um sistema operacional de verdade. O Sistema operacional que roda nossos códigos no nuvem (diretamente) é o Windows Server 2008 (ou melhor, algo bem parecido). Importante: Sim, a infraestrutura do Azure orquestra a execução de aplicativos (Azure não é apenas armazenamento). As roles funcionam como agentes operativos que permitem a execução de atividades complexas de forma paralela resultando em grande e-magazine Por que um Hypervisor? Sabendo sobre os datacenters que fazem a m{gica do Azure acontecer, a próxima questão obviamente recai sobre como os sistemas operacionais executam nas m{quinas< Uma an{lise mais simples poderia conduzir a ideia de instalar uma inst}ncia do Windows Server 2008 diretamente em cada computador. A propósito, esta é a www.codificandomagazine.com.br Dez / Jan - 10/11 | 22 e-magazine Como funciona o Windows Azure – O Hypervisor Figura 3 - Hypervisor coordena as VMs Para criar e manter diversas m{quinas virtuais em uma única m{quina física, um pequeno software chamado hypervisor é usado. Esse software é respons{vel pela alocação justa de recursos entre as m{quinas virtuais. É o hypervisor que agenda o tempo da CPU e as requisições de I/O, além de prover isolamento entre as diversas m{quinas virtuais. Na representação acima, o Hypervisor opera como uma balança que equilibra os recursos entre diversas m{quinas virtuais. Como programas Hypervisor interferem na execução dos sistemas operacionais convidados Para executar suas atividades de forma eficiente, o hypervisor precisa contar com o suporte do hardware. Um processador x86/x64 oferece quatro níveis de privilégio chamados Rings, sendo o Ring 0 o mais poderoso e o Ring 3 o mais restrito. Todos os sistemas operacionais modernos utilizam esse conceito rodando o kernel (coração do sistema operacional) em Ring 0, e todos os demais aplicativos no Ring 3. Por exemplo, no Windows, o ntoskrnl.exe (o “Sistema” no TaskManager) executa no Ring 0 junto com todos os drivers. Quando um código executando em Ring 3 precisa executar uma operação com alto privilégio, precisa executar uma transição www.codificandomagazine.com.br Dez / Jan - 10/11 Codificando.net e-magazine forma como muitas empresas executam aplicativos em seus datacenters hoje em dia. Entretanto, h{ pelo menos dois problemas com essa abordagem: 1. Compartilhamento de recursos 2. Migração de cargas de trabalho Executar sistemas operacionais diretamente sobre o hardware implica em esse ter o controle total da m{quina. Em outras palavras, para cada aplicação rodando no datacenter, um computador. Isso faz pouco sentido se pensarmos que poderemos estar dedicando m{quinas potentes com muitos gigabytes de RAM para websites com quase nenhum acesso. Outra implicação é a impossibilidade de mover aplicações e cargas de trabalho facilmente. Se um Website A estivesse com baixa demanda e um Website B estivesse sob stress, não seria f{cil, nem r{pido, dar parte do poder computacional da m{quina que est{ hospedando o Website A para o Website B. A solução que vem sendo repetidamente apontada para esses problemas é a virtualização. Ou seja, a capacidade de manter diversos sistemas operacionais convidados rodando simultaneamente em um mesmo computador, sob o controle de um sistema operacional hospedeiro. Cada sistema operacional convidado vê uma m{quina inteira (chamada m{quina virtual), e é completamente desinformado quanto | existência de outros sistemas operacionais. Estas m{quinas virtuais compartilham os recursos da m{quina real. | 23 Como funciona o Windows Azure – O Hypervisor para o Ring 0. e-magazine sejam executada de forma “justa e equilibrada”. Figura 4 - Código execut{vel e o processador Os Rings 1 e 2 geralmente não são utilizados. Todo o cen{rio que descrevi ocorre na execução de sistemas operacionais que rodam diretamente na m{quina. Agora, onde executaria o hypervisor se o Ring 0 j{ est{ comprometido com o sistema operacional? Este problema foi resolvido pela Intel e pela AMD pela inclusão de um nível de privilégio inteiramente novo chamado de “Root mode”, ou Ring –1. Assim, todos os sistemas operacionais podem operar de forma normal entre os Rings 0 e 3. Quando o processador reconhece que uma instrução executada em uma m{quina virtual precisa de um privilégio maior para executar, transfere a execução para o Hypervisor. Uma vez que o hypervisor tem conhecimento de todas as m{quinas virtuais (e seus respectivos sistemas operacionais) consegue garantir que essas operações Codificando.net e-magazine Figura 5 - Nível adicional de permissão para o Hypervisor Conversando com o Hypervisor: Hypercalls e Enlightenments Sabemos como um sistema operacional normal roda sob o hypervisor. Entretanto, digamos que os criadores de sistemas operacionais soubessem dessa condição antes de funcionar. Sistemas operacionais convidados podem se comunicar com o hypervisor onde estão sendo executados através de um mecanismo chamado hypercall. A relação entre o sistema operacional convidado e o hypervisor é bem semelhante ao que ocorre entre código em user-mode e kernel. Da mesma forma que um processo pode chamar uma API para conseguir acesso direto para algum recurso, o kernel de um sistema operacional convidado pode invocar um “hypercall” que resultar{ em alguma execução no Hypervisor. Um enlightened kernel é aquele que usa hypercalls para se comunicar com o Hypervisor de forma a obter algum ganho de performance. Esses kernels conseguem desempenho superior a outros que não contam com esse recurso. O Hypervisor do Windows Azure O que foi tido até aqui é verdadeiro para todos os hypervisors presentes no mercado hoje. O hypervisor do Windows Azure foi projetado por Dave Cutler (um dos pais do Windows NT). O hypervisor do Azure foi projetado com três princípios em mente: Ser r{pido, pequeno e fortemente integrado com o kernel. Projetado para ser o mais eficiente possível, foi desenvolvido de forma otimizada primando por execução em www.codificandomagazine.com.br Dez / Jan - 10/11 | 24 Como funciona o Windows Azure – O Hypervisor Como o Windows Azure Hypervisor funciona? O Hypervisor divide o sistema em múltiplas m{quinas virtuais ou partições. Aplicações executam sempre em partições, cada uma delas executando uma inst}ncia independente de um sistema operacional. Uma partição tem visibilidade apenas sobre um espaço de endereçamento, mas não possui acesso direto para o hardware. Quando o sistema inicia uma partição especial é iniciada, a host partition. Esta partição é especial de diversas formas. É ela que tem acesso completo a operações de I/O, memória física, e todo o hardware. Ela executa operações criticas e é usada para executar todos os acessos a dispositivos usando drivers padrões do Windows. No Windows Azure Hypervisor todos os dispositivos tratados pelas partições são interceptados pelo hypervisor e encaminhados para a host partition. Em grande parte, é assim para que não seja necess{ria nenhuma escrita de driver especial para o Hypervisor. Codificando.net e-magazine hardware sempre que possível. Por estar rodando em ambientes controlados, é otimizado para o hardware presente nos datacenters da Microsoft. No Windows Azure, o kernel dos sistemas operacionais convidados são claramente otimizados para o hypervisor. Isso significa que eles contem dezenas de enlightenments. Windows Azure Hypervisor e o HyperV não são a mesma coisa A Microsoft lançou um Hypervisor, chamado Hyper-V, com o Windows Server 2008. H{, frequentemente, confusão sobre as diferenças do Hyper-V e o Windows Azure Hypervisor, sendo que alguns artigos assumem que eles sejam o mesmo. Na verdade, ambos foram construídos com propósitos bem diferentes. HyperV é distribuído como parte do Windows, por isso, precisa ser suportado por uma ampla variedade de hardware e necessidades. O Windows Azure Hypervisor executam somente nos datacenters da Microsoft e são otimizados especificamente para o hardware onde o Windows Azure funciona. Como esperado, dois produtos similares de uma mesma companhia compartilham código e design. Acredito que no futuro novas funcionalidades incluídas no Windows Azure Hypervisor serão implementadas no Hyper-V, e vice-versa. e-magazine Figura 6 - Hypervisor usa uma VM para operações de IO O “routing” das chamadas de I/O ocorrem através da Virtual Machine Bus (VMBus). Um sistema operacional convidado, sem enlightenments, poderia ingenuamente executar diversas operações de acesso a hardware para execução de uma única operação lógica. Isso envolveria muitas transições entre o convidado e o hypervisor e, finalmente a partição host. Para evitar esse problema, cada sistema operacional convidado no Windows Azure tem uma pilha, que pega algumas operações dos device drivers nos www.codificandomagazine.com.br Dez / Jan - 10/11 | 25 Como funciona o Windows Azure – O Hypervisor guest e encaminha pela VMBus para o sistema operacional host. Isso garante ganho de performance. Qual sistema operacional executa nosso código no Windows Azure? Mesmo com toda essa discussão sobre sistemas operacionais com enlightenments e integração com o Hypervisor, muitos desenvolvedores estão apenas interessados em saber sobre qual é o sistema operacional onde seu código executar{. A resposta é simples. Aplicações rodam no Windows Server 2008 x64 Enterprise Edition. Bem, quase isso< A Microsoft chama de “Windows Server 2008-compatible”, pois esse sistema é Windows Server em quase todos os sentidos, exceto pelo fato de que ocorreram alterações de baixo nível para aperfeiçoar o funcionamento com o Hypervisor. Entretanto, aplicações não conseguem perceber isso. e-magazine Elemar Rodrigues Severo Júnior, 31 anos (@elemarjr). Arquiteto-chefe e Pesquisadorchefe na Procad (www.procad.net / http:// galeria.promob.com.br ). Gerente de P&D. Est{ nessa empresa h{ 13 anos. Começou a estudar computação aos 9 anos, aos 13 começou a ministrar cursos de programação. Programou com linguagens como: Basic, C, Assembly, C++, Java, C#. Destacado como autoridade em Computação Gr{fica, sobretudo OpenGL. Fez parte do time de desenvolvimento de produtos de larga distribuição (Promob tem mais de 60mil licenças em 35 países). Seus interesses atuais Concluindo Codificando.net e-magazine O Windows Azure é uma robusta plataforma de hardware e software capaz de prover uma real alternativa de PaaS. A forma como as m{quinas virtuais operam, bem como a estrutura de seu hypervisor deixam evidente o compromisso da Microsoft com a escalabilidade e confiabilidade. Além do Hypervisor, h{ toda a estrutura do Windows Fabric. Entretanto, esse é um bom tema para um próximo artigo. www.codificandomagazine.com.br Dez / Jan - 10/11 | 26 e-magazine Codificando.net e-magazine www.codificandomagazine.com.br Dez / Jan - 10/11 | 27 e-magazine SharePoint 2010 - Administração Avançada com PowerShell Por: Fabian André Gehrke Introdução O Windows PowerShell™ é um shell de linha de comando e linguagem de script, baseado em tarefas, criado especialmente para a administração de sistemas. Criado em uma estrutura .NET, o Windows PowerShell™ ajuda os profissionais de TI a controlar e automatizar a administração do sistema operacional Windows e de v{rias tecnologias Microsoft que são executados em Windows, como: Microsoft SharePoint 2010, Active Directory, Microsoft Exchange Server e outros diversos produtos da Microsoft. Objetivos da administração por script: Importante: grande parte dos novos recursos do SharePoint 2010 não possui suporte ao STSADM.EXE, essas tarefas devem ser feita via PowerShell. A tendência é a descontinuação do STSADM e centralização das funções no PowerShell. Por enquanto o STSADM.EXE continua funcionando para manter a compatibilidade com versões anteriores do SharePoint. De qualquer maneira, todos os recursos que j{ eram feitos no STSADM.EXE, continuam funcionando no SharePoint 2010. O PowerShell 2.0 e os CMDLETS do SharePoint j{ são ativados/instalados durante a instalação dos pré-requisitos do SharePoint 2010, por isso não é necess{rio se preocupar com essa etapa. www.codificandomagazine.com.br Dez / Jan - 10/11 Codificando.net e-magazine Nem todas as funções estão implementadas na interface, por isso muitas vezes é necess{rio o agendamento por script, j{ que algumas dessas funções não possuem agendamento pela interface; Possibilidade de gerenciar serviços remotamente; E a gravação de funções prédefinidas, ou seja utilização de comandos em lote. Ao invés de utilizar v{rias tarefas pela interface podemos criar um script que executa v{rias tarefas de uma vez. O Microsoft SharePoint não foge dessa regra, nas versões anteriores ele possuía um utilit{rio de linha de comando, o STSADM.EXE, que é utilizado para a administração do servidor SharePoint e da Farm. Com ele tarefas de administração poderiam ser executadas e agendadas em v{rios servidores. Com a evolução da tecnologia, principalmente do PowerShell, v{rios produtos da Microsoft estão vindo com suporte cada vez maior em relação | administração via script. O Microsoft SharePoint não poderia ser diferente, na versão 2010 veio com uma Shell de gerenciamento exclusiva para ele. | 28 SharePoint 2010 - Administração Avançada com PowerShell Curiosidade: Somente na versão 2007 que o SharePoint passou a contar com administração via linha de comando, ele introduziu o STSADM.EXE. No decorrer do artigo vou mostrar v{rios exemplos de scripts que podem ser feitos para a administração do ambiente SharePoint 2010. Get-Help GetSPManagedAccount Exibe o resumo do commando Get-SPManagedAccount Get-Help GetSPManagedAccount – examples Exibe exemplos do commando Get-SPManagedAccount Get-Help GetSPManagedAccount –detailed Exibe informações detalhadas sobre o comando GetSPManagedAccount Get-Help GetSPManagedAccount –full Exibe toda informação disponível sobre o commando Get-Help *ManagedAccount* Exibe todos os commandos que contém o conteúdo “ManagedAccount” no nome. O asterisco serve como coringa indicando que deve procurar comandos que possuem “ManagedAccount” em qualquer posição. Introdução ao PowerShell Get-Command: Exibe os cmdlets Get-Command –Module Microsoft.SharePoint.PowerShell Get-Command –Module Microsoft.SharePoint.PowerShell ().Count Get-Command * Exibe todos os commandos do assembly definido Exibe o total de comandos existentes no assembly. O método Count retorna o número de registros retornados. Traz todos os commandos disponíveis. Pipe “|”: O pipe é o agregador de comandos, com ele podemos fazer composições e executar um comando sobre o resultado de outro comando, e assim aninhar v{rios comandos. Como o PowerShell retorna objetos nos comandos, esses retornos podem ser utilizados para outros procedimentos. Este é um recurso fundamental para se ter produtividade com PowerShell, é muito importante entender o seu funcionamento. Get-SPSite | Where {$_.Url –like “*evento*”} Get-SPWeb "http:// evento.azeroth.com" | Select Expand Lists | Select Title Codificando.net e-magazine Com comandos do Windows PowerShell, chamados de CMDLETS, você pode executar tarefas de gerenciamento da linha de comando. Com provedores do Windows PowerShell, é possível acessar armazenamentos de dados, tais como o registro e o armazenamento de certificados, tão facilmente como são acessados arquivos do sistema opercional. Além disso, o Windows PowerShell possui um analisador de expressões rico e uma linguagem de scripts totalmente desenvolvida. Os CMDLETS seguem o mesmo padrão de nomenclatura, formados por verbosubstantivo, também conhecidos como formato ação-objeto. O substantivo é sempre no singular. Antes de iniciar os exemplos vamos explicar alguns comandos b{sicos do PowerShell que vão nos ajudar nos scripts do SharePoint. Get-Help: Exibe informações sobre comandos Windows PowerShell. Exemplos: e-magazine O comando Get-SPSite retorna todos os sites do servidor, utilizando o pipe e o Where, retorna apenas os sites que contém “evento” na url. Seleciona o site de eventos e exibe o título de todas as listas Variáveis: as vari{veis no PowerShell www.codificandomagazine.com.br Dez / Jan - 10/11 | 29 SharePoint 2010 - Administração Avançada com PowerShell não são fortemente tipadas, todos os tipos são definidos em tempo de execução. Para definir o tipo é preciso informar o mesmo na atribuição do valor assim como nos exemplos: [string] $nome = “Fabian” $nome = “Fabian” [int] $valor = 200 [double] $media = $valor / 5 e-magazine para administração do SharePoint. Iniciando o PowerShell do SharePoint: Variável do tipo string. Variável com tipo dinâmico, ela se ajusta conforme o conteúdo que lhe form atribuída. Esta forma de declaração de variáveis é muito comum, já que muitas vezes nãos nos preocupamos com o tipo de retorno dos comandos. Variável do tipo inteito, se definir um valor tipo string irá retornar erro. Variável do tipo double PowerShell no SharePoint 2010 Figura 2. Janela do Shell de Gerenciamento do SharePoint 2010. Gerenciamento de aplicativos Web Podemos gerenciar Web Applications utilizando PowerShell. Nos exemplos abaixo temos dois cmdlets importantes para esta tarefa. Codificando.net e-magazine Para fazer a administração do SharePoint 2010 podemos utilizar o PowerShell de duas maneiras, uma delas é utilizando o PowerShell padrão do Windows e chamando os objetos do SharePoint – no SharePoint 2007 j{ era possível fazer dessa forma, mas é necess{rio carregar todos os assemblies do SharePoint manualmente. E temos a outra maneira que é utilizando a Management Shell do SharePoint 2010, que facilita e agiliza a vida do administrador. Neste artigo iremos falar apenas do novo mecanismo do SharePoint 2010. Ao ser carregado o Management Shell j{ carrega tudo que é necess{rio para o usu{rio executar scripts na farm do SharePoint. Ele carrega um arquivo que fica no diretório do SharePoint (sharepointroot\config\powershell\registr ation\sharepoint.ps1), sendo que este mesmo arquivo é respons{vel por montar o ambiente que j{ traz uma “conexão” com a farm e carrega todos os CMDLETS Figura 1. Abrindo o Shel de Gerenciamento do SharePoint 2010. $nomeWebApp = "Site Artigo" $nomePool = "Site Artigo" $nomeServidorBanco = "add-cecred\sqlexpress" $nomeBanco = "SiteArtigo" $hostHeader = "evento.azeroth.com" #Obtém a conta gerenciada configurada na Administração Central $contaPool = Get-SPManagedAccount "azeroth\sp_farm" #Cria o web application com base nos par}metros New-SPWebApplication -Name $nomeWebApp ApplicationPool $nomePool -ApplicationPoolAccount $contaPool -DatabaseServer $nomeServidorBanco DatabaseName $nomeBanco -Hostheader $hostHeader www.codificandomagazine.com.br Dez / Jan - 10/11 | 30 SharePoint 2010 - Administração Avançada com PowerShell O comando Get-SPManagedAccount obtém a conta gerenciada configurada no SharePoint. O comando New-SPWebApplication é respons{vel pela criação do Web Application, recebendo como par}metro as mesmas informações utilizadas na interface. e-magazine O comando Remove-SPSite é o respons{vel pela exclusão da Site Collection. Remove-SPSite -Identity http:// evento.azeroth.com -Confirm:$False E para obter todas as Site Collections: Get-SPSite Para excluir uma Web Application: Remove-SPWebApplication http:// evento.azeroth.com -Confirm:$False DeleteIISSite -RemoveContentDatabases O comando Remove-SPWebApplication é o respons{vel pela exclusão do WebApplication. Possui dois par}metros opcionais, que definem se o site no IIS e a Content Database serão excluídos. O PowerShell possui duas constantes para definir os valores true e false, são $true e $false respectivamente. Para obter a lista de todos os Web Application o comando Get-SPWebApplication pode ser utilizado. Se informarmos a Url do site, apenas o site que corresponde a ela ser{ retornado, conforme Fig. 03. Figura 04: Listagem de todas as Site Collections da Farm. Trabalhando com sites Para criar um site dentro de uma Site Collection utilizamos o comando New-SPWeb: #Template STS#0 é o templade de site de equipe New-SPWeb http://evento.azeroth.com/ PowerShell -template "STS#0" -Name "Site criado pelo PowerShell" -AddToTopNav O comando Remove-SPWeb é utilizado para remover o site, notem que primeiramente Get-SPWeb http://evento.azeroth.com/ PowerShell | Remove-SPWeb confirm:$False o site é obtido e em seguida é removido: Método Get-SPSite lista todos os sites ex- Codificando.net e-magazine Get-SPSite http://evento.azeroth.com | Select –Expand AllWebs Figura 03: Listando os Web Application. Gerenciamento de Site Collections Este exemplo é utilizado para criar um novo Site Collection utilizando o comando New-SPSite e informando os par}metros url, name, owner e o template. istentes no Site Collections. Figura 05: Listagem de todos os sites da Site Collection de Eventos. $tituloSite = "Site Artigo" $administrador = "azeroth\sp_farm" #Templa de site em branco $template = "STS#1" $url = "http://evento.azeroth.com" New-SPSite $url -OwnerAlias $administrador Template $template www.codificandomagazine.com.br Dez / Jan - 10/11 | 31 SharePoint 2010 - Administração Avançada com PowerShell Gerenciamento de listas Para exibir todas as listas que existem é muito simples, basta obter o site e listar todas as listas utilizando utilizando o comando Foreach. (Get-SPWeb evento.azeroth.com).Lists {write-host $_.title} | http:// ForEach e-magazine (Get-SPWeb http:// evento.azeroth.com/).Lists ["Palestrantes"].Delete() Gerenciamento de Conteúdo A sequência de comandos abaixo é utilizada para listar os itens de uma lista. Ele utiliza v{rios pipes para simplificar sua utilização. Primeiro obtém o site, depois expande para o nível de listas, seleciona a lista que tenha o título Palestrantes, expande para o nível de itens e exibe o título de todos os itens. Get-SPWeb http://evento.azeroth.com | Select -expand Lists | Where{$_.Title eq "Palestrantes"} | Select -expand Items | Select Title Figura 06: Criação da lista. Para criar uma lista customizada, o script abaixo pode ser utilizado: $web = Get-SPWeb "http:// evento.azeroth.com/" $template = $web.ListTemplates["Custom List"]; $listaGuid = $web.Lists.Add("Palestrantes", "Lista de cadastro de palestrantes", $template); $lista = $web.Lists.GetList($listaGuid, $true); $lista.OnQuickLaunch = $true; $lista.Update() $web.Lists | ForEach {write-host $_.title} $web.Dispose() Para excluir uma lista: $conteudo = "O conteúdo deste documento foi preenchido pelo PowerShell" $stream = new-object System.IO.MemoryStream $writer = new-object System.IO.StreamWriter ($stream) $writer.Write($conteudo) $writer.Flush() $webUrl = "http://evento.azeroth.com" $listaDocumentos = Get-SPWeb http:// evento.azeroth.com | Select -expand Lists | Where {$_.Title -eq "Documentos Compartilhados"} $listaDocumentos.RootFolder.Files.Add ("DOcumento PowerShell.txt", $stream, $true) Codificando.net e-magazine Ao colocar o Get-SPWeb entre parênteses, podemos chamar métodos ou propriedades do objeto SPWeb. No exemplo est{ sendo utilizada a propriedade lists, que retorna todas as listas do site. Com a ajuda do pipe o comando foreach é utilizando sobre a coleção de listas do site, depois exibe o título de todas as listas. Esse é um dos grandes poderes do pipe, executar v{rios comandos a partir de uma linha de script. Para adicionar um documento a uma biblioteca de documento podemos utilizar o script abaixo. Ele cria um documento tipo texto, escreve o conteúdo e carrega no site. Para editar um item específico de uma lista: $listaDocumentos = Get-SPWeb http:// evento.azeroth.com | Select -expand Lists | Where {$_.Title -eq "Palestrantes"} $item = $listaDocumentos.GetItemByID(2) $item["Title"] = $item["Title"] + " alterado pelo PowerShell" $item.Update() Backup O SharePoint 2010 possui v{rias formas de fazer backup, entre elas estão: backup pela Administração Central, STSADM, SQL Server e pelo PowerShell – o qual iremos www.codificandomagazine.com.br Dez / Jan - 10/11 | 32 SharePoint 2010 - Administração Avançada com PowerShell mostrar em seguida. Para listar todos os itens que estão No backup da farm usamos o comando Backup-SPFarm com o par}metro –ShowTree: e-magazine é o Path, que é o endereço do arquivo em que o backup ser{ armazenado. Figura 08: Execução do Backup Para ver o histórico do backup é usado o comando Get-SPBackupHistory passando o diretório dos backups. Figura 07: Mostra o conteúdo do backup da farm. Backup-SPFarm -BackupMethod Full directory "C:\Backup SharePoint\" BackupThreads 3 –Verbose Para fazer o backup de um site collection podemos utilizar o comando BackupSPSite, um dos par}metros obrigatório é o Identity, que é a Url da Site Collection. Mas se utilizarmos o Get-SPSite em conjunto com o pipe não precisamos passar o par}metro. O outro par}metro obrigatório Trabalhando com a Lixeira Para exibir todos os itens da lixeira do site é necess{rio obter a coleção de sites com o comando Get-SPSite e depois chamar o objeto da lixeira RecycleBin. No exemplo abaixo somente o ID e o título dos itens são exibidos: (Get-SPSite http://evento.azeroth.com).RecycleBin Select ID, Title | Codificando.net e-magazine O comando Backup-SPFarm é utilizado para executar o backup completo da Farm, alguns parâmetros que podem ser utilizados: BackupMethod permite selecionar o tipo de backup, que pode ser completo ou diferencial; Directory: é o local onde o backup será salvo; BackupThread: é o número de threads que serão utilizadas para fazer o backup e passando o parâmetro. Quanto mais threads utilizadas mais bancos estão sob backup ao mesmo tempo. Máximo de 10 threads. Verbose: o log do backup será exibido na tela, se esse parâmetro não for passado o backup será feito e o usuário não poderá ver o progresso do mesmo. Figura 09: Histórico do backup Figura 10: Visualização da RecycleBin do site. Para restaurar algum item da lixeira o commando Restore pode ser executado a partir do objeto RecycleBin passando por par}metro o ID do item excluído. (Get-SPWeb http:// evento.azeroth.com).RecycleBin.Restore ("3cfd8f67-8457-491d-af0a-ecec3b635c0c") Para acessar a lixeira da Site Collection é necess{rio substituir o comando Get-SPWeb por Get-SPSite, os outros métodos e par}metros são os mesmos. www.codificandomagazine.com.br Dez / Jan - 10/11 | 33 e-magazine SharePoint 2010 - Administração Avançada com PowerShell Outras tarefas administrativas O comando Get-SPAlternateUrl retorna todos os mapeamentos do Web Application: Get-SPAlternateUrl http://evento.azeroth.com Para mudar a porta da Administração Central, o comando SetSPCentralAdministration pode ser utilizado, para isso é necess{rio passar o par}metro “Port” com o número da porta: Agora, com o Management Shell que j{ vem na instalação do SharePoint 2010, a execução de scripts ficou muito melhor com recursos como execução de tarefas em lote, agendamento de tarefas, reaproveitamento de funções – visto que o script feito uma vez pode ser reutilizados v{rias vezes, ao invés do administrador precisar utilizar a interface repetidamente. Referências SharePoint 2010 Products administration by Set-SPCentralAdministration Confirm:$False -Port 5555 - using Windows PowerShell http://technet.microsoft.com/en-us/library/ee806878.aspx O comando Get-SPDatabase retorna todas as bases de conteúdo da farm: About Windows PowerShell http://technet.microsoft.com/en-us/library/dd315275.aspx Install SharePoint Foundation 2010 by using Windows PowerShell http://technet.microsoft.com/en-us/library/cc752946.aspx A guide to PowerShell’s Advanced Functions Figura 11: Visualização de databases da farm Utilizando o comando Get-SPProduct mostra detalhes sobre qual produto SharePoint est{ sendo utilizado, no caso o SharePoint Foundation: http://huddledmasses.org/a-guide-to-advanced-functions/ SharePoint 2010 PowerShell Cmdlets Reference http://dmitrysotnikov.wordpress.com/2009/10/19/ sharepoint-2010-cmdlet-reference/ Codificando.net e-magazine Figura 12: Produto SharePoint instalado Considerações Finais O PowerShell é a solução de administração de ambiente com scripts que est{ evoluindo cada vez mais na plataforma Microsoft, ele torna a tarefa de administrar ambientes muito mais produtiva. O seu uso no SharePoint trouxe novas possibilidades que até antes do SharePoint 2010 não existiam. Fabian André Gehrke ([email protected]): Graduado em Sistemas de Informação e pós-graduado em Gestão de Desenvolvimento de Software. Atua em desenvolvimento de sistema h{ 10 anos e a 2 se dedica a implementação e customizações de portais corporativos com SharePoint. É MCTS em WSS 3.0, MOSS www.codificandomagazine.com.br Dez / Jan - 10/11 | 34 e-magazine Ferramenta de desenvolvimento auxilia o programador .NET Por: Pablo Hadler Introdução Figura 1 - Tela Inicial de Solução do GASweb Vamos montar um pequeno exemplo de aplicação CRUD neste artigo usando um banco de dados j{ existente que pode ser baixado do CodePlex http:// chinookdatabase.codeplex.com/ este banco serve como alternativa ao famoso Northwind para demonstrações. Veja na figura 2 a tela de importação de banco de dados no GASweb. Codificando.net e-magazine Todo programador .NET usa e abusa do Visual Studio como sua IDE principal, e todos sabemos das inúmeras vantagens de usar esta IDE. Porém existem algumas coisas que uma boa ferramenta para desenvolvimento de aplicativos pode ajudar e muito. E é sobre isso que vamos tratar neste artigo. O GASweb é uma IDE de desenvolvimento que pode ser utilizada em conjunto com o Visual Studio e que vai aumentar bastante a produtividade dos programadores .NET , aplicações com CRUD, SITES, INTRANET podem ser desenvolvidas rapidamente usando esta ferramenta. Ao criar uma nova solução no GASweb você ver{ uma tela como mostra na figura 1. No lado direito mostramos a {rvore da solução que mostra os módulos que você incluiu no lado esquerdo você tem algumas abas de controles como: Banco de dados, componentes, imagens etc.. Figura 2 - Importando um Banco j{ Existente para o GASweb. www.codificandomagazine.com.br Dez / Jan - 10/11 | 35 e-magazine Ferramenta de desenvolvimento auxilia o programador .NET Após importar um banco de dados para dentro da IDE do GASweb você pode manipular os objetos deste banco dentro da própria ferramenta. Figura 3. O interessante neste cen{rio também é que caso você modifique algum campo na IDE a ferramenta j{ identifica a mu- Na p{gina principal podemos ver como ficaria nossa pagina default. Figura 5, veja que j{ foi criado automaticamente alguns controles nesta p{gina como menu, toolbar, e foi aplicado um template que pode ser customizado pelo desenvolvedor. dança e propõe um script para corrigir/ atualizar o seu modelo físico no banco existente aproveitando os dados j{ cadastrados. Figura 5 - Página Principal Vamos arrastar um modulo de p{gina de dados para a nossa solução, uma pagina de dados é um modelo de CRUD que o desenvolvedor pode customizar e colocar regras de negócio de forma muito simples, aumentando a produtividade em situações rotineiras. Figura 3 - Objetos do banco de dados Codificando.net e-magazine Na parte de módulos vemos que a ferramenta j{ criou alguns módulos padrões que podem ser manipulados pelo desenvolvedor. Figura 6 Ao criar o modulo de p{gina de dados, você deve clicar para abrir na parte central as propriedades deste módulo, e assim definir as informações necess{rias para o funcionamento da p{gina. Você define, por exemplo, o nome da p{gina Figura 4 - Pagina Principal (ASPX), qual a tabela do banco de dados ser{ usada e outras informações pertinentes ao módulo como mostra na figura 7. www.codificandomagazine.com.br Dez / Jan - 10/11 | 36 Ferramenta de desenvolvimento auxilia o programador .NET e-magazine Figura 7(propriedades de uma p{gina de dados) Vamos agora definir o design desta pagina, você ter{ duas formas de fazer isso, usar o modo autom{tico ou arrastar os controles e definir suas propriedades. No nosso caso eu usarei a forma autom{tica (CTRL+T) para criar esta tela, baseada na tabela de banco de dados definida para o modulo. Clicando em qualquer controle você Figura 9 (Regras de Negócio) Depois de criar a p{gina de dados vamos abrir nossa pagina principal e colocar uma chamada no menu para a p{gina que acabamos de criar. pode ver as propriedades e redefinir qualquer uma deles como: cores, fontes, comportamentos. Figura 10 Codificando.net e-magazine Na aba eventos vamos fazer a chamada da página. É possível ainda customizar comportamentos específicos criando seus próprios códigos. Isso deixa o usu{rio totalmente livre pra criar aplicações poderosas usando a ferramenta. Nesta mesma tela você define também algumas regras de negócio como: validações, processos e lançamentos em Figura 11 tabelas auxiliares. www.codificandomagazine.com.br Dez / Jan - 10/11 | 37 e-magazine Ferramenta de desenvolvimento auxilia o programador .NET Basicamente é isso que precisamos pra gerar uma aplicação com CRUD usando o GASweb, vamos gerar o código, abrir no Visual Studio 2010 para rodar a nossa aplicação. mostrar como uma boa ferramenta de geração de código pode ajudar você a construir aplicações poderosas de forma r{pida e usando o melhor da tecnologia ASP.NET. Você pode encontrar mais informações em www.gasweb.com.br. Pablo Hadler é analista programador da Gas Tecnologia, graduado pela unisul em web e programação, desenvolve aplicações em ASP.NET , WPF, Silverlight , é Na figura 13 visualizamos o código MCP ASP.NET 3.5 e atua ativamente gerado no Visual Studio. na comunidade Microsoft no @brasildotnet , @devbrasil e @devgoias. Codificando.net e-magazine Vamos rodar essa aplicação agora e abrir a nossa p{gina customer que criamos. Bom a ferramenta tem inúmeros recursos que não seria possível descrever em um único artigo, mas a ideia aqui foi www.codificandomagazine.com.br Dez / Jan - 10/11 | 38 e-magazine Codificando.net e-magazine www.codificandomagazine.com.br Dez / Jan - 10/11 | 39 e-magazine O que será de 2011? Por: Alexandre Tarifa Estamos acostumados aqui no Brasil nesta época de começo de ano a ver na TV, jornais, sites, etc diversas pessoas tentando adivinhar o futuro de diversas formas... fé, milagre, crença, etc etc... Eu particularmente não acredito muito nessas teorias, mas respeito e muito quem acredita. Mas o que isso tem a ver? Nesta coluna pretendo “adivinhar” as tendências e situações de 2011... Claro que é uma brincadeira baseada em palpite e sorte mesmo... Daqui um ano, veremos se fui bem :) Para mim 2011 ser{ um ano do “apagão” do profissional de TI. O Brasil est{ crescendo muito e o ano passado começou cheio de dúvidas... Com isso os projetos começaram com o freio de mão puxado e tenho certeza que muitos projetos do ano passado “sobraram” para este ano... Com isso, além do amplo crescimento dos projetos em 2011, teremos uma grande sobra de 2010. Naturalmente a {rea de TI que j{ é totalmente carente, ficar{ mais e mais... O que acontecer{? Contratação de profissionais qualificados a preço de ouro ou diamante Contratação de profissionais desqualificados com bons sal{rios (risco da bolha) Consultorias “especializadas” aparecendo a cada dia Problemas, problemas e mais problemas para contratar profissionais. Arrisco-me a dizer então que é o ano de investir nos profissionais atuais e na sua “categoria de base”... Invista em programas de est{gio, contrate garotos, arrisque com a geração que est{ entrando ou prestes a entrar na universidade. Valorize os seus profissionais e os reconheça... Se não alguém far{ isso por você. Se inspire nas empresas de fora do Brasil que as pessoas gostam de trabalhar como Google, Facebook, Microsoft, etc e pare com essa besteira de formalidades, ambiente de trabalho “ultrapassado”, etc. Também acredito que 2011 ser{ o ano do empreendedorismo entre os profissionais de TI... Esse efeito ser{ causado principalmente pelo grande crescimento do potencial de negócio na internet... Lembre-se que aqui no Brasil ainda engatinhamos e o potencial é assustador. www.codificando.net Dez//Maio Jan -2009 10/11 Abril || 40 e-magazine Os profissionais de TI vão se inspirar em “Mark Zuckerber´s” e conseguirão ver que conseguem usar o seu conhecimento para gerar e criar negócios, startups, etc... E muitos ganharão muito dinheiro com isso. Claro que a formação de TI nossa é muito deficiente no aspecto de negócio e administração... Mas é para isso que existem os grupos de investidores por ai para dar essa possibilidade. Para os profissionais de desenvolvimento, eu acredito que este ano é o de investir muito em conhecimento de internet... Tem uma frase que repito a cada entrevista que faço: “trabalhar com internet usa o mesmo ASP.NET, o mesmo C#, o mesmo .Net Framework... porém é um mundo 100% novo”. Temos pouquíssimos profissionais de desenvolvimento .Net preparados para desenvolver sites... parece ridículo! Mas desenvolver uma aplicação que milhares de pessoas acessam, de diversos tipos de navegadores, cidades, estados, países, internet, etc etc etc pode ser muito mais difícil do que sistemas com regras ultra complexas. nem ser{ o presente tão cedo, pois os preços de devices e serviços como 3G por exemplo, são dos mais caros do mundo... por isso uma popularidade tão baixa. 2011 é o ano da oportunidade... o ano de crescer, de pensar grande, de acreditar em grandes ideias e projetos! Chega de pensar pequeno, de trocar de emprego por R$ 500,00 e deixar um sonho para tr{s! É o ano de arriscar! De não desperdiçar ideias, de executar as ideias... arregaçar as mangas e por no ar! Nos momentos de lazer, o kinect est{ ai como um device totalmente inovador, com um custo acessível e com uma evolução muito grande que pode ser aproveitada por nós desenvolvedores... não pense no kinect só como um vídeo game... pense grande! Por que não usar a API dele e criar algo inovador? Conclusão: 2011 é o ano de inovar! Apostar! Colocar na pr{tica todas as ideias que j{ tivemos e deixamos no papel ou nos nossos sonhos. Feliz 2011 Acredito que também este ano ser{ um ano para criarmos novas soluções pensando em plataformas... twitter, facebook, kinect, etc... em 2010 j{ vimos muitas coisas, mas creio que este ano essa necessidade crescer{ muito... aquela frase conhecida “inicie uma aplicação integrada ao Facebook e tenha 500 milhões de usu{rios”. Em tecnologia, este ano de 2011 continuaremos dizendo que o celular é o futuro... infelizmente aqui no Brasil não é www.codificando.net Dez//Maio Jan -2009 10/11 Abril || 41