Featured Posts

Artigos da Semana no TI Especialistas - 18-04/2013 Cadastre as vagas de trabalho da sua empresa gratuitamente no TI Especialistas - http://bit.ly/Yxebts PROMOÇÃO: Estude de qualquer lugar e em qualquer horário com os cursos Online de ITIL, ISO 2000,...

Read more

Artigos da Semana no TI Especialistas - 15/04/2013 Cadastre as vagas de trabalho da sua empresa gratuitamente no TI Especialistas - http://www.tiespecialistas.com.br/jobs/ PROMOÇÃO: Cursos Online de ITIL, ISO 2000, ISO 27002, Cloud Computing, COBIT...

Read more

Artigos da Semana no TI Especialistas - 11/04/2013 Cadastre as vagas de trabalho da sua empresa gratuitamente no TI Especialistas - http://www.tiespecialistas.com.br/jobs/ PROMOÇÃO: Cursos Online de ITIL, ISO 2000, ISO 27002, Cloud Computing, COBIT...

Read more

Artigos da Semana no TI Especialistas Lançamos nossa loja on-line, confira: http://tiespecialistas.alavancar.me/afiliado/tiespecialistas/ TI Especialistas lança portal com Banco de Vagas e Currículos gratuito, saiba mais: http://www.tiespecialistas.com.br/2013/03/ti-especialistas-lanca-banco-de-vagas-e-curriculos-gratuito/ Curso: Brasília:...

Read more

Confira as novidades no TI Especialistas Lançamos nossa loja on-line, confira: http://tiespecialistas.alavancar.me/afiliado/tiespecialistas/ TI Especialistas lança portal com Banco de Vagas e Currículos gratuito, saiba mais: http://www.tiespecialistas.com.br/2013/03/ti-especialistas-lanca-banco-de-vagas-e-curriculos-gratuito/ TI...

Read more

  • Prev
  • Next

Visual Studio Team System para testadores de software

Category : Programação, Tecnologia

Embora com os desafios da necessidade atual de escrever soluções de negócios cada vez mais rápido, muitas vezes nos sentimos tentados a diminuir a garantia de qualidade do software. Além disso, aquelas organizações que adotam os testes em seus projetos de desenvolvimento de software em geral não têm uma boa seleção de ferramentas integradas para oferecer suporte a suas necessidades de teste, sendo forçadas a adquirir soluções de testes de software mal integradas e muito caras. A Microsoft encarou esses desafios fornecendo um conjunto de ferramentas de teste integradas para desenvolvedores e testadores.

Nós já vimos como os desenvolvedores têm uma estrutura integrada de testes de unidade. Bem, o Team Test leva isso um passo adiante, fornecendo mais capacidades de teste ainda e um console de gerenciamento que ajuda a gerenciar, executar e controlar os testes. A tabela abaixo apresenta uma lista de testes que podem ser criados, gerenciados e executados com o Team Test.

Tipos de Teste do Team System

Tipo de Teste Descrição
Testes da unidade Os testes da unidade são partes do código que testam as funções e os métodos de seu aplicativo. Os testes de unidade são usados para testar código-fonte existente e eles são essenciais para o desenvolvimento controlado por teste.
Testes da Web Os testes da Web permitem o registro de atividade de qualquer página da Web. Após registrado, você pode modificar o teste da Web, convertê-lo em código e adicionar regras de validação e extração nos resultados de retorno de cada solicitação.
Testes ordenados Os testes ordenados permitem o agrupamento e seqüenciamento de qualquer número de outros testes de unidade ou testes da Web.
Testes de carga Os testes de carga permitem a reprodução de qualquer combinação de testes da Web e testes da unidade repetidamente, de acordo com um padrão de carga definido. Você também pode especificar características de carga como o número de usuários simultâneos, tipo de navegador e características da linha de comunicação.
Testes manuais Os testes manuais definem um conjunto de etapas manuais que devem ser executadas por um testador para validar alguma funcionalidade de um aplicativo. O Team System oferece um mecanismo para definir os testes manuais (em Word ou formato de texto). Além disso, esses testes podem ser gerenciados e executados juntamente com outros tipos de testes.
Testes genéricos Um teste genérico é um programa existente incluído em um arquivo invólucro para funcionar como teste do Visual Studio.

Fonte: MSDN

Visual Studio Team Foundation Server

Category : Gerência de Projetos, Programação, Tecnologia

O Team Foundation Server talvez seja o conjunto mais significativo de recursos fornecidos pelo Team System. O Team Foundation ajuda a facilitar o trabalho de toda a equipe, fornecendo um novo sistema de gerenciamento de controle de origem, capacidades de controle de item de trabalho, automação de compilação, análise integrada e relatórios e um site de projeto colaborativo integrado. Ele também proporciona capacidades de gerência de projeto com a integração entre o Microsoft Project e o Microsoft Excel 2003.

Gerenciamento de controle de origem

O Microsoft Visual SourceSafe (VSS) é um dos sistemas de controle de código-fonte mais comuns para os desenvolvedores Microsoft e tem desempenhado um amplo e importante papel para os desenvolvedores de software ao longo dos anos. Entretanto, o VSS não ficou conhecido por sua escalabilidade, estabilidade, robustez ou capacidade de trabalhar bem com fusos horários e na Internet. O Visual Studio Team Foundation agora vem com um mecanismo de controle de origem inteiramente novo que soluciona todos esses problemas. Os componentes do servidor de controle de origem do Team Foundation utilizam o Microsoft SQL Server 2005 e representam uma solução de controle de origem escalável e bem arquitetada que funciona bem em HTTP e HTTPS, oferecendo suporte a outros recursos, como reconhecimento de fuso horário, que o ajudará a facilitar o desenvolvimento em vários locais geográficos, como aquele que é necessário para as equipes de desenvolvimento no exterior. A solução de controle de origem do Team Foundation também exerce um importante papel no processo de desenvolvimento de software, pois oferece suporte a diretivas de check-in, que são regras que governam o processo de check-in. Por exemplo, você pode exigir que os desenvolvedores associem um check-in a pelo menos um item de trabalho antes do processo de check-in, ajudando a estabelecer o rastreamento entre os itens de trabalho e o trabalho de desenvolvimento efetivamente concluído. Você também pode criar diretivas de check-in exigindo a execução da análise de código, ou até mesmo a execução de todos os testes de unidade antes da ação de check-in. Se um desenvolvedor precisar substituir essas diretivas, uma mensagem de email de notificação poderá ser enviada automaticamente aos membros adequados da equipe explicando a exceção. A Figura 11 e a Figura 12 demonstram como as diretivas e observações de check-in podem ser controladas pelos administradores de projeto.

