Quel est le consensus sur le moment d’utiliser l’un de ces outils adversed à l’autre ? Je trouve que Subsonic est très utile en termes de bouger les choses rapidement, mais sur les grands projets, qu'il ne tend ne pas à l’échelle et ses liens avec votre modèle de domaine à votre modèle de base de données. C’est là Nhibernate comme il vous donne les POCOs légers qui ne sont pas liés à votre modèle de base de données, mais le temps d’installation est beaucoup plus long.
Réponses
Trop de publicités?Je me pose cette question beaucoup de choses et vraiment ça revient à combien vous voulez jouer du violon. Je ne peux pas vous dire combien d'endommager Chris Cyvas commentaires de RE Subsonique de mise à l'échelle ont été - et j'ai été de répondre à ces depuis :(.
L'affaire est - perf-sage, Subsonique échelles très bien. En termes de projet de croissance n'IMPORTE quel outil que vous utilisez aura besoin de votre attention. Même NHibernate.
J'ai écrit un post sur la façon d'utiliser le modèle de Référentiel avec DI (comme vous le feriez avec le programme des ssna ou tout autre outils) avec Subsonique 2.1:
http://blog.wekeroad.com/blog/subsonic-writing-decoupled-testable-code-with-subsonic-2-1/
J'ai aussi écrit un post sur la performance de Subsonique:
http://blog.wekeroad.com/blog/subsonic-scaling/
Espérons que cette aide.
Je le recommande Subsonique si votre projet travaille avec les ActiveRecord vue que la base de votre modèle. Vous obtiendrez une classe par table et tout fonctionne comme par magie. Vous pouvez bien sûr modifier et de remplacer des choses, mais si vous (ou votre projet) sont fondamentalement en désaccord avec la classe-par-approche de table, je regarderais NHibernate, car il commence avec la plus complexe (mais plus souple) approche de la cartographie de votre modèle de domaine à votre base de données.
Si vous utilisez un relativement simple base de données qui est sous votre contrôle (comme dans, vous pouvez modifier les colonnes sans l'envoi de huit formes d'une base de données de la division de la supervision de la commission de révision), je vous recommande de commencer avec des Infrasons et le déplacement de NHibernate si Subsonique ne pas répondre à vos besoins.
Pour ce que sa vaut la peine...j'ai eu l'occasion d'utiliser les deux technologies très abit plus depuis en posant cette question. Et je dois rester qui, si ces technologies vous choisissez matière très peu. Assurez-vous NHibernate permet à votre entreprise des entités à être un peu moins couplé à la structure de base de données, mais je trouve toujours qu'il y a de nombreuses occasions où vous avez encore de se plier à la volonté de la base de données.
À mon avis le seul vrai moyen pour totalement séparée de Domaine de votre Modèle de votre modèle de Base de données est d'écrire votre propre OTD (essentiellement POCOs de la transmission des données), et puis la carte à votre ORM de choix dans votre couche de données. Mais dans la plupart des cas, cette approche ne m'a plus de tracas que de sa valeur.
Légèrement hors sujet, mais dans une veine similaire. Avez-vous regardé le Château de ActiveRecord il est écrit sur le dessus de NHibernate et élimine le besoin de passer du temps à la création de mappages XML à partir de code à la base de données. Comme NHibernate vous pouvez structurer votre domaine d'objets que vous le souhaitez et, plus tard, de générer un schéma de base de données à partir de cette structure.
À l'aide de ActiveWriter, a contribué outil, vous pouvez facilement la carte à partir de votre base de données à des objets du domaine.