Postagens

Resumo: tipos de configuração do TFS 2010

O TFS possui os processos de instalação e configuração bem segregados. No primeiro processo, é possível escolher o que será instalado na máquina. No segundo, podemos escolher quais componentes habilitar, quais instâncias do SQL utilizar, etc. Hoje vamos falar de configuração, e abaixo estão os tipos disponíveis para configuração do TFS. Basic – Permite configurar o TFS para usar o controle de versões, work-items e a parte de testes e lab management. No entanto, não permite a integração com Sharepoint e Reporting Services (cenário, por exemplo, quando instalamos o TFS num sistema operacional cliente, como o Windows 7). Standard – É a configuração que deve ser escolhida ao se instalar o TFS em uma única máquina, mas funciona apenas com Windows Sharepoint Services 3.0. Não permite a escolha de um SQL Server remoto. Advanced – Agora sim, permite usar SQL Server, Sharepoint e Reporting Services remotos. É nela que temos a maior flexibilidade de configura...

"The requested resource is in use" e o anti-vírus

Recentemente desenvolvemos uma aplicação que efetua o processamento de alguns arquivos enviados pela Receita Federal. Os arquivos eram lidos linha à linha e a cada conjunto de dados efetuava-se uma validação/processamento, e o resultado era colocado em banco de dados. Estes arquivos são de tamanho variável, chegando até 2 GB. Um problema que foi relatado em ambiente de produção (cluster) é que no processamento de arquivos grandes, de vez em quando aparecia o erro "The requested resource is in use", no meio do processamento do arquivo. Procurando na internet sobre este problema, encontrei uma thread em um fórum de SQL Server onde a pessoa tinha o mesmo problema ( http://www.sqlservercentral.com/Forums/Topic625264-265-1.aspx ), só que com os arquivos MDF do próprio SQL Server. Uma das sugestões dadas era verificar se o anti-vírus não estava mexendo com esses arquivos. Dito e feito, esse era o problema para nós também. Após colocar os arquivos que eram processados na lista de...

Dica rápida: debug desabilitado no Visual Studio

Hoje estava trabalhando em um projeto e precisei debuggar uma solução. Só que o debug estava desabilitado, tanto o botão de "triângulo deitado verde" quanto o F5. Achei estranho, mas acabei percebendo o porquê: o projeto que estava ajustado como StartUp Project era do tipo Modeling Project. Foi só mudar isso para um projeto que gera um executável, como um Console Application ou Web, que o debug voltou a ficar disponível. Projetos de banco de dados também fazem o debug ficar indisponível. Óbvio, mas não tão claro... []'s

Pex + TDD

Imagem
Olá, pessoal! Na última edição da .NET Magazine (nº 90), saiu meu artigo falando sobre a ferramenta Pex e seu uso dentro do TDD. O Pex ( http://research.microsoft.com/en-us/projects/pex/ ) é uma ferramenta de geração de código de testes automatizada, ou seja, ela gera as unit tests para você a partir do código-fonte já desenvolvido. Em um primeiro momento não vemos como isso pode se relacionar com TDD, já que a idéia desta técnica é escrever testes antes do código do programa que estamos desenvolvendo. Realmente ferramentas como o Pex não têm utilidade neste cenário quando utilizado o conceito de testes baseado em exemplos. Testes baseados em exemplos são aqueles nos quais nós temos uma entrada de dados e um resultado conhecido, e testamos o nosso código para garantir que o processamento produza a saída esperada. Para fazer sentido o uso de ferramentas de geração de testes automatizada, precisamos de um conceito de testes de unidade diferente. Precisamos pensar nossos testes co...

Como fazer undo-checkout em arquivos de um outro usuário

Hoje tivemos que remover os arquivos que estavam em checkout para uma das pessoas que trabalham com a gente. Só que o detalhe é que a máquina que essa pessoa usou para fazer o checkout, e consequentemente as informações que ficam no workspace , não estavam mais disponíveis (a máquina foi trocada, e a antiga sabe-se lá onde está). Então, como desfazer os checkouts existentes? A maneira que encontramos foi, utilizando um usuário administrador dentro do team project, fazer a remoção do checkout através de linha de comando (tf.exe). Primeiramente, buscamos o nome do workspace que estava associado ao usuario, através do comando abaixo. Retornaram duas ocorrências, que são a máquina antiga e a máquina nova. Essa informação será importante depois. C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE>tf workspaces /owner:acroberto Collection: tfs.intra.cliente.com.br\TPC Workspace     Owner     Computer     ...

Pérola: como dificultar o tratamento de erro de aplicações

Vamos dar uma olhada no método abaixo, que foi pego de uma situação real (mudei os nomes de variáveis para evitar que reclamem que o coloquei aqui). Nesta aplicação, há uma necessidade de sincronizar dados de usuários, buscando dados do sistema A e atualizando no sistema B. public static void AtualizarUsuarios() { try { using (BatchFacade batchFacade = new BatchFacade()) { List<Usuario> usuariosSistemaA = batchFacade.ListarUsuariosSistemaA().GetRegistros<List<Usuario>>(); List<Usuario> usuariosSistemaB = batchFacade.ListarUsuariosSistemaB().GetRegistros<List<Usuario>>(); foreach (Usuario usuarioA in usuariosSistemaB) { Usuario usuarioB = usuariosSistemaA.Find(delegate(Usuario u) { return u.SIAP.Equals(usuarioA.Codigo.ToString()); }); if (usuarioB != null && UsuarioModificado(usuarioA, ref...

Limitações ao se trabalhar com o TFS 2010

Imagem
Ao se trabalhar com o TFS, existem algumas limitações que devem ser levadas em consideração na hora de criar team projects ou work items. É importante conhecer isso para não ter problemas na hora de decidir como estruturar seus projetos (Nenhuma limitação listada é impeditiva para se trabalhar com o TFS, é só se preparar e evitar as situações que elas possam ocorrer ou serem necessárias). Obs. Esta lista foi retirada do livro Professional Team Foundation Server 2010 (Wrox Programmer to Programmer) . []’s Renomear um Team Project Após a criação de um team project (repositório de código-fonte, atividades do projeto, etc.) não é possível renomeá-lo. Uma vez escolhido o nome, será este para sempre, então tome cuidado ao escolher. Caso contrário, se realmente você quiser “renomear”, terá que criar um novo team project e migrar todo o conteúdo do anterior… Mover work items entre Team Projects e Team Project Collections Não é possível mover work items entre team projects diferentes, visto q...