Grupo de Arquitectura de Software Português


Welcome to GASP Sign in | Join | Help
in Search

Camada de persistência - NHibernate

Last post 03-10-2008, 12:04 by PedroBarreto. 3 replies.
Sort Posts: Previous Next
  •  12-06-2007, 9:40 1333

    Camada de persistência - NHibernate

    Ao longo do último ano tenho vindo a estudar a framework de persistência NHibernate, tendo decidido fazer uma aplicação de exemplo para verificar que dificuldades iria encontrar. A experiência foi bastante positiva. No entanto gostaria de ouvir outras experiências, dado que estou decidido a abandonar a framework de persistência que utilizo actualmente na empresa onde trabalho.
  •  12-07-2007, 9:50 1335 in reply to 1333

    Re: Camada de persistência - NHibernate

    Olá José,

     Ao longo dos últimos anos tenho trabalhado com uma framework própria de persistência e que satisfazia os seguintes requisitos:

    • Cache sobre os dados, quer com algoritmos de dependência do motor (tipo sqldependency), quer motores custom de dependências
    • Suporte a multi-bds e transacções distribuídas
    • Independência da bd usada, com modelo de plugins. Isto permitia por exemplo migrar uma entidade de motor, sem ter que regerar código
    • Relação de 1:1 com tabelas ou views
    • Agregação de entidades, possibilitando a criação de entidades lógicas diferentes das físicas

    Nos ultimos meses não tenho necessitado deste tipo de frameworks porque tenho estado envolvido em projectos bem diferentes. No entanto, com a tecnologia que existe hoje, optaria radicalmente por LINQ e Entity Framework. Bem sei que ainda faltam algumas coisas, mas com alguns ajustes ia lá... A grande vantagem é sem dúvida a abrangência destas duas frameworks e a grande suportabilidade e adopção que concerteza irão ter.

     os meus 0,02€

    cpmts

     

    Filed under: , ,
  •  12-07-2007, 11:56 1336 in reply to 1335

    Re: Camada de persistência - NHibernate

    Olá Hugo

     Não sei se te lembras de mim pelo nome, sou um dos formandos da Formação avançada na Bull em Fevereiro de 2006.

    Quanto à tua resposta, estou de acordo que o caminho é LINQ. O problema é quando é que vai estar pronta a Framework que eu desejo.

    Estive na apresentação do VS 2008, e constatei que esta framework ainda está em desenvolvimento, nomeadamente a módulo equivalente ao NHibernate. Neste momento o que existe é uma Framework que suponho que o nome é LINQ Entity Framework, que mapeia as tabelas utilizando um pattern do tipo Row Data Gateway. No entanto, a Framework que eu desejo, apenas estará pronta daqui a um ano, que será uma Framework equivalente ao NHibernate, com possibilidade de mapear heranças e associações, ou seja, poder construir um verdadeiro modelo de dominio, independente do modelo base de dados.
     

  •  03-10-2008, 12:04 8379 in reply to 1333

    Re: Camada de persistência - NHibernate

    Olá José,

    Estou actualmente a usar o nHibernate num projecto e estou muito satisfeito. É uma ferramenta algo complexa e de difícil iniciação mas que vale muito a pena.

    O sistema em causa é uma aplicação de gestão documental nTier com webservices SOAP e Remoting e posso-te dizer que depois de perceber a filosofia do nHibernate nunca mais me preocupei com o ORM da solução. Contrariamente ao que muita gente diz, é muito rápido.

    A implementação do domínio é muito simples e o hibernate não interfere em nada no modelo, podes programar toda a business layer sem sequer pensar na maneira como o ORM vai aceder à informação (claro que pensando na filosofia de BD, porque os modelos para ORMs têm que ser bem pensados senão são os cancros dos sistemas e passa-se mais tempo de volta do ORM do que dos requisitos funcionais).

    Neste momento o nhibernate é completamente transparente e posso mudar de MS SQL para MySQL sem qualquer problema ou alteração ao código.

    Caso precises de ajuda diz.

    Abraço,

    Pedro Barreto
     

View as RSS news feed in XML
Powered by Community Server (Personal Edition), by Telligent Systems