Adicionando políticas de check-in

Adicionando observações de check-in

Outro recurso importante do controle de origem do Team Foundation são as prateleiras. As prateleiras permitem colocar seu código com check-out em um “conjunto de prateleiras” localizado no servidor, onde ele é mantido até que você esteja pronto para tirá-lo da prateleira. Essencialmente, isso permite que você armazene o código de trabalho em andamento em uma “prateleira” do servidor, sem sobregravar ou corromper o código existente na árvore viva. Isso é útil quando você precisa usar vários computadores, transferir trabalho parcialmente concluído para outro desenvolvedor ou alternar rapidamente para trabalhar em um problema de alta prioridade e, portanto, tirar suas alterações atuais do caminho.

Controle de item de trabalho

Como mencionado anteriormente, um item de trabalho é “algo” que pode ser atribuído e concluído por alguém de sua equipe. Em seu nível mais simples, ele poderia ser uma tarefa simples com uma transição de estado simples, como “aberto” e “fechado”. Entretanto, a maioria dos projetos tem tipos diferentes de itens de trabalho, cada um com suas próprias características, estados e transições de fluxo de trabalho. Outros exemplos de itens de trabalho incluiriam bugs, problemas, riscos ou mesmo recursos. Todos os itens de trabalho, independentemente de seu tipo, são armazenados no Team System. Quando você cria um projeto novo, a definição do projeto também determinará o número e tipo de itens de trabalho que você poderá criar. Cada tipo de item de trabalho pode ter seus próprios estados e transições e, em geral, cada item de trabalho pode ser atribuído a alguém, fornecendo informações como iteração alvo ou versão, prioridade etc. Os itens de trabalho também podem ser ligados a outros itens de trabalho, arquivos de controle de origem e mesmo um changeset dentro do controle de origem. A capacidade de vincular os itens de trabalho entre si e entre diferentes itens, como arquivos e código-fonte, oferece o rastreamento necessário em quase todos os projetos de desenvolvimento de software. Não se preocupe, este é um modelo bastante extensível e você pode fazer as alterações necessárias para oferecer suporte a necessidades específicas de seu projeto.

Exemplo de uso dos itens de trabalho para rastreamento

O Team System oferece um conjunto de itens de trabalho e você pode interagir com eles usando muitas ferramentas diferentes – desde o Microsoft Project, Microsoft Excel e Visual Studio até o Team Explorer – como mostram a Figura 14 e a Figura 15.

Definição de item de trabalho no Visual Studio (clique na imagem para ampliá-la)

Itens de trabalho no Excel (clique na imagem para ampliá-la)

Automação de compilação

A automação de compilação é uma prática recomendada de extrema importância para as equipes de desenvolvimento de software. O Team System oferece automação de compilação com o Team Foundation Build, que usa o MSBuild, pode executar testes da unidade associados e análise de código, libera compilações para um servidor de arquivos e publica relatórios de compilação para o restante da equipe. Os resultados e logs do Team Foundation Build podem ser propagados para o data warehouse do Team System para relatórios e análise. Além disso, o Team Foundation Build está totalmente integrado a outras ferramentas do Team System, como controle de origem e controle de item de trabalho.

Com o Team System, você pode ter muitos tipos diferentes de compilações que podem ser definidos e personalizados de acordo com suas próprias necessidades. Na verdade, o Team System oferece um assistente para iniciá-lo, como mostra a Figura 16.

Definindo um novo tipo de compilação

Os resultados de todas as compilações são mantidos e podem ser vistos dentro do Visual Studio ou por relatórios de compilações. Também é importante observar que você pode configurar muitos computadores de compilação para realmente executar o processo de compilação e pode disparar o processo de compilação por meio da GUI ou da linha de comando. Além disso, você pode configurar o Team System para notificá-lo sobre os resultados de uma compilação por email, como mostra a Figura 17.

Configurando alertas de eventos de compilação

Relatórios

Não seria ótimo se você pudesse gerar automaticamente um relatório que descrevesse a rapidez com que sua equipe está trabalhando todas as semanas, com base em suas atividades reais? Bem, adivinhe só! Com os recursos de relatórios do Team Foundation, você terá essa capacidade. O Team Foundation está incorporado ao SQL Server 2005 e armazena tudo sobre os itens de trabalho, atributos de qualidade, testes e resultados de testes, bem como resultados de compilação. Todas essas informações são agregadas com o SQL Server Analysis Services e ligadas aos recursos de relatório do Team System. Na verdade, os relatórios que o Team System oferece são criados com o SQL 2005 Reporting Services. Isso significa que você terá a capacidade de modificar os relatórios existentes e até mesmo criar seu próprio relatório de acordo com suas necessidades.

Muitos relatórios serão fornecidas com o Team System (um relatório de exemplo é descrito na Figura 18), porque eles fazem parte dos Team System Project Templates usados durante a criação dos novos Projetos do Team System. À medida que você personalizar o Team System Project Templates para criar seus próprios tipos de item de trabalho ou modificar as definições de itens de trabalho existentes, provavelmente desejará personalizar os relatórios padrão.

Figura 18. Exemplo de relatório (clique na imagem para ampliá-la)

Site de projeto

