ASP.Net MVC: Validação com DefaultModelBinder

Estou fazendo o código de envio de e-mails do meu site. Comecei naturalmente no modelo, fiz o model binder, e o controlador. Muito simples. Vou mostrar o resultado aqui. Mas o código tem um problema, tente descobrir, no final eu conto. Montei uma classe de mensagens: [ModelBinder(typeof(EmailMessageBinder))] public class EmailMessage { public string FromEmailAddress { get; set; } public string Message { get; set; } public string To { get; set; } Continue Lendo →

Upgrade TFS 2013 -> TFS 2015 CTP 1

Com o lançamento de uma nova versão do Team Foundation Server sempre surge a preocupação sobre como se dará o processo de upgrade entre versões anteriores e a mais atual. Aproveitando o lançamento do CTP 1 do TFS que ocorreu ontem, vamos fazer uma simulação de upgrade para já estarmos preparados para o que virá nos próximos meses. Configuração Inicial Para fazer este exercício, vamos utilizar um template de máquina virtual do Windows Azure, disponível somente para quem tem uma Continue Lendo →

Source Control: Mostrando changesets e arquivos em um único comando

Sempre que converso com os clientes sobre histórico de Changesets no TFVC do Team Foundation Server, invariavelmente a mesma pergunta é feita: (…) Vinicius, não existe uma maneira de mostrar o número do changeset e os respectivos arquivos (Changeset Details) em um único comando? Sempre preciso executar o comando de History e depois clicar no botão de detalhes. Simplifica minha vida por favor A resolução desse novo problema me motivou a escrever mais esse post tf history Como solução Continue Lendo →

TFS: Adicionando usuários em Team Projects e grupos existentes

Ontem o Emmanuel Brandão foi questionado por um cliente com a seguinte pergunta: (…) Emmanuel, acabei de contratar um novo desenvolvedor para o meu time e queria inclui-lo nos meus 60 Team Projects no grupo Contributors. Eu consigo fazer essa inclusão em lote?… Para resolver esse questionamento do cliente, sugeri ao Emmanuel a utilização da linha de comando TFSSecurity. Vamos ver o resultado dessa implementação. TFSSecurity Para a resolução desse questionamento, iremos utilizar Continue Lendo →

Customizando o TFS Datawarehouse – Parte 1

Informações são necessárias em qualquer empresa. Os benefícios de informações corretas, providas no momento necessário, muitas vezes são utilizados como um dos principais argumentos de vendas do Team Foundation Server: “E se vocês soubessem exatamente o requisito que deu origem à determinada linha de código?”, “E se vocês tivessem uma ferramenta que lhe provesse os dados sobre o teu ambiente de desenvolvimento de software, com a possibilidade de combinar estes dados para conseguir Continue Lendo →

Resolvendo o problema de testes de integração inconsistentes: xUnitRetry

Um problema chato foi apontado na retrospectiva final de um projeto recente em que a Lambda3 entregou (por falar nisso: com sucesso, dentro do prazo, do escopo, do custo, com testes e código limpo e deixando o cliente feliz). Nossos testes de integração end-to-end deram muito trabalho. Muitas vezes inconsistentes, eles nos tomaram um tempo de desenvolvimento maior do que gostaríamos. Explicando um pouquinho da arquitetura: era um projeto web, ASP.NET MVC utilizando para armazenamento Azure Continue Lendo →

Como automatizar builds no Windows XP com TFS 2013

A inspiração deste post veio da necessidade específica de um de nossos clientes. Ele tem um enorme sistema de ERP escrito em Delphi e que estamos trazendo para dentro do TFS. Até aí, nada de mais. Não fosse um “pequenino” detalhe: Versões mais antigas do Delphi – como 5, 6 ou 7 – têm problemas de compatibilidade com novas versões do Windows. Por isso, um agente de build capaz de compilar aplicações Delphi depende do Windows XP. Ignoremos por um segundo o fato de que o Windows Continue Lendo →