Visual Studio: instalando o Report Designer na versão 2017

Diferente das versões anteriores, o Report Designer não vem embarcado no Microsoft Visual Studio 2017, para usar é preciso instalar uma extensão.

Abra o Visual Studio, clique no menu Tools e em seguida em Extension and Updates.

Em Extension and Updates, clique em Online, em Search digite rdlc, em Microsoft Rdlc Report Designer for Visual Studio clique em Download e aguarde a transferência.

Depois de transferido você será avisado que a instalação será completa somente após fechar e abrir novamente, portanto clique em Close e reinicie o programa.

Ao abrir novamente, a instalação da extensão será iniciada.

Clique em Modify e aguarde o término da instalação.

Se o instalador avisar que tem processos em execução que o impede de continuar, salve seus dados e clique em End Tasks.

Após liberar os recursos, a instalação prosseguirá normalmente.

Ao concluir, clique em Close.

Pronto, agora é só abrir o VS e editar visualmente os relatórios baseados em RDLC.

Até a próxima.

 

OpenCover: analisando e automatizando a cobertura de código

Cobertura de código é essencial para sabermos o quanto estamos investindo na qualidade do nosso projeto. Para isso, até temos recursos nativos na IDE do Visual Studio, mas apenas na edição Enterprise. Mas nem tudo está perdido para quem não tem acesso à edições “premium” do VS! Podemos substituir tranquilamente pelo OpenCover, que atende a este necessidade com grande eficiência e elegância. E isso veremos no projeto de exemplo que iremos montar com o Visual Studio 2017 e o NUnit.

Observação: o OpenCover atende outras plataformas de testes, inclusive a nativa da Microsoft, irei o Usar o NUnit apenas por escolha própria, fique a vontade para integrar com a ferramente que convir.

Crie a solução dos projetos

Crie uma solução vazia chamada CodeCoverage, e inclua três Solution Folders chamadas Domain, Presentation e Tests. na pasta Tests, inclua mais duas subpastas chamadas Domain e Presentation, que serão os testes específicos de cada camada.

Projeto de domínio

Crie um projeto do tipo Class Library chamado CodeCoverage.Domain dentro da pasta Domain, e dentro do projeto inclua outra pasta chamada Entities. Nesta pasta inclua três classes chamadas State, City e Person, pois estas classes que serão analisadas pelo OpenCover, afim de gerar um relatório com o percentual de cobertura por testes unitários. A seguir o código de cada uma delas:

Classe de estados

Classe de cidades

Classe de pessoas

Projeto de Console

O projeto de console, será a nossa camada de apresentação, onde vamos trabalhar com DTOs, que são representações dos dados das nossas classes de domínio. Para isso, na pasta Presentation da solução, adicione um projeto do tipo Console Application chamado CodeCoverage.Prompt, e dentro do projeto inclua um pasta chamada Dto. Onde residirão as 3 classes de dados que serão a StateDto, CityDto e a PersonDto, como segue:

DTO de estado

DTO de cidades

DTO de pessoa

Edite a classe Program.cs e crie o método  que faz os mapeamento entre o Domínio e DTO e o código que exibe os dados em tela.

Observação: não é intenção deste artigo explicar como funciona processos de mapeamentos entre entidades de domínio, DTOs e ViewModels. Mas fica a dica para você procurar na internet qual o funcionamento de um AutoMapper, por exemplo.

Testes

Expanda a pasta de solução Tests e dentro da pasta Domain adicione um projeto do tipo Unit Test Project chamado CodeCoverage.Domain.Tests.

Neste projeto, inclua uma pasta chamada Entities, e dentro dela vamos incluir duas classes de testes, mas antes é preciso instalar o pacote NUnit, para isso abra o Package Manager Console selecione o projeto de testes do domínio e digite:

Adicione uma referência para o projeto de domínio, para que os testes possam acessar as entidades. Então adicione as classes de testes na pasta Entities.

Testes da classe de estado

Testes da classe de pessoa

Adicione um outro projeto do tipo Unit Test Project chamado CodeCoverage.Prompt.Tests e adicione uma referência do projeto CodeCoverage.Prompt e instale o pacote do NUnit também.

Crie uma pasta chamada Dto, e dentro dela inclua uma classe de testes chamada PersonDtoTests para pessoas.

Usando o Cake

Abra o Powershell, e se posicione na pasta da solução, e logo após digite o comando para instalar o pacote que compila e executa o script do Cake:

Ainda na pasta raiz da solução, crie um novo arquivo chamado build.cake e crie também a pasta docs/testsResults/Reports, que será onde ficará os resultados dos testes.