Ao criar um novo projeto do Team System, você deve criar um novo Microsoft Windows Sharepoint Site para ampliar ainda mais a colaboração do projeto. O Microsoft Windows Sharepoint Services oferece o gerenciamento de documentos e as capacidades de armazenamento da documentação criada pela equipe para o projeto. A definição do modelo de projeto do Team System também define a estrutura e o conteúdo do site do Sharepoint, imediatamente abaixo da estrutura da biblioteca de documentos e dos modelos de documento. Na verdade, você pode configurar o Team System para criar um site Project Portal com todos os artefatos que precisam ser preenchidos como parte de seu projeto, garantindo que o artefato correto seja entregue no momento certo.

O site Windows Sharepoint também conterá partes da Web que permitem visualizar os relatórios diretamente no site. Este é um recurso muito importante, porque agora os participantes não desenvolvedores do projeto sem o Visual Studio podem ir a um lugar para entender o estado geral, o status e os detalhes do seu projeto, diretamente em seus navegadores.

Site de projeto (clique na imagem para ampliá-la)

Gerência de projeto

Os gerentes de projeto em geral utilizam o Microsoft Project ou o Microsoft Excel para gerenciar “tarefas” que precisam ser feitas. No mundo do Team System, isso se traduz em poder gerenciar itens de trabalho de diversos tipos em toda a sua equipe. O Visual Studio Team System oferece uma interface interna que permite aos gerentes de projeto interagirem com os itens de trabalho. No entanto, em muitos casos, é bem mais natural fazer com que os gerentes de projeto usem as ferramentas que mais utilizam para realizar seus trabalhos. Por esse motivo, o Team System permite sincronizar os itens de trabalho com o Microsoft Excel e o Microsoft Project. Nessas ferramentas, os gerentes de projeto estão livres para atribuir e controlar todos os itens de trabalho (seja qual for o tipo) de forma natural e produtiva.

Os relatórios também são extremamente importantes para os gerentes de projeto. Com o Team System, eles poderão utilizar os diversos relatórios internos fornecidos com o produto, e também as ferramentas de análise como o Microsoft Excel para fazer a conexão com o data warehouse do Team System e analisar os dados do projeto. Os gerentes de projeto também podem usar os recursos do site do Windows Sharepoint criados para cada projeto do Team System, para facilitar a comunicação e gerenciar todos os documentos e artefatos do projeto.

Extensão e personalização do Team System

Como já foi mencionado, o Team System não é apenas um conjunto de ferramentas: ele é uma plataforma. Não quero realmente passar muito tempo discutindo extensão, além de listar as áreas que podem ser estendidas pelo Team System. A tabela a seguir oferece uma visão geral dessas opções.

Resumo da extensão do Team System

Área de personalização Descrição
Modelos de projeto Um modelo de projeto do Team System é usado durante a criação de um novo projeto do Team System e define todos os aspectos do projeto, incluindo relatórios, definições de item de trabalho, diretivas de controle de origem, estrutura e conteúdo do Windows Sharepoint Services, orientação de processo e permissões. Você pode definir seus próprios modelos de projeto de acordo com as necessidades organizacionais ou de projeto. Observe que não há ferramentas incorporadas no Team System para personalizar esses modelos e, assim, eles devem ser modificados com seu editor XML preferido.
Itens de trabalho Você pode definir seus próprios itens de trabalho ou personalizar itens de trabalho existentes – usando novamente seu editor XML preferido.
Controle de origem Para cada projeto do Team System você pode definir as diretivas de controle de origem e os campos de notas de check-in.
Tipos de compilação Você pode definir seus próprios tipos de compilação dentro do Visual Studio Team System.
Site do Windows SharePoint Services Você pode modificar os documentos contidos no site do Windows Sharepoint, além de usar os recursos de personalização do Windows Sharepoint Services para ajudar a promover maior colaboração entre a equipe.
Relatórios Você pode modificar os relatórios existentes ou criar relatórios novos usando o SQL 2005 Reporting Services, que aproveita as informações armazenadas no data warehouse do Team System.
Kit de ferramentas de extensão Você pode baixar o kit de ferramentas do Visual Studio Team System para obter informações detalhadas sobre as opções de extensão. Esse kit de ferramentas também demonstra como criar seus próprios tipos de teste e como explorar o modelo de objeto Team System para obter opções de personalização mais extensas.

[ad code=4 align=center]

Posted from Vila Velha, Espírito Santo, Brazil.

Visual Studio Team System para arquitetos de software

Category : Programação, Tecnologia

[ad code=4 align=center]

Os recursos do Team Architect foram os primeiros a serem liberados publicamente na versão beta e foram conhecidos originalmente com o nome de código Whitehorse. Esses recursos, agora denominados Distributed System Designers, tornam a modelagem uma capacidade nova e integral do Visual Studio. Esses designers não apenas criam diagramas atraentes, na verdade, esses novos designers avaliam a aplicação e o design de sistema para distribuição antes de escrever qualquer código. Por exemplo, os arquitetos de aplicativo podem criar e avaliar aplicativos orientados a serviços e sistemas de aplicativos para implantação. Os arquitetos de infra-estrutura podem criar representações lógicas de datacenters nos quais esses aplicativos serão implantados. Em seguida, ambos podem trabalhar juntos para garantir a compatibilidade do design do aplicativo e do datacenter. O código escrito para implementar os aplicativos é mantido sincronizado com o design do aplicativo. Alguns dos itens que você pode modelar no Team Architect representam os esforços iniciais da DSI (Dynamic Systems Initiative) da Microsoft. Para obter mais informações sobre a DSI consulte “Dynamic Systems Initiative” (em inglês).

Todos os Distributed System Designers do Team Architect são beneficiados pelo SDM (System Definition Model), um formato com base em XML que armazena a definição do modelo. O SDM oferece uma linguagem comum em que é possível descrever sistemas de aplicativos e infra-estrutura de datacenter. Essa linguagem comum permite melhor comunicação entre os especialistas de cada área, além de validação de um aplicativo para determinar se ele pode ser implantado e executado com êxito em um ambiente de datacenter alvo. As próximas seções descrevem os quatro Distributed System Designers que você pode usar no Team Architect.

Logical Datacenter Designer

A infra-estrutura física de um datacenter normalmente não é significativa para um desenvolvedor que precisa entender quais são os ambientes de hospedagem de aplicativos presentes e como eles são configurados, restritos e conectados. O Logical Datacenter Designer é usado para criar um diagrama lógico de datacenter, que não descreve os computadores físicos, nem mesmo os tipos de máquinas de um datacenter, mas que é usado para definir ou documentar configurações específicas de software para servidor de aplicativos, como o Microsoft Internet Information Server, Microsoft SQL Server ou Microsoft BizTalk Server, e para mostrar como essas representações lógicas configuradas dos servidores (de aplicativos) estão interconectadas. Os servidores lógicos podem ser agrupados dentro de zonas que definem os limites da comunicação lógica. As zonas podem ser configuradas para restringir os tipos de servidores lógicos que podem ser contidos, e a direção e os tipos de comunicação que podem fluir de e para o datacenter. A Tabela 1 lista os elementos que podem ser modelados por esse designer, e a Figura 2 oferece um exemplo simples de um diagrama de datacenter lógico.

Elementos do Logical Datacenter Designer

Servidores lógicos Descrição
WindowsClient Um ambiente de hospedagem de aplicativo do Windows fornecido pelo sistema operacional Windows. O Windows Client pode ser configurado para hospedar o WindowsApplications, GenericApplications e o OfficeApplications.
IISWebServer Representa uma configuração do Internet Information Server. O IIS pode ser especificado para hospedar os aplicativos Web do Microsoft ASP.NET, os serviços Web ou qualquer outro aplicativo genérico.
DatabaseServer Representa um servidor de banco de dados genérico que pode hospedar um banco de dados.
GenericServer O GenericServer representa um ambiente de hospedagem de aplicativo, cuja melhor descrição não é um dos servidores lógicos predefinidos, que em geral eram usados para oferecer suporte à hospedagem de aplicativos genéricos.
Zona Um agrupamento de servidores lógicos.
Pontos de extremidade Os pontos de extremidade representam pontos de comunicação em servidores lógicos ou zonas. Os servidores lógicos podem oferecer suporte a pontos de extremidade do cliente, que permitem a comunicação do servidor, e os pontos de extremidade do servidor, que permitem a comunicação com o servidor. Os pontos de extremidade das zonas podem ser considerados como “portais” pelos quais podem passar as comunicações de ou para os servidores dentro da zona. Os pontos de extremidade de zonas podem ser definidos para permitir comunicação de entrada, saída ou bidirecional, e podem restringir os tipos de comunicações permitidas. Além dos pontos de extremidade das zonas, as formas de cliente e servidor oferecem suporte aos seguintes pontos de extremidade: pontos de extremidade de banco de dados, pontos de extremidade HTTP, pontos de extremidade de site e pontos de extremidade genéricos.
Comentários Permite a adição de descrições de seus elementos de design à superfície do modelo

Diagrama lógico de datacenter (clique na imagem para ampliá-la)

Após personalizar e adicionar propriedades aos servidores lógicos e zonas de seu diagrama, você pode optar por adicionar essas formas à Caixa de ferramentas para reutilização futura, selecionando uma ou mais zonas ou servidores, clicando com o botão direito do mouse e clicando em Add to Toolbox.

Para cada servidor lógico ou zona colocada no diagrama, também é possível especificar um conjunto de restrições e definições (no menu View, clique em Other Windows e, em seguida, em Settings and Constraints). Aqui você pode especificar uma diretiva de características operacionais de cada servidor que deve ser seguida pelos aplicativos a serem implantados naquele servidor. Por exemplo, na Figura 3, o editor de Settings and Constraints é descrito para um servidor que só permite a autenticação de formulário e do Windows como mecanismos válidos de autenticação. É possível ver na lista de entradas selecionadas no título constraints que praticamente todos os tipos de serviços podem ser executados nesse servidor, dos aplicativos Web ASP.NET, aos serviços Web BizTalk e os aplicativos genéricos. Isso será importante quando falarmos sobre o Deployment Designer mais tarde neste artigo. A ferramenta também oferece a capacidade de importar a configuração completa do IIS, inclusive os pontos de extremidade de site, de um servidor existente clicando com o botão direito do mouse no servidor lógico e clicando em Import Settings.

Editor de Settings and Constraints (clique na imagem para ampliá-la)

Application Designer

Elementos do Application Designer

Aplicativo do Windows Um aplicativo no estilo do Microsoft Windows Forms ou Console.
Aplicativo Web ASP.NET Um aplicativo Web ASP.NET que pode ter pontos de extremidade de serviço Web e/ou pontos de extremidade de conteúdo da Web. Dois itens da caixa de ferramentas são fornecidos para criar um aplicativo ASP.NET com um ponto de extremidade de conteúdo da Web padrão.
Aplicativo do Office Um aplicativo que é integrado ao aplicativo Microsoft Office, como o Microsoft Word ou Microsoft Excel.
Serviço Web externo Um serviço Web que está sendo consumido por um aplicativo e que está localizado fora da solução. Especifique a URL do serviço Web que você está representando.
Banco de dados externo Um banco de dados que está sendo consumido por um aplicativo da solução. É possível fornecer a cadeia de caracteres de conexão para o banco de dados que você está representando.
Serviço Web BizTalk Um serviço Web conhecido como um Serviço Web BizTalk. Especifique a URL do serviço Web que você está representando.
Aplicativo genérico Qualquer outro tipo de aplicativo que interage com sua solução, mas que não tem um elemento de design associado. Por exemplo, você poderia usar um elemento de design do Aplicativo Genérico para modelar um aplicativo herdado.
Ponto de extremidade de serviço Web Um ponto de entrada de serviço Web em um aplicativo
Ponto de extremidade de conteúdo da Web Um ponto de entrada para o conteúdo da Web em um elemento de design do aplicativo Web ASP.NET.
Ponto de extremidade genérico Um ponto de extremidade genérico usado para representar um ponto de conexão em um aplicativo de um tipo não modelado de forma específica. Os pontos de extremidade genéricos podem ser adicionados a qualquer tipo de aplicativo.
Comentários Um marcador que permite a adição de descrições de seus elementos de design à superfície do diagrama.

Diagrama de aplicativo (clique na imagem para ampliá-la)

Assim como no Logical Datacenter Designer, você pode adicionar restrições e propriedades extras às definições e aos pontos de extremidade de seu aplicativo, usando o editor de Settings and Constraints. Essas restrições especificam os requisitos do aplicativo para implantação e restringem os tipos de servidores lógicos em que um aplicativo pode ser implantado. Com o Application Designer, você também pode definir as operações dos serviços Web. Por exemplo, você pode selecionar um ponto de extremidade de provedor de serviços Web em um aplicativo Web ASP.NET, e usar a janela Web Service Details para definir os métodos e parâmetros que definem a interface de serviço Web.

A maioria dos tipos de aplicativos fornecidos oferece suporte à implementação e sincronia com o código. Quando você clica em um aplicativo com o botão direito do mouse, como um aplicativo do Windows ou um aplicativo Web ASP.NET, ou quando clica com o botão direito do mouse no diagrama de aplicativo e clica em Implement Application ou Implement All Applications, o Visual Studio cria projetos para os aplicativos selecionados de acordo com seus tipos e linguagem especificada, que podem ser o Microsoft Visual Basic, Microsoft Visual C# ou Microsoft Visual J#. Se os aplicativos foram conectados ao diagrama, ele inclusive liga seus aplicativos, criando referências Web e preenchendo as entradas de configuração necessárias. Se sua solução já existir, ou se você simplesmente preferir definir os aplicativos diretamente no código, a simples adição do diagrama de aplicativo a uma solução fará com que o diagrama faça engenharia reversa de seu projeto, código e arquivos de configuração. Depois de você ter um diagrama de aplicativo em uma solução com projetos e código, o Visual Studio manterá o diagrama e os modelos SDM em sincronia com seu projeto, código e arquivos de configuração de forma silenciosa e contínua no segundo plano, enquanto você altera o diagrama ou o código.

System Designer

Você pode usar o System Designer para criar sistemas de aplicativos, que são “unidades de implantação” compostas a partir de aplicativos definidos no diagrama de aplicativo ou de sistema definidos em outros diagramas de sistema, como mostra a Figura 5. Como um sistema é uma configuração personalizada dos aplicativos, você pode substituir aplicativos individuais dos valores padrão que lhes deu, ou incluir uma ou mais utilizações da definição do mesmo aplicativo ou definição de sistema em um sistema. Como mostra a Figura 5, cada aplicativo pode ser conectado e configurado de modo diferente de sua definição e de forma apropriada ao modo como você deseja implementá-lo. Por exemplo, você pode substituir configurações de um aplicativo que foram criadas como configurações substituíveis em sua definição. Na verdade, você pode criar várias definições de sistema na mesma solução, cada sistema representando uma configuração de implantação individual ou configuração de datacenter. Isso é útil para oferecer suporte a muitos clientes, cada um com datacenters diferentes, executando a mesma solução. Para criar um sistema, você pode selecionar os aplicativos que deseja ter no diagrama de aplicativo, clicar com o botão direito do mouse no diagrama de aplicativo e clicar em Design Application System.

Diagrama de sistema (clique na imagem para ampliá-la)

Deployment Designer

O Deployment Designer permite mapear os designs de seu sistema em um diagrama de datacenter lógico, criado com o Logical Datacenter Designer, para que você possa descrever implantações lógicas para aqueles sistemas. O Deployment Designer garante que você mapeie o tipo certo de aplicativo para o tipo correto de servidor lógico, honrando também quaisquer restrições de hospedagem de aplicativo que possam ter sido definidas no servidor lógico no diagrama de datacenter lógico. Depois que todos os aplicativos do sistema tiverem sido mapeados, você poderá executar a validação de diagrama adicional, na qual o Visual Studio verificará todas as restrições e configurações do Application Designer ou System Designer no design do datacenter lógico, para ajudar na identificação de quaisquer problemas de configuração, mesmo antes de você ter escrito uma linha de código. Os erros de validação aparecem no Visual Studio, assim como avisos e erros do compilador. Clique duas vezes em qualquer um desses erros, e o Visual Studio levará você até o diagrama de aplicativo ou diagrama de datacenter lógico, selecionará o aplicativo ou servidor lógico com problema e abrirá a definição de configuração que causou o problema. Depois de implementar seu aplicativo e alterar uma configuração, a modificação feita é colocada instantaneamente no arquivo de configuração – para que a validação forneça diretamente as informações ao seu processo de desenvolvimento.

Isso é como um teste de segurança de veículo antes mesmo de ele ser construído! Você pode usar essa validação de modelo para verificar se seu aplicativo sempre atende às diretivas de seu datacenter e entender o impacto da alteração (seja sob a perspectiva da arquitetura do aplicativo ou do datacenter) em todo o ciclo de vida da solução.

Fonte: MSDN

[ad code=4 align=center]

Visual Studio Team System para desenvolvedores de software

Category : Programação, Tecnologia

O Visual Studio já é uma ferramenta surpreendente para escrever código. O Team Developer simplesmente torna-a melhor, oferecendo aos desenvolvedores mais ferramentas para escrever código com mais qualidade, fornecendo ferramentas para o desenvolvedor executar a análise do código base, análise dinâmica em executáveis em execução com a finalidade de coletar informações de perfil de desempenho e cobertura de código, bem como uma estrutura de testes de unidade inteiramente integrada.

Análise de código

As ferramentas de análise de código fornecidas com o código do Visual Studio Team System analisam o código durante sua criação e são baseadas em ferramentas testadas pelo tempo como FxCop e PreFast. Essas ferramentas têm a capacidade de analisar código para padrões específicos de defeito que coincidem com as regras especificadas pelo usuário. Para habilitar a análise do código gerenciado (escrito em qualquer linguagem .NET), você pode navegar até a caixa de diálogo Properties de qualquer projeto de código gerenciado, clicar na guia Code Analysis e selecionar Enable Code Analysis, como mostra a Figura 6.

