Antes de qualquer coisa, devo uma explicação aos leitores do blog e da coluna na revista Mundo.Net. Algum tempo atrás coloquei em votação três assuntos para a coluna. O preferido foi Dependency Injection, que se tornou assunto da 5ª edição. Em segundo lugar, bem próximo, ficou Camada de dados e em último lugar, Automação de build.
Na época prometi falar em seguida sobre Camada de dados. No entanto, até hoje não cumpri. O problema é que não consegui ajustar o assunto ao formato da coluna. As ferramentas para camada de acesso a dados são complexas e bem diversas entre si. O DAAB, do Enterprise Library, oferece uma API que abstrai o ADO.Net, mas deixa a implementação da camada a cargo do desenvolvedor. Tanto o ActiveRecord, quanto o SubSonic, implementam o design pattern Active Record, mas a forma como cada o implementa é bem diferente. O LINQ to SQL tem características semelhantes, mas também é implementado de maneira diferente. O Entity framework, assim como o NHibernate, é mais complexo, genérico e poderoso, mas tem uma curva de aprendizado mais longa.
Seria impossível falar de cada um destes detalhes e comparar as ferramentas no formato da coluna, seriam necessários vários capítulos. Por tudo isto decidi não abordar este assunto. Isto quer dizer que a Mundo.Net não atenderá esta demanda, NHibernate, Enterprise Library e SubSonic já foram assuntos de artigos. A coluna arquitetura também já apresentou alguns patterns para a camada de dados. Ou seja, acho que os leitores estão bem servidos.