BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Fluent NHibernate 1.0 RC

Fluent NHibernate 1.0 RC

Favoritos

James Gregory, responsável pelo projeto Fluent NHibernate, anunciou que o projeto chegou a versão 1.0 Release Candidate.

As notas de lançamento incluem as seguintes funcionalidades e melhorias no que diz respeito ao mapeamento:

  • "Limpeza" em nomes de métodos - Foi removida uma grande quantidade de ruído em nomes de métodos. WithLengthOf se tornou apenas Length, ColumnName foi renomeado para Column, WithTableName mudou para Table, etc...
  • Remoção do método SetAttribute - SetAttribute era utilizado enquanto não oferecíamos o suporte a algumas propriedades. Agora suportamos todos os atributos principais na interface fluente e dessa forma você não irá precisar mais do método. Se houver algum atributo que esquecemos entre em contato conosco (ou melhor ainda, mande-nos um patch)
  • Separação do mapeamento de subclasses - Subclasses podem (e devem) ser definidas separadas do mapeamento da superclasse. Utilize SubclassMap da mesma forma que você faria com ClassMap; se o mapeamento da superclasse (ClassMap) possuir uma chamada ao método DiscriminateSubclassesOnColumn, as subclasses serão mapeadas como uma tabela por hierarquia de classe, caso contrário (por padrão) elas serão mapeadas como uma tabela por subclasse.
    Veja subclasses para maiores informações.
  • Mudança no nome do ponto de acesso estático - AutoPersistenceModel.MapEntitiesFromAssemblyOf sempre foi considerado um pouco grande e foi renomeado para AutoMap.AssemblyOf
  • Components - Melhoria no suporte a components no mapeamento automático. Eles ainda funcionam como antes mas agora oferecem suporte para todas as coleções e coisas que deveriam ter.
    Veja components para maiores informações.
  • IgnoreProperty para todos os tipos - Agora você poderá utilizar IgnoreProperty para múltiplos tipos ao invés de apenas um por entidade.
    Veja ignoring properties para maiores informações.

Em relação as convenções temos:

  • Sempre são aplicadas antes de tudo - Agora elas são aplicadas antes de qualquer configuração explicita no seu ClassMap. Isso significa que não irão sobrepor os seus mapeamentos.
  • Sempre são aplicadas por padrão - As convenções costumavam ter um método chamado Accept que a maioria das pessoas ou retornavam true, o que significa aplicar para tudo, ou então verificava se um valor havia sido definido no ClassMap; considerando a alteração acima, isso significava que Accept era redundante. As convenções agora são aplicadas em tudo. Caso não queria esse comportamento, existe uma interface chamada IClassAcceptance (e equivalentes para outras convenções) para acrescentar esse comportamento
  • Critério de aceitação - Existe uma nova API para definir os critérios de maneira muito mais consistente.
    Veja acceptance criteria para maiores informações.
  • ForeignKeyConvention - Adição de classe base para configurar de maneira consistente a forma como as chaves estrangeiras são definidas.
    Veja ForeignKeyConvention para maiores informações.
  • ManyToManyTableNameConvention - Adição de classe base (e padrões) para definir o nome da tabela de relacionamentos do tipo muitos-para-muitos. Essa é uma forma muito mais inteligente do que faríamos antes já que não é necessário sobrescrever configurações explicitamente.
    Veja ManyToManyTableNameConvention para maiores informações.

Gregory espera que o projeto não demore muito no estado de Release Candidate considerando a quantidade de testes que foram feitos.

Fluent NHibernate oferece uma alternativa ao XML provendo uma interface fluente para o mapeamento através de código C#. Também fornece um mecanismo de auto mapeamento onde o mapeamento é extraído diretamente das entidades. Uma introdução ao Fluent NHibernate pode ser encontrada em InfoQ/Fluent NHibernate. Mais detalhes estão disponíveis no Wiki do Fluent NHibernate. A página de Downloads possui tanto os fontes quanto os binários para os que quiserem testar.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT