Visual Studio 2013

Apresentando o Visual Studio Online

Ed Blankenship

Se você faz parte de uma equipe ou trabalha individualmente, com o Visual Studio Online é possível planejar, criar, construir, compilar, testar e monitorar facilmente aplicativos bastante exigentes em qualquer lugar. Você não precisa de uma grande equipe de infraestrutura, e também não precisa tocar em nenhum servidor. Como alguém que já realizou centenas de instalações e atualizações do TFS (Team Foundation Server) como consultor, estou adorando ver que o trabalho árduo desse tipo de manutenção de rotina tornou-se coisa do passado. O Visual Studio Online é atualizado com os mais novos recursos de forma automática e contínua, para que você possa se concentrar no que precisa fazer mais: construir seus aplicativos!

O que há de novo?

Muitas vezes me perguntam: "O Visual Studio Online não é apenas o TFS na nuvem?" A resposta é sim e não.

O TFS foi lançado há oito anos e começou a migração para o serviço de gerenciamento de ciclo de vida de aplicativos (ALM) hospedado em nuvem em 2012 com o lançamento do Team Foundation Service. Houve uma grande adoção desde o primeiro dia, com equipes de desenvolvimento individuais iniciantes e até mesmo empresas de médio porte optando por deixar sua infraestrutura local para trás. O grande problema é o seguinte: em questão de poucas semanas, novos recursos aparecem para sua equipe conforme o grupo de produtos do TFS os envolve em suas iterações de desenvolvimento interno. Os titulares das contas podem ficar sabendo dessas novidades acompanhando a Linha do Tempo dos Recursos em bit.ly/17DV8Yl ou seguindo a mídia social, como VSOnline no Twitter (twitter.com/vsonline).

Então, sim, o Visual Studio Online é a próxima evolução do TFS e do Team Foundation Service, levando a você os fundamentos do ALM na nuvem. E não, não é exatamente a mesma coisa.

Quando a Microsoft se transformou em uma empresa de equipamentos e serviços, muitos de vocês perguntaram: "O que isso significa para mim como desenvolvedor?" Com o Visual Studio Online, agora a Microsoft tem uma plataforma de serviços que você pode usar para dedicar-se paralelamente aos seus próprios projetos pessoais ou trabalhar em sistemas maiores com sua equipe. Vou explorar alguns desses serviços.

ALM e além

Ser baseado na nuvem permite que o Visual Studio Online proporcione algumas experiências de alta qualidade:

Construir na nuvem. Sem servidor, sem sobrecarga – ótimo. O código começa uma imagem de servidor limpa sempre que a compilação é executada. Aquelas dependências e configurações de computador que você nem sabia e lhe causavam dores de cabeça durante o processo? Acabaram. Você ainda tem pleno acesso aos seus lotes de compilação, pois eles também são armazenados em seu repositório de origem no Visual Studio Online. Precisa de uma configuração mais complexa? Considere uma solução híbrida – poupe seus preciosos recursos locais para os fluxos de trabalho ou infraestrutura altamente personalizados e use o Visual Studio Online para o básico, como a integração contínua.

Teste de carga na nuvem. É difícil para as pessoas, novatos e até mesmo equipes maiores realizarem um teste adequado de desempenho e carga porque a configuração e os recursos são muito caros e demorados. Como você pode justificar o gasto quando você não sabe se o aplicativo que construiu agradará o público? Em vez de lançar e esperar, agora você tem acesso a testes de carga repletos de recursos como um serviço que é executado em uma infraestrutura da Microsoft, que sempre tem a versão mais recente do software de teste de carga. Você não fica limitado a esses computadores ultrapassados acumulados na sala de alimentação nem empacado tentando descobrir o que é necessário para instalar e configurar – você pode configurar e dimensionar seus testes da maneira que precisar para tornar sua execução realista. Se você for adicionar 100 usuários virtuais ou precisar fazer melhorias para se preparar para a temporada de festas, o serviço de teste de carga pode se encarregar do que você precisa e quando você precisar.

Monitoramento de aplicativos 360 graus em tempo real. Você não tem um centro de serviços monitorando em tempo integral o status e a integridade de seus sistemas de produção? Com o Visual Studio Online, agora você tem. O Application Insights do Visual Studio Online coleta informações preciosas sobre operação, desempenho e uso do cliente de seus aplicativos – sejam eles executados localmente, no Windows Azure, em provedores de nuvem de terceiros ou de uma forma híbrida desses três. Mais do que apenas manter as luzes acesas, você também pode monitorar proativamente o uso para ajudar a decidir que recurso bombástico criará em seguida. O serviço também aproveita as metainformações do aplicativo que podem ajudar quando você está investigando problemas em tempo real, como informações de compilação e implantação, o que lhe permite voltar à sua solução e código-fonte em qualquer um dos seus ambientes (inclusive o de produção). Ele já sabe porque está no mesmo repositório de dados do restante de suas informações de ALM, o que poupa tempo.

Traga seu próprio IDE ou baixe um editor de código leve no seu navegador. O Visual Studio Online torna mais fácil para que você atualizar seu código de qualquer maneira, a qualquer hora, em qualquer lugar. Você tem o Visual Studio, é claro, e agora pode usar um verdadeiro repositório Git para conexão perfeita com Eclipse, Xcode e muitos outros IDEs para seus projetos de desenvolvimento de plataforma cruzada. Caso contrário, simplifique: atualize em tempo real, usando qualquer navegador moderno, com o novo e leve editor de código do Visual Studio Online, cujo codinome é "Mônaco". Esse editor de código é complementar ao uso do Visual Studio em seu desktop.

Assim como você, a Microsoft está comprometida em agregar valor continuamente, com novos lançamentos significativos para o Visual Studio Online a cada três semanas. Se você tem uma grande ideia para um recurso, pode até mesmo lançar seu próprio voto no UserVoice. Então, o que você está esperando? Acesse visualstudio.com e mãos à obra. É gratuito para os primeiros cinco usuários e um benefício incluído para assinaturas MSDN, e há descontos introdutórios para serviços pré-pagos e planos de usuários adicionais do Visual Studio Online para outros membros de sua equipe. Você não tem que se preocupar com armazenamento adicional, transações, largura de banda, ciclos de computação etc., pois eles estão incluídos nos planos de usuários e serviços pré-pagos.

O céu é o limite: configure seu projeto para o sucesso

Quer ver como o Visual Studio Online pode ajudá-lo a criar o próximo aplicativo mais arrojado do mercado? O cenário a seguir guiará você por um exemplo de iteração inicial com o Visual Studio Online. Se você já usou o TFS ou o Team Foundation Service, parte disto lhe parecerá familiar.

Este é o cenário: Você é o desenvolvedor líder de uma pequena equipe com recursos limitados, mas uma grande ideia para um aplicativo. Você precisa começar rapidamente, mas espera que o aplicativo fique no mercado por um tempo, então, quer colocar seu projeto no caminho do sucesso contínuo. Você não quer perder tempo montando infraestrutura, pipelines de implantação ou equipamentos de teste. Você só quer criar seu aplicativo e colocá-lo nas mãos de seus clientes o mais rápido possível.

Começar é rápido, fácil e indolor. Acesse visualstudio.com, encontre o link “Comece a usar gratuitamente” no canto superior direito, preencha o formulário e pronto!

Quando você tiver uma conta, precisará de um lugar onde você e sua equipe possam trabalhar. No Visual Studio Online, o contêiner de nível superior é um projeto de equipe, então, o primeiro passo é criar um projeto desse. Você precisa tomar duas decisões importantes neste momento:

  • Que tipo de repositório de controle de código-fonte usar e
  • Qual modelo de processo seria o melhor para controlar seus itens de trabalho.

A escolha do controle de código-fonte está entre controle de versão distribuído com o controle de versão Git e tradicional que você já conhece do TFS. Por exemplo, suponhamos que sua equipe esteja atualmente escrevendo um aplicativo para o Windows Phone 8 e seus serviços de back-end, mas planeja no final portar o aplicativo móvel para dispositivos iPhone e Android. Sabendo que você terá de trabalhar em várias plataformas e com diferentes IDEs, você escolhe o Git como o repositório de controle de código-fonte. Para saber mais sobre a escolha entre o TFCV (Team Foundation Version Control) e o Git, confira o vídeo do Channel 9 em bit.ly/16XPcUK.

O modelo de processo é o que define seu fluxo de trabalho: como seus itens de trabalho são chamados, por que estados eles passam enquanto você trabalha neles e outros metadados. Você pode escolher entre três modelos: Scrum, Agile e CMMI (Capability Maturity Model Integration). Se sua equipe estiver fazendo CMMI ou um processo mais formal, você provavelmente deve escolher esse modelo. Se você está em uma equipe ágil ou não tem um processo específico, escolher entre os modelos Agile e Scrum. A maior diferença entre os dois é como eles lidam com os erros e o nome que eles usam para itens de lista de pendências. O modelo Agile trata bugs como tarefas, ao passo que o modelo Scrum exibe-os na lista de pendências juntamente com outros itens de lista de pendências. Se você estiver na dúvida, fique com o modelo Scrum – que é o padrão por um bom motivo. Escolher o modelo Scrum não significa que você tem de fazer Scrum,simplesmente significa que você verá a terminologia do Scrum usada nos tipos de item de trabalho. O Scrum refere-se a requisitos como PBIs (itens de lista de pendências do produto) e o modelo Agile refere-se a eles como Histórias de Usuário. Saiba mais sobre como trabalhar com projetos de equipe e as principais diferenças entre os modelos de processo em bit.ly/Vh0azl.

Depois de ter sua conta e seu projeto de equipe, é hora de adicionar os membros da equipe. Para adicioná-los, você deve ter as contas deles da Microsoft (antigo Live ID), ir até a página inicial de seu projeto (myawesometeam.visualstudio.com) e seguir o fluxo ilustrado na Figura 1.

Adding Team MembersFigura 1 Adicionando membros da equipe

Se você quiser ajustar as permissões e outros detalhes administrativos, use o ícone de configurações na parte superior.

Não fique para trás: configure sua primeira iteração

Com os detalhes administrativos completos, está na hora de começar a trabalhar. Você escolheu o modelo Scrum, mas sua equipe (vocês cinco) não está completamente convencida da necessidade de adotar o Scrum formal. Você sabe que quer trabalhar em iterações, fornecer código funcionamento o mais rápido possível e incorporar o feedback de seus clientes ầ próxima iteração. Você também quer acompanhar que trabalho está em andamento e que trabalho está por vir, e tem uma maneira de priorizar esse trabalho.

Antes de começar com itens de trabalho, vou dar uma rápida olhada em alguns detalhes. Escolher o modelo Scrum significa que você trabalhará principalmente com os recursos, PBIs, bugs e tarefas (existem outros tipos de itens de trabalho, mas a maioria deles você ajuda em segundo plano). A Figura 2 descreve as relações entre esses tipos de itens de trabalho, que são mantidos com links de itens de trabalho.

Work Item RelationshipsFigura 2 Relações entre itens de trabalho

Geralmente, um recurso representa uma quantidade de trabalho que abrangerá iterações (referidas, por vezes, como épicas), PBIs são unidades de valor do cliente que podem ser concluídas em uma única iteração, e as tarefas são unidades de trabalho que podem ser concluídas em alguns dias. Usá-los dessa forma permite que você faça o escopo da visão de seu projeto para qualquer nível de granularidade que faça sentido no momento, seja no nível de portfólio ou nos detalhes. Há muito mais para itens de trabalho do que abordo aqui, e recomendo que você leia os artigos relevantes no MSDN para obter mais informações.

Uma nota final sobre o trabalho com itens de trabalho: não é só porque um campo existe que você tem que usá-lo. Use os campos que fazem sentido para sua equipe e ignore aqueles que não fazem. Meu conselho que já ajudou muitas equipes no passado é manter as coisas o mais simples possível.

É hora de começar a preencher a lista de pendências, então, clique na guia Trabalho da página do projeto. Isso apresentará sua lista de pendências de produtos.

O menu à esquerda permite que você faça um escopo de sua visão quanto ao nível adequado de granularidade, e você pode adicionar itens nesse nível da lista à direita. Reordene seus PBIs verticalmente para priorizar sua lista de pendências.

Agora que você tem trabalho na Lista de Pendências de Produtos, está na hora de começar a pensar em sua primeira iteração. Sua equipe quer mover-se rapidamente, por isso decide fornecer iterações em uma semana, com o objetivo de entrar em produção a cada terça-feira. A primeira coisa a fazer é dar algumas datas à sua iteração. Você pode fazer isso no menu de configurações ou, se o escopo de sua visão for uma iteração em particular, no link "Definir Datas".

Depois que sua iteração tiver as datas atribuídas, você poderá começar a atribuir PBIs da lista de pendências à sua iteração arrastando-os da direita e soltando-os na iteração apropriada à esquerda. Quando os PBIs estiverem em iteração, você poderá dividi-los em tarefas individuais para os membros de sua equipe, como ilustrado na Figura 3.

Iteration PlanningFigura 3 Planejamento de iteração

Essa é apenas a ponta do iceberg em relação ao que você pode fazer com as ferramentas de planejamento agile. Conforme sua equipe aumenta e suas necessidades se tornam mais complexas, você pode adicionar coisas como planejamento de capacidade, previsão e gerenciamento de planos de teste. Por enquanto, essa é a máxima complexidade de que você precisa. Então, comece a concluir os PBIs.

Enquanto você vai eliminando os itens da lista de pendências, é preciso manter o controle do trabalho em andamento. Sua equipe quer ter uma ideia melhor do status da iteração atual, por isso, durante a próxima reunião de execução diária, você apresentará o painel de tarefas de iteração.

Isso lhe dá uma boa visão do status de cada PBI e ajuda a manter sua reunião de execução diária dentro do cronograma. O painel de tarefas de iteração é de arrastar e soltar e habilitado para toque, por isso, você pode fazer atualizações rapidamente durante a reunião para manter o painel (e os estados de seus itens de trabalho e as atribuições da equipe) atualizado.

O painel de tarefas de iteração é ótimo para o trabalho de monitoramento, mas para ter uma ideia do fluxo de valor por sua equipe, você precisa de um painel com escopo para o nível de PBI ou recurso. Mude para o painel Kanban, que é acessível pela lista de pendências de produtos.

Aqui, você pode definir limites de trabalho em andamento para cada coluna, controlar o fluxo de trabalho e conferir diagrama de fluxo cumulativo de sua equipe. Você quer que o painel Kanban reflita o fluxo de trabalho de sua equipe, então, clique no botão Personalizar colunas e faça as alterações apropriadas. Mude o nome das colunas e adicione novas, se quiser. O bom é que cada equipe pode personalizar as colunas de acordo com suas próprias necessidades sem afetar outras equipes.

Agora, suponhamos que você tenha conseguido seu primeiro investidor! Infelizmente, essa empresa não é do tipo silencioso e, para manter o fluxo de caixa, ela quer atualizações de status semanais sobre valor proporcionado e a qualidade do produto. Isso parece muita sobrecarga. Felizmente, você conhece os gráficos de itens de trabalho, ilustrado na Figura 4, que permite que você gere os relatórios necessários de maneira rápida e fácil.

Work Item ChartsFigura 4 Gráficos de itens de trabalho

Dez minutos depois, o investidor está satisfeito e você pode voltar a deixar seus clientes contentes. Você pode até mesmo fixar os gráficos de itens de trabalho que você criou ao painel da equipe.

Agregando valor: criando seu aplicativo

Você sabe como codificar. Você também sabe que manter a alta qualidade é de suma importância para seus clientes. Infelizmente, você e sua equipe estão tão cheios de novas ideias que, às vezes, é fácil correr para a próxima noção, sem dar forma totalmente à atual.

Sua base de código nem sempre compila com êxito. Depois de uma rápida retrospectiva, a equipe decide que precisa para começar a usar compilações automatizadas, usando uma compilação de integração contínua (CI) ou até mesmo implantar um check-in fechado para manter códigos incorretos fora do repositório. Você não tem a infraestrutura ou o tempo para criar seu próprio servidor de compilações local. É aí que o serviço de compilação na nuvem do Visual Studio Online entra.

