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 →

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 →

Entendendo o básico do NodeJS

Sigo na série de NodeJS. Pra ver o que já foi postado sobre Node aqui no blog vejam a tag nodejs. Vamos começar pelo básico: instale o Node. Você quer a versão 0.10, que é a última estável (no Node as versões ímpares são instáveis, ou seja, não instale a 0.11). Se você usa Windows, vá ao site do Node e baixe o instalador que é o típico Next, Next, Finish. Se você usa Linux ou Mac, utilize o NVM (Node Version Manager), que é parecido com o RVM (Ruby Version Manager) e permite instalar Continue Lendo →

Realizando Config Transformations durante um processo de build

Há algumas semanas atrás, durante uma consultoria em um cliente, me foi solicitada uma customização no processo de build de uma determinada aplicação. O problema é que essa era um Web Site, e não um Web Application Project. Para quem não sabe a diferença entre eles, dê uma olhada nesse link. Basicamente, o problema era que eles queriam utilizar Web Config Transformation. O detalhe é que isso está disponível apenas para Web Application Projects. A idéia deles era criar diversos arquivos Continue Lendo →

ASP.NET MVC4 – Rotas duplicadas

Olá pessoal, tudo bem ? eu estou tendo a oportunidade de ministrar alguns treinamentos pela Lambda3 e um desses treinamentos é o de ASP.NET MVC. Eu uso “MVC” desde o beta 1 e gosto bastante do framework, quem quiser saber um pouco mais sobre os treinamentos da lambda3 pode olhar aqui, inclusive teremos turmas no Rio de Janeiro. Falando sobre o que importa, eu estou lendo o livro Pro ASP.NET MVC4 e vou falar sobre algumas coisas legais que não vejo pessoas falando normalmente sobre as capacidades Continue Lendo →

NHibernate – Associações many-to-one

Uma associação many-to-one geralmente se refere a uma entidade que possui uma referência para outra entidade. No caso do banco de dados seria uma associação simples por chave estrangeira. Vejamos um exemplo: Esquema Classes POCO Mapeamento Note que a definição da associação many-to-one se dá pelo References no UsuarioMap, por default o Fluent NHibernate infere que a coluna que define a chave estrangeira seja Endereco_Id (nome da classe sendo referida + “_Id”). Assim Continue Lendo →