Je suis dans une phase de mappage de mes classes CSharp dans des tables de base de données. J'ai décidé d'utiliser NHibernate comme outil ORM après comparaison avec d'autres outils. ActiveRecord: selon le site Web du projet, l'utilisation d'ActiveRecord peut augmenter considérablement la productivité. Cependant, je n'aime pas l'idée d'ajouter des attributs à mes classes CSharp. Après tout, ma classe ne devrait avoir aucune connaissance des relations avec les bases de données. En utilisant ActiveRecord, je lierai mes classes joliment séparées à ActiveRecord, et me donnera du temps si je veux changer l'implémentation de DAO Layer underline à l'avenir. FluentNHibernate: FluentNhibernate a été ma première tentative au début de la cartographie. Mais j'ai aussi quelques problèmes avec cette approche. 1) Je n'aime pas mes stratégies de mapping compilées en fichiers binaires. Je voudrais pouvoir changer de mapping en modifiant les fichiers xml. 2) La maturité de FluentNHibernate. NHibernate existe depuis longtemps et a BEAUCOUP d'utilisateurs, donc je suis assez à l'aise avec sa maturité. Au contraire, FluentNhibernate est relativement jeune et n'a pas été testé par autant d'utilisateurs. Même si je pouvais plonger dans la source pour résoudre n'importe quel problème, je ne suis pas à l'aise avec mes compétences pour toucher à la mise en œuvre de bas niveau. 3) La disponibilité de la documentation pour FluentNHibernate est beaucoup plus grande que celle de NHibernate. Je voudrais avoir un endroit où aller quand je frappe un mur dur. NHibernate: Actuellement, j'utilise Nhibernate xml nu pour faire le mapping. Pour être honnête, travailler avec XML me donne des maux de tête massifs. Littéralement, je dois me garder de l'impulsion de simplement jeter les fichiers .hbm.xml et saisir ActiveRecord ou FluentNHibernate plusieurs fois par jour. Donc, voici mon dilemme: Devrais-je aller avec mon coeur de "Juste obtenir cette fichue chose faite!"; Ou devrais-je suivre la «ligne directrice des bonnes pratiques» pour souffrir de la douleur maintenant et obtenir un temps relativement facile plus tard?NHibernate ou FluentNHibernate ou ActiveRecord?
Un commentaire?
Merci pour votre réponse. Je vais aller avec ActiveRecord pour le moment. –