2009-02-05 9 views
3

J'ai besoin d'un .Net ORM, et j'ai entendu de bonnes choses à ce sujet. J'ai eu NHibernate dans le passé, mais cela semble faciliter beaucoup de choses.Quelle est votre opinion sur Castle ActiveRecord?

Cependant, deux choses m'ont rendu un peu nerveux.

  1. Il utilise NHibernate 1.2, qui semble vieux
  2. Il est encore un RC avec sa dernière sortie il y a 18 mois

Quelqu'un est-il l'utiliser, et préconisent-ils pour un environnement de production? Est-il encore en développement actif? En particulier, cela vaut-il la peine d'utiliser ActiveRecord plutôt que NHibernate?

Répondre

2

Ils ont des builds nocturnes de Castle qui est compilé à partir de NHibernate 2.0 ou même 2.1 dès maintenant je pense. Peu de gens utilisent le RC3, et je crois que l'on devrait s'attendre à une sortie de GA bientôt. Cependant, même si ActiveRecord simplifie grandement la configuration, tout en facilitant l'utilisation de NHibernate même lors d'une requête, je constate que la plupart du temps, je retiens toujours l'utilisation de NHibernate-logic dans le code, donc je ne prends pas avantage des autres aspects d'ActiveRecord (en particulier en ce qui concerne le cache de second niveau, etc., ce qui n'est pas le cas d'ActiveRecord). Même HQL etc. nécessite d'utiliser NHibernate-logique simple pour être utile dans mon expérience. Par conséquent, il vaut peut-être mieux utiliser NHibernate et ignorer la partie ActiveRecord à moins que vous ne construisiez une application assez simple où l'optimisation des performances ne pose vraiment aucun problème, car vous disposez de nombreuses autres options de configuration pour XML.

2

Cela enfreint la conception pilotée par domaine car elle vous oblige à ajouter des attributs aux objets de votre domaine et à utiliser le modèle d'enregistrement actif, ce qui devrait idéalement rester de simples POCO. La montée en puissance de la conception par domaine par rapport à la conception classique à 3 niveaux signifie que ce n'est peut-être pas une bonne bibliothèque pour se familiariser avec le long terme (peut-être opter pour la nhibernate). D'un autre côté, c'est une bibliothèque excellente et robuste à utiliser, et le projet sur lequel je l'ai utilisé a été un succès.

+2

Bien que vous ayez raison à propos des attributs, vous pouvez toujours utiliser AR de manière DDD ... i.o.w - sans le modèle d'enregistrement actif. vous le faites via ActiveRecordMediator

+0

C'est vrai, mais j'ai lu un blog sur la façon dont ce n'était pas aussi simple. Mais peut-être que je suis derrière le temps –

+0

C'était froid celui qui a voté sans raison. –

7

Oui, cela vaut la peine d'utiliser ActiveRecord plutôt que NHibernate, car cela simplifie grandement la configuration.

+0

avec FluentNHibernate ce point est discutable. –

+0

Aussi NHibernate.Mapping.Attributes qui était disponible bien avant fluent-nhibernate –

Questions connexes