Habilitando a análise de código

Como é possível observar, existem dezenas de regras já definidas e ativadas para você – desde regras que verificam as diretrizes de código e design até as regras para verificar questões de segurança. Você pode optar por desabilitar as regras que não se aplicam a seu projeto, bem como pode criar suas próprias regras para procurar padrões de código específicos. Quando uma regra detecta um problema com seu código, o Visual Studio emite um aviso ou erro, dependendo da configuração de regra.

As ferramentas de análise de código também podem ser usadas para melhorar a qualidade do código Microsoft C++ nativo. Por exemplo, essas ferramentas podem ser usadas para ajudá-lo a identificar estouros do buffer, memória não inicializada e desreferência de ponteiro nulo. Essas situações são reportadas do mesmo modo que os avisos do compilador, que podem ser desativados usando a diretiva de compilador #pragma.

Análise dinâmica

O conjunto de ferramentas de análise de código dinâmica inclui criador de perfil de código para medir o desempenho dos aplicativos no tempo de execução. Há dois modos de perfil: amostragem e instrumentação.

A amostragem examina e faz “amostras” do desempenho de seu aplicativo em intervalos freqüentes, para descobrir o que ele está fazendo. Essa forma de análise torna menos provável que a ação de determinação do perfil em si afete o desempenho do aplicativo, porque ela só é executada durante uma pequena porcentagem do tempo. No entanto, devido à natureza estatística da abordagem, ela não fornece uma representação exata do controle de tempo do aplicativo.

A instrumentação, por outro lado, oferece um controle completo daquilo que seu aplicativo está fazendo, porque antes de ele ser executado, o criador de perfil instrumentará código extra em cada procedimento e chamada de método, permitindo que ele controle exatamente o método chamado e quanto tempo foi necessário para que ele fosse executado. A determinação do perfil com base na instrumentação retardará o desempenho do aplicativo, pelo simples motivo de existirem mais linhas de código em execução e mais dados sendo coletados, como mostra a Figura 7.

Resultados da determinação do perfil por instrumentação (clique na imagem para ampliá-la)

Testes da unidade

Os testes da unidade sempre foram uma parte importante do processo de desenvolvimento de software. Os testes da unidade referem-se a um tipo específico de teste responsável pela validação de um aspecto do sistema – uma função ou um procedimento específico, um componente ou até mesmo um cenário de utilização. O Team System oferece uma estrutura para escrever e executar testes de unidade no Team Developer e no Team Test e proporciona integração justa ao IDE de desenvolvimento. Como mostra o Exemplo de código 1, os testes de unidade são funções de teste atribuídas que verificam o comportamento de uma função ou um procedimento correspondente do produto que está sendo testado. Após adicionar o atributo [TestMethod] a seu código de teste, o Visual Studio o reconhecerá como um teste da unidade e exibirá a função nas janelas do Test Manager, como mostra a Figura 8.

[TestMethod()]
public void AdditionTest()
{
Math target = new Math();

int x = 5; 

int y = 5; 

int expected = 10;
int actual;

actual = target.Addition(x, y);
Assert.AreEqual(expected, actual, 
  "Math.Addition did not return the expected value.");

}

Exemplo de código 1. Teste da unidade simples

Gerenciando testes no Visual Studio (clique na imagem para ampliá-la)

O Test Manager permite a seleção e execução de seus testes de unidade, bem como o agrupamento, filtragem e organização deles em Listas de testes. Cada teste gerenciado por meio do Test Manager pode ter um conjunto de itens de trabalho a ele associados, bem como outros metadados, incluindo Priority, Owner e Class Name.

Cobertura de código

Não seria excelente ter alguma indicação da quantidade de código realmente testada durante a execução de um teste de unidade? Bem, esse tipo de análise é denominado cobertura de código. O Team Developer e o Team Test oferecem a capacidade de executar seus testes de unidade e controlar quais linhas de código são executadas durante esses testes. Esses resultados indicarão quais outros testes de unidade podem ser necessários para garantir que todas as linhas de código sejam testadas, bem como para saber se suas práticas de teste são completas. As Figuras 9 e 10 demonstram os resultados da análise de cobertura de código. Na Figura 9, as linhas de código destacadas em verde representam linhas executadas durante realização do teste de unidade, enquanto as linhas em vermelho indicam código não executado.

Resultados da cobertura de código na janela Code

Estatísticas da cobertura de código (clique na imagem para ampliá-la)

Fonte: MSDN

Visual Studio Team System: conhecendo uma solução completa para desenvolvimento de softwares em ambientes colaborativos

Category : Gerência de Projetos, Programação, Tecnologia

Joel  Spolsky é um dos maiores nomes na área de desenvolvimento de software. Simplesmente uma referência, seja pela sua experiência profissional na Microsoft ou pela sua extensa contribuição à comunidade técnica. Em 09 de agosto de 2000 ele escreveu um teste chamado The Joel Test: 12 Steps to Better Code (O teste do Joel: 12 passos para ter um código melhor). O propósito dele era estabelecer uma lista de perguntas simples e rápidas para medir o quão bom um time de desenvolvimento de software é. Confira:

  1. Você usa controle de versão?
  2. Você pode gerar uma build em um único passo?
  3. Você faz builds diárias?
  4. Você tem um banco de dados com os bugs registrados?
  5. Você corrige os bugs antes de escrever código novo?
  6. Você tem uma agenda atualizada?
  7. Você tem uma especificação?
  8. Os programadores possuem boas condições de trabalho?
  9. Você usa as melhores ferramentas que o dinheiro pode comprar?
  10. Você tem testadores?
  11. Os novos candidatos escrevem código durante as entrevistas?
  12. Você faz testes de usabilidade?

