Castle ActiveRecord

Vou começar escrevendo sobre um projeto open source, com o qual muito me surpreendi durante o ano passado. Conheci o projeto de forma inusitada, o certo é que somente depois de alguma insistência de um amigo meu (com o qual trabalhei até janeiro deste ano), com até um pouco de receio, resolvi verificar mais a fundo esse tal “Castle ActiveRecord”.

No inicio achei que a idéia de não precisar de procedures ou t-sql e utilizar o HQL (Hibernate Query Language) não funcionaria.. por causa de performance ou algo do tipo – na realidade tive um pouco de receio. Mas como fica difícil agente descobrir como isso tudo funciona sem utilizar na prática, resolvemos tocar um projeto da empresa utilizando o Castle ActiveRecord pra ver no que ia dar.

O resultado foi um ganho de produtividade impressionante. Tarefas totalmente manuais e repetitivas que (pelo histórico) que poderiam nos tomar até uma semana, foram totalmente resolvidas em praticamente dois dias. Tirando que evitamos o uso de Copy/Paste que as vezes acabamos utilizando nesse tipo de tarefa e que normalmente acaba deixando algum bug para trás.

O nosso maior ganho foi pelo seguinte, falando somente do básico (resumidamente) antes tí­nhamos que criar as tabelas, criar as procedures básicas (CRUD – Create, Retrieve, Update, Delete), ai cría¡vamos os entities, a camada de acesso a dados – que chamava as procedures, e uma classe ou outra (dependendo de cada caso) que iriam ser utilizadas pela interface para acessar mais diretamente os objetos de acesso ao banco de dados e etc..

Nesse meio tempo tí­nhamos total repetição de código e desperdicio de tempo. Tivemos um projeto que só nessa brincadeira: tabelas, procedures, camada de acesso a dados, camada de negocio, etc… nós gastamos duas semanas inteiras, isso que não tinha validações, nem regras de negocio propriamente ditas, não tinha nada a não ser o básico mesmo.

Com o Castle ActiveRecord bastou criar as classes Entities do projeto, mapear nas propriedades de cada objeto utilizando algumas tags muito simples, para “configurarmos” o que era cada propriedade (a qual coluna na tabela pertencia por exemplo) e adicionar os métodos que já vem praticamente prontos. Após isso, o próprio AR possui um método que gera um script para gerar as tabelas por exemplo no banco Sql Server – não me lembro ao certo agora se é possivel que seja gerado script de outros bancos também. O fato é: basta rodar o script para gerar as tabelas e… compilar o projeto e num Console App para testar, basta instanciar o objeto e visualizar os métodos: save, update, delete … find, estão todos lá… tudo pronto para testarmos os objetos e utilizarmos eles na nossa aplicação.

Caso você precise criar algum método diferente, fazer alguma consulta mais refinada, o que eu tive de necessidade até o presente momento foi resolvido facilmente utilizando o proprio HQL e as funcionalidades do AR. É um pouco mais difí­cil no começo montar alguns relacionamentos tabela x tabela e objeto x objeto.. dependendo da complexidade do sistema, inicialmente pode parecer complicado como você vai montar isso. Mas com a pratica e alguma experiência você verá que não é tão complicado assim.

Além disso podemos contar com um fórum em inglês e agora também um em português no portal do castle project, para tirar duvidas, reportar algum tipo de bug e etc…

O Castle Project possui outros projetos que acredito que vale a pena investigarmos mais a fundo com o MonoRail ou o Windsor, mas eu pessoalmente utilizei somente o ActiveRecord, que de um modo geral mudou minha forma em como desenvolver sistemas – sei que vai acabar acontecendo mais dia menos dia, mas eu pessoalmente não consigo imaginar um projeto em que o AR se encaixe e que eu não o utilize :) .

Utilizando o AR é possí­vel gastarmos tempo com o que de fato interessa… Além de ser extremamente fácil durante o projeto, alterar o banco de dados, de Sql server 2000 para My Sql por exemplo.

Bom .. acho que é isso, creio que se você não conhece ou nunca utilizou ActiveRecord, vale a pena investigar um pouco mais sobre esse projeto.

O Castle project é criação de um Brasileiro e é algo que está começando a aparecer no mercado… abaixo alguns links interessantes:

Site oficial do projeto: http://www.castleproject.org
O Castle ActiveRecord:
http://www.castleproject.org/activerecord/index.html
Link para os foruns:
http://www.castleproject.org/community/forum.html
Artigo sobre o ActiveRecord:
http://geekswithblogs.net/hammett/articles/76697.aspx
Castle na InfoWorld:
http://www.infoworld.com/article/06/11/21/HNcastleproject_1.html
NHibernate for .NET:
http://www.hibernate.org/
O HQL:
http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html

Até!!

Compartilhe:
  • Print
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • Live
  • MySpace
  • PDF
  • RSS
  • Technorati
  • Twitter
  • Yigg
- Participe, vote!
Loading ... Loading ...

2 comentários to “Castle ActiveRecord”

  1. O NHibernate é sensacional, e capacidade de separar banco de dados da implementação de classes.

    O mais interessante que agora que a M$ está olhando, através do Ado.net vnext.

    abs

  2. Desculpe pelo pergunta sei que este nõa é o espaço adequado mas é que não estou conseguindo encontrar esclarecimento em lugar nenhum.

    Estou precisando resolver um problema que estou tendo com o ActiveRecord. Não estou conseguindo inicializar o framework. Ja baixei varios exemplos e todos dão o mesmo erro. Na realidade o que eu gostaria de saber é se voce conhece algum forum que fala espcificamente do ActiveRecord?

    Obrigado.

Comente

blog luisph © 2007-2010 by Luís Fernandes.
Powered by Wordpress | Theme designed by WPDesigner