Simple.Data
Olá pessoal, hoje eu vou falar um pouco sobre Simple.Data.
O que é?
Simple.Data é um micro framework de acesso a banco de dados baseado no ActiveRecord e DataMapper do Ruby.
Ele usa dynamic do .NET 4 para interpretar nomes de método e propriedade em tempo de execução e mapeá-los usando uma abordagem baseada em convenções.
Como instalar?
Você pode instalar via NuGet, segue a lista dos pacotes oficiais do Simple.Data.
Se você vai usar no SQL Server por exemplo, você pode executar o comando abaixo no Package Manager Console do Visual Studio.
1 | Install-Package Simple.Data.SqlServer |
Qual problema resolve?
Não precisa de muitas linhas de códigos para acessar o banco de dados.
Não precisa se preocupar com SQL injection.
É uma forma fluente de escrever as operação que serão feitas no banco de dados.
Diferente dos ORM’s como [NHibernate][nhibernate], não precisa configurar o mapeamento de tabela para classe.
Alguns exemplos
Insert, existem várias formas de inserir um dado usando Simple.Data, abaixo apenas uma das possíveis formas, este exemplo completo está no GitHub.
1 | var db = Database.OpenNamedConnection("db"); |
Update, existem várias formas de atualizar um dado usando Simple.Data, abaixo apenas uma das possíveis formas, este exemplo completo está no GitHub.
1 | var db = Database.OpenNamedConnection("db"); |
Delete, existem várias formas de deletar um dado usando Simple.Data, abaixo apenas uma das possíveis formas.
1 | var db = Database.OpenNamedConnection("db"); |
Abaixo alguns exemplos mais complexos do que se consegue fazer com Simple.Data.
Exemplo usando All, Select, Where, Skip, Take e OrderBy, este exemplo completo está no GitHub.
1 | var db = Database.OpenNamedConnection("db"); |
Outro exemplo usando Join ~ On, As, e FirstOrDefault, este exemplo completo está no GitHub.
1 | dynamic accounts; |
Em Simple.Data existem várias formas de fazer uma coisa, segue o site da documentação completa, você pode utilizar a que você achar melhor.
Notem que quando eu declaro List<Account> model = ...
, o Simple.Data já faz o cast automático para o tipo que eu estou declarando, mas as propriedades e as colunas precisam ter o mesmo nome.
No Simple.Data eu não posso utilizar interface para fazer o cast por exemplo IList ao invés de List.
Configurando Log de SQL
No Simple.Data, é possível configurar para ele mostrar o SQL gerado no Output do Visual Studio.
É só adicionar as linhas abaixo no Web.config de sua aplicação web por exemplo, o exemplo completo está no GitHub
1 | <system.diagnostics> |
Suporte a vários bancos de dados SQL e NoSQL
Simple.Data consegue fornecer suporte a vários bancos de dados por causa de sua linguagem própria para realizar as operação no banco de dados.
Atualmente, ele dá suporte para:
- Acesso baseado em ADO para bancos de dados relacionais:
- SQL Server 2005 e versões posterior (incluindo SQL Azure)
- SQL servidor Compact Edition 4.0
- Oracle
- MySQL 4.0 e posterior
- SQLite
- PostgreSQL
- SQLAnywhere
- Informix
- MongoDB
- OData
O suporte a Azure Table Storage está em desenvolvimento. Simple.Data também suporta Mono na versão 1.0.
Obrigado pela visita e até a próxima.