Um idioma para usar DataReaders

Segundo a Wikipedia, idiomas são métodos impostos por programadores para tratarem de tarefas comuns ao desenvolvimento.

De certa forma, uma biblioteca é um idioma. Chamamos o Open, Read, Write e Close e tratamos as exceções num padrão comum para vários tipos de abstrações, seja arquivos, filas, sessões, etc.

Hoje, com o estudo de Domain-Specific Languages (dsl’s), pretende-se melhorar os idiomas com a construção de métodos e funções que permitem um alto grau de composição. Um bom exemplo é o Linq, que permite a composição elegante de chamadas como neste exemplo:

db.Orders.Select( o=> new {o.Employee.LastName } ) .Distinct().OrderBy( n => n )

Outro exemplo classico é o Ruby-on-Rails, por muitos entendido como um conjunto de idiomas para a criação de sites e páginas web ativas.

Falo deste assunto hoje porque recebi do Fábio Galuppo um e-mail contando que colocou no codeplex sua biblioteca DbIdiom para acesso a dados que facilita o uso do ADO.NET com datareaders, assincronismo, paginação, SQLInjection e outros. O Fabio, que está sempre atento ao que está acontecendo no mundo da programação, tratou de usar boas práticas de dsl’s para criar um idioma específico para acesso a dados rápido.

Como o código é aberto, fica a dica para estudo e uso.

Abraços