Enquanto o Software Engineering Institute da Universidade Carnegie Mellon tentou chegar à mesma resposta através de inúmeras teorias, o Joel foi preciso o suficiente nas suas perguntas para que as resposta fossem “sim” ou “não”. São 12 questões e cada “sim” corresponde um ponto a mais. Depois de responder todas perguntas do teste você poderá obter algumas conclusões com base no total de pontos atingido:

  • 12 ou 11 pontos: situação perfeita, o time é bom;
  • 10 pontos ou menos: problemas sérios, o time pode e deve melhorar.

É fácil perceber que o autor é exigente: ou o time é bom ou não. Não existe meio termo. Isto parece preciosismo demais, mas não é o foco do post, portanto não será discutido aqui. Outro fato importante é que, segundo o autor, grande parte das empresas existentes atingem no máximo 2 ou 3 pontos no teste, enquanto que empresas como a Microsoft chegam nos 12 pontos durante todo o processo de desenvolvimento.

E como o Visual Studio Team System ajuda a responder estas questões?

O Visual Studio Team System (VSTS) é uma ferramenta completa para o gerenciamento do ciclo de vida das aplicações, ou no termo original em inglês, Application Lifecycle Management (ALM). Isso significa que um projeto de software pode ser concebido do início ao fim utilizando o VSTS. Em outras palavras, a análise, desenvolvimento, gerenciamento, testes, etc, tudo isso está integrado de alguma forma com o VSTS. Agora que você já conhece alguns conceitos básicos, vamos responder as questões propostas pelo Joel.

Primeira questão: você usa controle de versão?

O controle de versão é um dos pré-requisitos mais básicos para o sucesso de um projeto. Sem ele os envolvidos não conseguem ver de forma rápida e eficiente quem fez alterações no código e também correm o risco de não conseguirem voltar para uma versão mais antiga do produto, além de diversos outros problemas. Para esta primeira questão a resposta com o VSTS é simples: use o Team Foundation Version Control (TFVC).

O TFVC é um poderoso controle de versão construído totalmente do zero, portanto não tem relacionamento algum com o Source Safe. Ele roda sobre o SQL Server e é integrado com as políticas de segurança do Windows, além de possuir todo o conjunto de requisitos básicos para um controle de versão: check-out, check-in, branches, labels, merges, histórico, changesets, etc.

Um ponto. Faltam só 11. :)

Segunda questão: você pode gerar uma build em um único passo?

Nesta questão o Joel não está se referindo à build do projeto através da ferramenta de desenvolvimento, aquela que usamos diversas vezes durante o dia para compilar e testar o código escrito. O que ele quer saber é se você consegue disponibilizar uma nova versão do software para o cliente em apenas um passo. Com o VSTS isso é possível e muito simples e rápido utilizando um Team Build Type.

O Team Build Type é o recurso do VSTS que permite definir novos processos de builds. Para responder a segunda pergunta do teste, deve-se criar um novo Team Build Type de acordo com o contexto atual (projeto em questão, forma de distribuição do software e outras políticas específicas). Desta forma, sempre que for preciso gerar uma build em um único passo você conseguirá iniciar todo o processo rapidamente e o servidor do VSTS junto com o MSBuild farão todo o resto do trabalho.

+1 ponto. Já temos 2.

Terceira questão: você faz builds diárias?

A geração diária de builds faz parte de um processo conhecido como Integração Contínua. Integrar continuamente significa garantir que todo o código hospedado no controle de versão estará funcionando quando for requisitado. Essa necessidade surgiu a partir do momento que diversos desenvolvedores começaram a trabalhar paralelamente no mesmo projeto. O VSTS responde a questão do Joel através das opções da build disponíveis no Team Build Type.

É possível definir que uma build será executada a cada check-in, semanalmente, a cada intervalo de tempo ou ainda diariamente. Toda esta configuração é visual no VSTS e pode ser feita rapidamente nas opções da build. Além do mais, não existe problema  ao agendar duas ou mais builds para um mesmo horário, pois o servidor do VSTS consegue gerenciar todas as requisições.

+ 1 ponto, já são 3!

Quarta questão: você tem um banco de dados com os bugs registrados?

A única certeza que temos sobre bugs no desenvolvimento de um software é que eles irão existir. Cabe a nós gerenciá-los de maneira eficiente e corrigi-los o quanto antes. Para resolver este problema, o VSTS possui um recurso chamado Work Item, ou em português, Item de Trabalho. Cada item de trabalho possui um tipo, sendo que um dos tipos disponíveis é o Bug. Portanto para registrar e gerenciar bugs, você pode e deve usar os itens de trabalho.

+ 1 ponto, somamos 4 no total.

Quinta questão: você corrige os bugs antes de escrever código novo?

A maneira mais fácil para que um programador corrija os bugs é fazer com que ele saiba que eles existem. Outro ponto fundamental é fornecer as informações necessárias para a reprodução do erro. Seguindo estes dois pré-requisitos, com certeza os bugs registrados serão corrigidos antes de escrever código novo. Da mesma forma que a questão anterior, neste caso o VSTS possui o Work Item do tipo Bug para gerenciar os erros do software.

+ 1 ponto, temos 5.

Sexta questão: você tem uma agenda atualizada?

Só desenvolver um software não basta, também é preciso entregá-lo e o mais importante: na hora certa. Uma agenda atualizada, segundo o Joel, ajuda você a decidir quais funcionalidades estarão disponíveis ou não na versão final. Em outras palavras, a agenda atualizada fornece informações sobre o vencimento de prazos, portanto você pode decidir por incluir na versão final do software somente os itens mais importantes e indispensáveis, postergando os outros para versões futuras.

O VSTS mais uma vez resolve este problema. Ele trabalha completamente integrado com o Microsoft Project, de tal forma que o desenvolvedor alimenta uma base de dados que também é utilizada pelo Project. Isso significa que o gerente de projetos terá toda a informação necessária disponível e atualizada a qualquer hora do dia, pois a integração é em tempo real e sem burocracias.

+ 1 ponto, estamos na metade, 6.

Sétima questão: você tem uma especificação?

