Olá pessoal. Tudo certo?! Asp.net Web API é uma excelente alternativa para desenvolvimento de serviços Web. Pessoalmente, acredito que ela vai revolucionar a forma como desenvolvemos aplicativos. Um dos pontos fortes dessa biblioteca é a facilidade de consumir serviços produzidos com ela em JavaScript – visto que eles operam facilmente através de HTTP/Json. Entretanto, para… [Leia mais…]
Olá pessoal. Tudo certo!? Quem disse que uma má notícia precisa ser ruim no todo?! Meses atrás, descobri que sou diabético. Depois de anos de descuido comigo mesmo, dieta extremamente irresponsável e, acima de tudo, uma vida para lá de sedentária, vi minha rotina diária ser “forçosamente” modificada. O que eu mudei?! De um dia… [Leia mais…]
Olá pessoal. Tudo certo?! No último post, mostrei como controlar o IISExpress através de código em C#. Depois de publicado o post, resolvi trabalhar um pouco mais naquele código e disponibilizar o resultado no NuGet. Para obter o pacote Resolvi chamar esse pequena contribuição de “IISExpress Automation Library”. Ela já está disponível no NuGet. Sobre… [Leia mais…]
Olá pessoal. Tudo certo?! Você conhece o IISExpress? Em caso negativo, recomendo que leia esse post do Scott Guthrie. IISExpress é uma excelente alternativa para que possamos levantar nossos sites e/ou serviços para realizar testes de aceitação. Como ele está baseado em um utilitário de linha de comando, mostro aqui um exemplo simples de automação… [Leia mais…]
Olá pessoal. Tudo certo?! Até aqui, calculamos Ce para tipos individualmente. Mas, como proceder para calcular Ce para outras “unidades de análise”. Por exemplo, para um assembly ou namespace. Nesse post, apresento como implementei esse importante avanço no FluentCodeMetrics (veja outros posts relacionados). Lembre-se: todo código-fonte para FluentCodeMetrics está no Github. DISCLAIMER: Adoraria sugestões de… [Leia mais…]
Olá pessoal. Tudo certo?! Muitas vezes, precisamos “transportar” valores de um objeto (com um tipo) para outro objeto (com outro tipo). Um cenário comum para essa necessidade, é a criação de ViewModels. Essa atividade é conhecida como Mapping. No post de hoje, mostro Learning Tests com AutoMapper – uma bibilieca que facilita muito essa atividade.… [Leia mais…]
Olá pessoal. Tudo certo?! Tive a honra de ser convidado para palestrar em um evento organizado pela comunidade BluDotNet, em Blumenau. Será o MSDN Community BluDotNet. Ocorrerá no dia 23 de junho, sábado, no SENAI de Blumenau. Inscrições serão abertas em breve. Será muito bacana conversar e compartilhar conhecimentos com vocês.
Olá pessoal. Tudo certo?! Reduzir o acoplamento é fundamental para melhorar a qualidade do design de nossas aplicações. Uma das formas mais diretas de promover a redução de acoplamento éatravés a injeção de dependências (DI) e da inversão do controle (IoC). Nesse post, apresento uma série de learning testes para o Ninject – um popular… [Leia mais…]
Olá pessoal. Tudo certo?! Em muitos cenários, ter uma implementação efetiva de logging em nossas aplicações pode acelerar consideravelmente processos de depuração e/ou apoio ao cliente. Implementar logging é uma tarefa relativamente simples. Entrentanto, trabalhosa. Além disso, é relativamente fácil implementar a “coisa errada”, causando prejuízo a performance do sistema. No post de hoje, mostro… [Leia mais…]
O Olá pessoal. Tudo certo?! Nessa útltima semana, tive a oportunidade de conhecer, através dos meus amigos @renatolorandi e @jjrigotti, o excelente trabalho de Lawrence Kohlberg. O centro do trabalho dele está no reconhecimento de que pessoas têm estágios de desenvolvimento moral diferentes. Logo, em função disso, reagem de forma diferente frente as questões do… [Leia mais…]
Olá pessoal. Tudo certo?! Se você leu “Hello, Lucene” – uma pequena introdução a esse fantástico engine de busca – sabe que a base do seu funcionamento está na manutenção de um índice. Todo conteúdo que desejamos que seja “localizável” deverá ser inserido nesse índice; Toda busca é realizada nesse índice. No post de hoje,… [Leia mais…]
Olá pessoal. Tudo certo?! Dias atrás, escrevi um post descrevendo um refactoring em FluentCodeMetrics. Implementamos mais algumas funcionalidades e é chegada a hora de um novo refactoring no projeto. Lembre-se. Todo código-fonte está no GitHub. Primeiro Refactoring – Eliminado duplicidade de conceitos Na última implementação, desconsiderei referências para “nested types” no cálculo do Ce. Veja:… [Leia mais…]
Olá pessoal. Tudo certo?! Depois de uma revisão pesada no design de nosso indicador Ce (veja descrição completa desse refactoring), extraímos ReferencesInspector: uma classe utilitária para identificação de dependências de um tipo. Essa utilitária servirá como base na construção de outros indicadores. Por descuido meu, muitas dependências possíveis estavam sendo ignoradas. Graças a colaboração do… [Leia mais…]
Olá pessoal. Tudo certo?! Meu último post, fiz a seguinte afirmação: [..] testes de aceitação são tão importantes quanto – senão, mais que – testes de unidade. O que gerou a seguinte reação do Juan Lopes. O que me levou a essa conversa, com ele GTalk: ElemarJR: esperando a discórdia ElemarJR: Juanplopes: não, era só… [Leia mais…]
Olá pessoal. Tudo certo?! Venho dizendo, repetidamente, que testes de aceitação são tão importantes quanto – senão, mais que – testes de unidade. Nesse post, mostro como escrever testes de unidade para serviços desenvolvidos usando Asp.net Web API (veja posts que já escrevi sobre Web API). Serviço que desejamos testar Como este é um post… [Leia mais…]
Olá pessoal. Tudo certo!? Como você implementa busca em seus sistemas?! Se você faz isso “no braço”, provavelmente você está perdendo a oportunidade de entregar algo muito bacana para seu cliente. Nesse post, mostro os fundamentos de implementação de buscas usando Lucene .net. Trata-se de um “port” de um poderoso engine de busca, usado em… [Leia mais…]
Olá pessoal. Tudo certo?! Se estivermos atentos ao feedback que nosso código nos dá, temos a possibilidade de melhorar nosso design. Dois “gritos” evidentes são: muitos cenários de teste para um único método – ele está sobrecarregado; muitos métodos estáticos – não estamos implementando a abstração correta; No post de hoje, mostro um refactoring no… [Leia mais…]
Olá pessoal. Tudo certo?! Não sei se você sabe, mas, Leandro Daniel (@leandronet), Vinícius Quaiato (@vquaiato) e eu (@elemarjr) mantemos um podcast: Void Podcast (@voidpodcast). Fan page em: http://facebook.com/voidpodcast. Conforme descrito no blog do podcast: Sem regras, sem periodicidade, sem pretensões: enfim, sem retorno de valor. Esse é o espírito do Void Podcast. Um bate-papo… [Leia mais…]
Olá pessoal. Tudo certo?! Se você está chegando agora, recomendo dar uma olhada nos outros posts da série. Nesse post, mostro como implementar um filtro na relação de “dependências” de um tipo. O objetivo é começar a construir um mecanismo que refine os resultados obtidos retirando “dependências” que sejam geradas automáticas pelo compilador e que,… [Leia mais…]
Olá pessoal. Tudo certo?! Se você está chegando agora, talvez ache interessante dar uma olhada no post onde apresentei Microsoft UIAutomation e em outro onde escrevi o mesmo exemplo usando API do Windows. Nesse post, mostro, outra vez, o mesmo exemplo, usando White. O código-fonte, atualizado com todos os exemplos até aqui, está no Github.… [Leia mais…]
maio 21, 2012
0