Dernièrement, j'ai regardé dans les ormes basés sur .NET disponibles. J'ai remarqué que chacun finit par passer dans un ou deux camps. Dans un camp, la base de données est créée en premier et l'ORM offre un moyen plus facile d'accéder à la base de données dans une application. Dans le deuxième camp, le modèle d'objet existe en premier et l'ORM facilite la persistant du modèle d'objet dans une base de données. P>
Maintenant, je ne demande pas ou que vous affirmez si un camp est meilleur que l'autre. Je peux certainement voir des raisons pour chaque méthodologie de conception. Ce qui me frustrant est hors de tous les didacticiels et de «démarrage» des documents que j'ai lus ces derniers ne jamais sortir et dire au tout début »Cet outil suppose que vous commencez par un modèle de base de données / objet existant». Pour moi, cela est assez fondamental de savoir si vous utiliseriez un ou plusieurs orches. P>
Ainsi, après avoir fait un tas de lecture et créé un couple "World World", j'ai mis en place une série de points de balle sur les flux de travail soutenus par les ormes que j'ai examinés. Quelqu'un avec l'expérience avec ces outils peut-il me dire si j'ai fabriqué des déclarations incorrectes ou manquez complètement des points vraiment importants. Spécifiquement, j'aimerais vraiment savoir si mes hypothèses sur le point de savoir si le schéma de base de données ou le modèle d'objet devait d'abord arriver avec chaque outil est correct. P>
LINQ à SQL strong> p>
subsonne (enregistrement actif) strong> p>
NHibernate strong> p>
repo.add
3 Réponses :
Poursuivre les commentaires qui ont soulevé une structure d'entité: p>
Il y a aussi Llblgen, que je n'ai pas utilisé, mais des commentaires de l'un de mes collègues, il ne défend pas aussi bien. P>
J'ai utilisé Nibernate avant, bien que brièvement, et l'impression était bonne; Même si de retour, alors ce n'était pas aussi mature que maintenant, c'était toujours une très bonne bibliothèque. Je ne sais pas si je devais choisir entre NH et EF maintenant ... Je pense que j'irais avec EF parce que c'est ce que j'utilise depuis l'année dernière. Et le développement irait plus vite (pour moi seul), mais -Wise NH peut être légèrement meilleur. P>
On dirait que NH et EF sont assez similaires maintenant?
Je ne pense pas que je suis le meilleur pour commenter cela, mais oui, je pense qu'ils sont. NH peut gérer certaines choses mieux, comme certains scénarios d'héritage de l'entité et possède plus d'extensions / plugins, etc., car il est open source. Je ne connais pas d'autres aspects de la comparaison.
Vos collègues ont classé llblgen pro comme non si génial? Pouvez-vous développer sur ce sujet?
Eh bien, maintenant je me sens un peu mal à l'aise :) C'est juste que le sens général que j'ai eu des discussions hors sujets - et avec un seul collègue en fait. Comme je ne connaissais pas Llblgen, je ne suis pas allé dans ces discussions dans ces discussions, mais j'essaierai quand j'en aurai la chance. Le commentaire de la réponse est hautement subjectif et non informé, donc je vais essayer de le modifier pour être plus au point si je reçois plus d'informations, mais c'est la raison pour laquelle je l'ai fait cw - afin que des personnes plus compétentes puissent l'ajouter; S'il vous plaît, n'hésitez pas à répertorier les fonctionnalités de la publication et même à supprimer cette ligne si vous estimez que c'est injuste.
J'ai eu une expérience positive avec LLBLGEN en utilisant une base de données - première approche (n'a pas essayé le code d'abord). @Fransbouma est l'auteur de Llblgen et je recommande ses poteaux de blog.
Honnêtement, tout orme semi-décent peut gérer à la fois la base de données d'abord et Code Première conception. P>
Tous les ormes inclus dans votre question (y compris EF 4 et Llblgen Pro 3) peuvent faire soit, mais il peut y avoir des quantités différentes de douleur. Par exemple, le code d'abord pour Linqtosql n'est pas vraiment ce qu'il était destiné à faire, mais je pense qu'il existe des projets open source où cette fonctionnalité a été "boulonnée". Cela dit, il n'y a essentiellement aucune bonne raison de recommander Linqtosql étant donné que Microsoft pousse à la place de tout le monde vers l'entité. P>
En ce moment, NHibernate a probablement la meilleure histoire de code globale. Il est difficile de s'aventurer une opinion sur laquelle Orm possède la meilleure histoire de la base de données globale, étant donné qu'elles le soutiennent tous, et ce cas d'utilisation particulière n'est pas vraiment ce que vous devriez baser votre décision. P>
Choisissez un ormes en fonction de la question de savoir s'il s'agit d'une bonne orje. Les bons ormes prennent en charge la base de données d'abord et le code d'abord. P>
J'évalue également un couple d'outils ORM. J'ai écrit peu de blogs sur mes expériences. Peut-être que cela vous aidera p>
http://nilehgule.blogspot.com /2010/09/entity-Framework-par-2-comparison.html p>
http://nilehgule.blogspot.com /2010/09/nhibernate-code-code-first-accroch-with.html P>
http://nilehgule.blogspot.com/2010 /08/entity-framework-hello-world.html P>
Qu'en est-il du cadre d'entité ado.net?
Vous avez oublié le cadre d'entité. Avec EF, vous pouvez soit do premier ou premier développement de classe. Vous travaillez avec la base de données via l'entité. Vous avez également la possibilité de travailler avec plusieurs bases de données à l'aide d'un cadre d'entité.
Je ne suis tout simplement pas arrivé à regarder dans EF. De ce que j'ai lu la version 3.5 de EF n'était pas vraiment prête. On dirait que la version 4.0 a des améliorations, mais je viens d'installer vs 2010 à la fin de la semaine dernière. J'aimerais certainement entendre des réponses comparant la manière dont le flux de travail avec EF se compare aux autres ormes répertoriés.
Il y a d'abord des outils de 3ème partie autour de celui-ci et d'améliorer la DB-d'abord, et activez les modifications incrémentielles de la DB, du modèle ou des deux pour certains de ces ormes. Un de ces outils est mon complément pour VS, il ajoute des modifications de DB-> modèles et modèles incrémentiels -> DB modifications pour les L2S et EFV4 - Vous pouvez le télécharger à partir de huagati.com/dbmltools Si vous souhaitez le prendre pour un essai spin ...