Todo mundo acredita que escrever especificações é algo excelente, entretanto grande parte das pessoas não faz isso. Por quê? O fato é que muitas ferramentas para especificação de software são incompletas e não são integradas com o ambiente do desenvolvedor. O VSTS resolve justamente estes dois problemas: suporta a especificação de softwares e, quando necessário, também integra com ferramentas de terceiros.

Nas versões 2005 e 2008 do VSTS já estão disponíveis diversos recursos para especificação de software. Um deles é o diagrama de classes, que inclusive pode ser gerado automaticamente a partir do código fonte. O segundo é o Item de Trabalho, que pode armazenar texto e imagens sobre uma determinada tarefa. Além disso, a versão 2010 do VSTS terá suporte para os principais diagramas da UML e mais alguns específicos da ferramenta.

+ 1 ponto, temos 7.

Oitava questão: os programadores possuem boas condições de trabalho?

O Joel nesta questão se refere ao espaço físico do ambiente de trabalho. Segundo ele, há um ganho de produtividade muito grande quando as pessoas são posicionadas em lugares adequados, ou seja, com chances menores de interrupção, privacidade, etc. O VSTS não pode interferir nisto diretamente, porém ele traz outros fatores que melhoram as condições de trabalho de todos os envolvidos.

A ferramenta para desenvolvimento de software é integrada com a ajuda online da MSDN. Com alguns cliques o programador consegue as informações que precisa sem interromper outra pessoa. Outro aspecto importante é o foco no negócio e nos resultados, pois quem está envolvido no projeto sabe que existe uma excelente ferramenta dando suporte a todo o ciclo de vida da aplicação.

+ 1 ponto, e agora são 8.

Nona questão: você usa as melhores ferramentas que o dinheiro pode comprar?

É praticamente impossível desenvolver um sistema moderno sem o auxílio de uma ferramenta poderosa e com recursos avançados. Gerenciamento efetivo, comunicação fácil, agilidade no desenvolvimento e testes automatizados são só alguns exemplos do que é indispensável para ganhar tempo. Neste caso, o VSTS mais uma vez oferece uma solução completa e flexível de acordo com as necessidades do cliente.

O Visual Studio Team Suite, por exemplo, é o componente do VSTS usado por desenvolvedores, arquitetos e testadores. Todas as ferramentas que ele comporta são integradas entre si e simples de usar. No aspecto gerencial, o VSTS possui um grande número de relatórios, além de possibilitar o acesso de diversas informações pela web utilizando o Visual Studio Team System Web Access.

+ 1 ponto, 9 no total.

Décima questão: você tem testadores?

Segundo o Joel, ignorar a fase de testes é perder dinheiro. Pare e pense: se um programador recebe $ 100 por hora e um testador $ 30, com qual deles o custo é menor para executar os testes? Não ter testadores é uma falsa economia, pena que muitas vezes as pessoas não percebem isso ou acham que é tempo desperdiçado. Com o VSTS e os recursos de testes disponíveis é diferente, pois há mais agilidade no processo e consequentemente o custo é menor ainda.

O testador tem à disposição uma série de maneiras para realizar os testes usando o VSTS. Uma delas é o Web Test, que permite gravar e executar por indeterminadas vezes o acesso a um site, é o que conhecemos como simulação de acesso. Outra maneira é com o Load Test que simula diversos usuários acessando o servidor simultaneamente, também conhecido como Teste de Carga. Tudo isso e muito mais está disponível no Visual Studio Team Suite.

+ 1 ponto, 10! Faltam só 2.

Décima primeira questão: os novos candidatos escrevem código durante as entrevistas?

Você contrataria um mágico sem pedir a ele que demonstrasse algum truque? É isso que o Joel quer saber com esta questão. Segundo ele, um número cada vez maior de programadores é contratado com base em entrevistas simples, que dependem somente de uma boa conversa. O pior de tudo é que frequentemente os entrevistadores fazem questionamentos já conhecidos, como aquelas perguntas básicas “por que você escolheu a empresa xyz?” ou “o que te motiva a trabalhar na área de zyx?”.

O VSTS pode ajudar também no processo da entrevista. Se for um candidato a programador, ele pode ser posto à frente do Visual Studio Development Edition e a partir daí deverá resolver uma série de problemas. Se for um aspirante a testador, a versão Visual Studio Test Edition será muito útil para conhecer o perfil investigativo do profissional. O mesmo acontece para arquitetos, DBAs, gerentes, analistas, etc. Todos eles têm um papel bem definido durante o ciclo de vida de uma aplicação e o VSTS possui ferramentas focadas para cada um deles.

+ 1 ponto. 11! Falta só 1.

Décima segunda questão: você faz testes de usabilidade?

Jacob Nielsen, uma das maiores referências sobre usabilidade na web, fala e escreve muito sobre um conceito chamado hallway usability testing. Em português a tradução é algo parecida com teste de usabilidade feito por pessoas aleatórias. Segundo ele, cinco pessoas é o número suficiente de testadores aleatórios para garantir que a usabilidade do site esteja em perfeitas condições. E o VSTS pode ajudar você a garantir um ótimo nível de usabilidade em suas aplicações.

Para projetos web hoje é indispensável uma interface rica para o usuário. O VSTS oferece recursos como Silverlight, componentes AJAX e bibliotecas Java Script integradas na ferramenta de desenvolvimento. Além disso, possui suporte para edição de código HTML e um editor robusto e flexível para CSS. Todas estas tecnologias unidas proporcionam ao usuário final uma experiência fantástica, pois dão uma base sólida para a criação de um site que utiliza os melhores conceitos de usabilidade.

+1 ponto, chegamos no nível máximo: 12!

Conclusão

O VSTS é uma solução completa para qualificar qualquer time de desenvolvimento de software. Os recursos que ele oferece para desenvolvedores, testadores, gerentes, etc, são excelentes para a criação de qualquer projeto. E o mais importante: tudo em um único conjunto de ferramentas trabalhando de maneira integrada e inteligente para facilitar as tarefas do dia-a-dia.

Fonte: Marcos Dell Antonio

[ad code=4 align=center]

Posted from Vila Velha, Espírito Santo, Brazil.