Dica: você pode adicionar o arquivo build.cake à solução, para que ele faça parte do projeto, mas é muito mais produtivo usar o Visual Studio Code e a extensão do Cake, conforme expliquei neste artigo.

Volte ao Powershell e digite o comando .\build.ps1 para executar o script do Cake.

Após a execução do script, o Report Generator irá compilar os arquivos xml do OpenCover e gerar uma visualização mais amigável e detalhada e ainda abrir um sumário no seu navegador padrão, incluind um histório de cobertura.

.gitignore

Se você está usando o arquivo .gitignore padrão do Visual Studio – aquele que é fornecido, por exemplo, pelo GitHub ou Visual Studio Online – será preciso alterar para que ele ignore os arquivos compilados do Cake e não suba para o repositório do GitHub. Para isso encontre o trecho a seguir:

E descomente as duas últimas linhas.

Pronto, agora podemos acompanhar a evolução dos testes de nosso aplicativo de forma elegante e segura.

Até a próxima e se quiser, acesse o projeto completo em meu GitHub:

https://github.com/tiagopariz/CodeCoverage

Visual Studio: alterar o framework padrão para novos projetos

Introdução

Muitas vezes é preciso que todos os novos projetos já estejam em uma versão do .Net Framework específica, ou simplesmente, que já seja criado com o target na última versão disponível no Visual Studio.

Alterando a versão padrão

Abra o Visual Studio, clique em File, em seguida em New e por último em Project…

Anote a versão do .Net Framework que será a padrão para os novos projetos, como por exemplo “4.6.1”.

Pressione as teclas Win + R, em Abrir digite o comando regedit e clique em Ok.

A janela do Editor do Registro será exibida.

Localize a chave HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\NewProjectDialog, e edite a chave fxVersion para a versão do .Net Framework desejada.

Observação: onde está escrito 14.0, que equivale a versão do Visual Studio 2015, pode ser alterada para a versão do seu Visual Studio, como por exemplo, 13.0 para o 2013.

O Visual Studio 2017 não precisa desta configuração, pois ele lembra a última versão usada ao criar um projeto.

Pronto, agora todas os novos projetos serão automaticamente definido com a versão configurada por padrão.

TFS: criar um projeto com vários repositórios

Muitos projetos são compostos por um arquitetura que envolve mais de uma solução, e pra que isso seja gerenciado como um projeto inteiro, é preciso gerenciar demandas em vários projetos menores. Um cenário bem comum são arquiteturas que usam microservices, onde a mesma equipe desenvolve vários serviços relacionados à uma ferramenta maior, ou quando temos uma aplicação monolítica que está sendo dividida a partir de um repositório único.

A aplicação de exemplo simula um ambiente onde teremos um projeto Rest API, um Gateway e uma aplicação Web que consome a API.

Crie o projeto principal dos repositórios

Abra a página principal dos projetos do TFS e clique em New Project.

Em  Create new project, preencha os campos de Project name, Description, em Version control selecion Git, em Work item process selecione Scrum e então clique em Create.

Crie os repositórios a partir do Visual Studio

Para fins de organização, crie um pasta com o nome do projeto no computador local. Como por exemplo C:\Contacts.

Abra o Visual Studio e em Team, clique em Manage Connections…, em Team Explorer – Connect, clique em Manage Connections, clique em Connect to a Project.

Em Connect to a Project, clique em Showing hosted repositories for e por ultimo em Add an account.

Digite as informações da Conta Microsoft e clique em Sign in, Clique no projeto e por último em Connect.

Crie um nova solução e deixe a opção Create new Git repository clicada.

Faça uma pequena alteração, como incluir uma Solution folder ou um arquivo Readme.md.

Clique o botão direito sobre a Solution e em seguida clique em Commit…

Escreva uma descrição para o commit inicial, e clique em Commit All and Push.

Clique em Publish Git Repo

Clique em Advanced e selecione o projeto em Team project e digite o nome da solução em Repository name, e por fim clique em Publish repository.

Repita o processo para outros repositórios.

Exclua o repositório padrão

O TFS cria um repositório padrão como o mesmo nome do projeto, mas não é possível excluí-lo sem criar um novo repositório, portanto, após criar todos os repositórios necessários, ou menos um extra, é possível deletá-lo.

Na página principal do projeto, clique em Code e em seguida em Manage repositories.

 

Clique em ao lado do repositório que deseja excluir, e clique em Delete repository.

Digite o nome do repositório e clique em Delete.