PleaseORM

É um framework de mapeamento objeto-relacional que utiliza o paradigma de linguagens dinâmicas como recurso principal, buscando mais produtividade e rapidez no desenvolvimento de aplicações.

Ele é desenvolvido sobre a plataforma Microsoft .NET Framework 4.0 que traz como novidades os tipos dinâmicos nativos.
O PleaseORM traz também um novo conceito chamado de Active Dynamic Repository.

O Active Dynamic Repository foi inspirado nos recursos dinâmicos presentes no ActiveRecord do framework Ruby on Rails, em que podemos fazer consultas em nossas entidades através de convenções na chamada de métodos. O Active Dynamic Repository tem também conceitos do Repository Pattern seguindo os princípios de um repositório de dados.

A grande diferença no desenvolvimento com o PleaseORM é a ausência de criarmos nossas propriedades em nossas classes de domínio. A idéia, assim como no ActiveRecord do Ruby on Rails, é termos em nossas entidades de domínio apenas detalhes pertinentes a regra de negócios. As propriedades são criadas dinâmicamente ao fazermos nossas consultas atravês do schema do banco de dados. Para isso, o desenvolvimento deve seguir as convenções definidas pelo framework.

Exemplos

// Obter a entidade Client de Id #1
var client = Please.Get.Client(1);

// Obter a entidade Order de Id #32 
var order = Please.Get.Order(32);

// Obter todas as entidades User
var users = Please.Get.Users();

// Obter todas as entidades User filtradas por Name
var users = Please.Get.Users_By_Name("Foo");

ATENÇÃO

Atualmente, o projeto é apenas uma prova de conceito. O objetivo é apenas demonstrar as capacidades do C# 4 e seus novos recursos de tipos dinâmicos.
O código desenvolvido necessita de refactoring.
Caso se interesse pelo projeto, abra uma discussão, faça um fork, ajude com suas idéias e seu conhecimento.

Os testes usam um banco de dados de uma instância do SQL Express local e o banco de dados com nome de PleaseORM. A criação e exclusão das tabelas são feitas pelos testes.

A aplicação Web tem um banco no próprio projeto. Faça o download do projeto e execute, você já poderá ver o funcionamento do framework.

Last edited Dec 27, 2012 at 11:55 AM by juloliveira, version 8