Question

Cette réponse indique que Linq s'adresse à un groupe de développeurs légèrement différent de NHibernate, Castle, etc.

Etant assez nouveau en C #, ne négligez pas tous les éléments de la DB qui l’entoure:

  • Existe-t-il, faute de meilleur terme, des wrappers SQL que NHibernate, Castle, Linq?
  • Quelles sont les différences entre eux?
  • Quels types de développeurs ou de développement visent-ils?

-Adam

Était-ce utile?

La solution

Quand vous dites Castle, je suppose que vous voulez dire Castle Active Record?

NHibernate est un OR / M destiné aux développeurs souhaitant se concentrer sur le domaine plutôt que sur la base de données. Avec linq to sql, votre base de données est préexistante. Vos relations et une partie de la programmation dépendent de la définition de votre base de données.

Maintenant, entre NHibernate et Castle ActiveRecord - ils ressemblent en ce sens que vous dirigez la conception de votre application à partir du domaine, mais avec NHibernate, vous fournissez des fichiers de mappage xml (ou des classes de mappage avec NHibernate couramment), où vous utilisez Active Record. convention sur la configuration (en utilisant des attributs pour définir les colonnes et les paramètres qui ne correspondent pas naturellement). Castle Active Record utilise toujours NHibernate en arrière-plan.

Un OR / M n'est pas nécessairement la "seule vraie voie". Cela dépend de votre environnement, de l'application que vous développez et de votre équipe.

Vous pouvez également consulter SubSonic . C'est bien pour l'enregistrement actif, mais ce n'est pas pour les projets où vous voulez vous concentrer principalement sur votre domaine. En fonction du projet, j'utilise généralement NHibernate (avec Castle Active Record) ou Subsonic

Autres conseils

LINQ n’est qu’un ensemble de nouvelles fonctionnalités C #: méthodes d’extension, expressions lambda, initialiseurs d’objets, types anonymes, etc.

" LINQ to SQL " Par contre, vous pouvez comparer d’autres wrappers SQL.

En fait, nous utilisons Linq et NHibernate ensemble (avec Fluent). Si vous avez un peu de patience face à la courbe d'apprentissage, vous tomberez rapidement amoureux.

NHibernate et Linq To Sql sont des mappeurs d’objets / relationnels conçus pour faciliter la gestion de la non-concordance des impédences constatée entre les objets et le SGBDR. NHibernate est la voie à suivre si vous souhaitez réaliser une application ignorante, persistante et testable. Je recommanderais toujours NHibernate à Linq To Sql. Les deux outils visent à supprimer le traitement de l'accès aux données. Combien de fois avez-vous vraiment besoin d'écrire du code d'accès aux données?

Castle est un cadre d’application et un conteneur Inversion of Control qui ne fournit pas d’accès aux données. Il fournit des installations pour l’utilisation de NHibernate, réduisant ainsi les frictions, et implémente le modèle Actuve Record avec NHibernate.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top