Arquivo para maio \21\UTC 2009

NHibernate – Mapeando valores default como null: IUserType, IParameterizedType

Fala pessoal!

Faz um tempo que não escrevo (sempre o mesmo papinho), mas baterei o incrível recorde de 2 posts técnicos num mesmo mês com esta postagem, então minha motivação está lá em cima! Na verdade, este post servirá como guia para algumas coisas do trabalho, e isso acaba sendo um “motivador” e tanto..

Apesar de ser a primeira vez que o tema será abordado aqui, acredito que todos que lêem o blog (ou mesmo os que aterrisam aqui esporadicamente) já tenham utilizado ou pelo menos ouvido falar do NHibernate. O NHibernate é um framework de mapeamento objeto relacional para .NET, portado do excelente Hibernate (Java), que facilita sua vida em gravar e recuperar objetos do banco de dados. Acaba ajudando também a manter uma OO mínima, já que sem isso o trabalho fica muito mais doloroso, o que também é muito positivo.. O NH permite mapear diversos tipos de colunas, trabalhar com chaves geradas automaticamente e mais uma infinidade de coisas que nem uma centena de posts conseguiriam cobrir.

O fato é que, nesta semana, caímos num problema com campos que possuem valores default. Contextualizando: possuímos uma grande aplicação que foi desenvolvida originalmente em .NET 1.1 e hoje encontra-se e .NET 2.0. Na época do 1.1, tipos “nullables” não passavam de um sonho e as pessoas arrumavam soluções criativas para contornar a questão: criando structs próprios, utilizando valores default, etc. As soluções não eram exatamente o sonho de nenhum desenvolvedor, mas, dada as restrições do framework, funcionavam bem desde que fosse mantida certa disciplina. Neste projeto a solução utilizada foi a de valores default. Alguns campos são inicializados com extremos de seu tipo (ex.: Int32.MinValue) enquanto outros assumem valores “mágicos” (ex.: -1, 03/03/0003). No momento da persistência, estes valores são tratados pela camada apropriada (aquela mesma citada por problemas de performance em outro post) e transformados em DbNull (ou vice-versa).

Continue lendo o post completo..

Anúncios

Testes Unitários com NUnit

Fala pessoal!

As coisas têm estado bastante corridas nas últimas semanas, motivo pelo qual terminei o mês de abril com o impressionante número de 1 post. Mas em maio o objetivo é mudar isso: no mínimo 2, :)..

Nas últimas semanas tenho lido bastante sobre testes unitários, inversão de controle (e injeção de dependência), princípios SOLID e algumas outras práticas defendidas pela comunidade ALT.NET.

Apesar de testes unitários já serem tópico de atenção há muito tempo e eu ter uma clara noção de como eles funcionavam, tenho que admitir que nunca os havia utilizado na prática. Como um post do Karl Seguin, via CodeBetter, nesta semana falou do assunto também e alguns projetos na empresa seriam bastante beneficiados, pensei: é hora de dar uma pesquisada e de quebra tirar a poeira do blog!

Pra demonstrar um projeto com testes unitários básicos eu vou utilizar o NUnit. O VS2008, na edição Team System, também pode fazer testes unitários, mas minha escolha baseia-se no fato de eu não apoiar o recorrente comportamento “anti open frameworks” da MS. Além do custo do VS ser absurdo, eu realmente gostaria de poder participar de uma comunidade cada vez mais ativa sem depender da MS pra tudo. Nesse quesito é indiscutível a superioridade do Java (na verdade de sua comunidade) sobre o .NET, e pra mim grande parte desta culpa pertence à MS..

Continue lendo o post completo


Perfil

Olá! Meu nome é José Filipe e sou o autor deste blog. Trabalho como Gerente de Desenvolvimento da todo! BPO, onde sou responsável pela manutenção e evolução de pessoas, processos e sistemas desenvolvidos em diferentes tecnologias. Atualmente curso uma especialização em Engenharia de Software pela PUCPR, em Curitiba, mas moro em Florianópolis, onde me graduei em Sistemas de Informação pela UFSC. Possuo o título de MCP e com base nas experiências do dia-a-dia espero trazer ao blog assuntos interessantes sobre arquitetura e desenvolvimento .NET..

Arquivos

Páginas

maio 2009
S T Q Q S S D
« abr   jun »
 123
45678910
11121314151617
18192021222324
25262728293031