No Team Explorer do Visual Studio IDE, selecione a página de compilação e, em seguida, Nova Definição de Compilação. Dê um nome à nova definição, selecione o disparador e execute o restante do assistente. Não se esqueça de salvar sua definição de compilação quando terminar.

O fato de ser uma compilação CI (ou qualquer outro tipo de disparador) não significa que você não pode iniciá-la manualmente sempre que precisar de uma compilação fora do programado. Obviamente, você pode iniciá-la no Team Explorer, mas onde está a diversão nisso? Abra o navegador que você mais usa e vá para a aba Compilar da página do projeto. Selecione sua compilação na lista à esquerda e clique em Enfileirar Compilação.

Depois de ter uma compilação CI configurada e em andamento, vá para sua sala de equipe para ver os resultados e compartilhar a boa notícia com sua equipe. Para obter mais informações, confira bit.ly/158otoM.

Teste de carga sob demanda

Sua base de usuários está crescendo rapidamente, mas os usuários estão relatando muita lentidão em seu site. Você não consegue identificar a origem da lentidão, então, quer criar alguns testes de desempenho e de carga realistas para ajudar a descobrir os pontos lentos. Você começa a gravar alguns testes de desempenho na Web com o Visual Studio Ultimate. Cada teste representa uma forma típica de um usuário interagir com seu site, o que é chamado de transação sintética.

Em seguida, você combina os testes de desempenho para simular uma carga típica do sistema. Mais tarde, você pretende criar alguns outros cenários, mas, por enquanto, você só quer ficar com o cenário normal do caminho feliz.

Depois de equilibrar seus testes de desempenho em um teste de carga, você define o teste de carga para executar no Visual Studio Online abrindo o arquivo de configurações de teste e escolhendo o Visual Studio Online. Em seguida, você pode observar o desenrolar dos dados, conforme ilustrado na Figura 5.

Viewing Load-Test ResultsFigura 5 Vendo os resultados do teste de carga

Sim, você fez tudo isso em menos de uma hora. Para obter instruções mais detalhadas, consulte bit.ly/18hIcCm.

Monitore e aprenda continuamente: colete dados de telemetria

Seu aplicativo e seus sites e serviços de suporte do Windows Azure estão no ar. Parece que os usuários estão baixando-o. Parece que as pessoas estão navegando no site e o aplicativo cliente está chegando aos serviços de back-end. Alguma coisa, pelo menos, parece estar acontecendo. Você só não sabe muito bem o que...

Você precisa começar a coleta dados de telemetria em toda o aplicativo. Não apenas as páginas da Web, o desempenho do servidor e o aplicativo Windows Phone 8, e não apenas em sua camada de dados do Windows Azure. Você precisa de um panorama completo de todo o fluxo de UX de ponta a ponta. Conheça o novo serviço Application Aplicação no Visual Studio Online.

Para começar a usar o serviço Application Insights, vá para a página inicial da sua conta do Visual Studio Online e clique no bloco do Application Insights. Você precisa registrar seu aplicativo com seu código de convite porque o serviço está atualmente em pré-visualização limitada. Feito isso, você pode configurar um teste simples de ping de uma URL (o Novo Teste de URL Individual) e ver os dados começarem a fluir. Este é um exemplo de um teste de ping básico, mas você também pode aproveitar as transações sintéticas criadas como testes de desempenho na Web para seus testes de carga anteriores. Em seguida, você pode monitorar seu aplicativo com testes de ping básicos ou transações sintéticas de vários datacenters do mundo todo.

Você também pode configurar o Microsoft Monitoring Agent para relatar dados de monitoramento de desempenho de aplicativos para o serviço Application Insights. Isso fornecerá um panorama ainda melhor sobre como os serviços do seu aplicativo estão se comportando com cada uma de suas dependências, incluindo bancos de dados e outros serviços.

Para a maioria dos sites e aplicativos conectados, nada é mais importante do que o tempo de atividade. Seu aplicativo não é diferente e, infelizmente, você foi pego de surpresa por um cliente reclamando que seu serviço estava fora do ar quando você pensava que ele estava funcionando. Você precisa de monitoramento de disponibilidade ativo e constante para ser o primeiro a saber quando um teste falha ou seu site está fora do ar. É exatamente isso que o Application Insights pode lhe oferecer.

Saber se seu site está disponível é ótimo. Saber exatamente que linha de código ou procedimento armazenado está deixando ele lento é melhor ainda. Ser capaz de ir diretamente para essa linha de código no IDE de seu serviço de monitoramento de desempenho é, assim, absolutamente incrível. O Application Insights descobre dependências, mostra quando você fez novas implantações e agrega todas as informações de desempenho para informar as 10 partes mais lentas do seu aplicativo.

Agora que você tem o monitoramento de desempenho do Application Insights, você reduziu drasticamente o tempo médio de reparo e restauração do serviço.

Quando lançou seu aplicativo pela primeira vez no mercado, você tinha uma sólida compreensão do que seu aplicativo iria fazer e como seus clientes iriam interagir com ele. Agora as necessidades dos clientes estão evoluindo e seu aplicativo precisa evoluir com elas. Você tem muitas hipóteses sobre como melhorar a experiência do cliente, mas precisa dos dados de telemetria e de metadados de telemetria para provar suas suposições e hipóteses. Com a inclusão de monitoramento de uso no Application Insights, você obtêm os dados multidimensionais que orientarão seus investimentos futuros em seu aplicativo, como ilustrado na Figura 6.

Application Insights DashboardFigura 6 Painel do Application Insights

Conforme sua equipe trabalha cada vez mais com o Application Insights, você começa a perceber que já passou por uma mudança de paradigma na forma como cria software. Esses dados não são mais uma reflexão tardia. Você tornou esse processo um membro pleno do ciclo de vida do aplicativo, influenciando drasticamente a opinião de sua equipe sobre o aplicativo. Você pode até mesmo usar o SDK para começar a relatar métricas de negócios personalizadas que podem ser acompanhadas em seus painéis ou para enviar eventos de rastreamento de desenvolvedor personalizados.

O Application Insights criou uma conexão entre seus desenvolvedores e a forma como os clientes usam o aplicativo. Questões sobre como o usuário vai interagir com o aplicativo, como uma nova alteração afetará o desempenho e como manter a disponibilidade quase perfeita do aplicativo são discutidas ao longo de todo o ciclo de vida.

Conclusão

Então, você tem: uma rápida introdução ao mais novo membro da família Visual Studio. O Visual Studio Online é uma plataforma de ferramentas e serviços baseada na nuvem que ajuda você a planejar, implementar e gerenciar seu aplicativo. Ela evoluiu a partir do TFS e do Team Foundation Service, levando a plataforma Microsoft ALM para a nuvem e fortalecendo-a com novos serviços como Application Insights e IDE online. Isso é só o começo. Mesmo se estiver usando o TFS no local, você pode aproveitar serviços do Visual Studio Online, como teste de carga e Application Insights, quando precisar. A equipe do Visual Studio Online está empenhada em agregar valor continuamente, com atualizações significativas em poucas semanas regularmente.

Ed Blankenship é gerente de produtos para Visual Studio Online e Visual Studio ALM na Microsoft. Antes de entrar para a Microsoft, ele foi eleito o Microsoft MVP do Ano (Visual Studio ALM, Team Foundation Server) de 2010 e foi Microsoft MVP por cinco anos. Ele é o autor principal de dois livros sobre o Team Foundation Server, incluindo “Professional Team Foundation Server 2012” (Wrox, 2013).

Agradecemos aos seguintes especialistas técnicos pela revisão deste artigo: Andrew Clear e Cheryl Hammond (consultores de ALM da Northwest Cadence)
Andrew Clear e Cheryl Hammond são consultores de ALM da Northwest Cadence. Eles escreveram muitos artigos e apresentações sobre o Visual Studio ALM, cocriaram uma série de treinamento de agilidade para empresas e prestam consultoria para clientes de grande e pequeno porte na América do Norte, Europa e Ásia.