12
votes

Comment choisir une cartographie relationnelle d'objet pour .NET

(Ce doit être une FAQ, donc je m'attends à ce qu'elle soit fermée en tant que dupliquée, mais je ne peux pas trouver une question qui contient une bonne aperçu des problèmes etc. .)

ce que si quelqu'un doit considérer quand choisir un orm pour un système .NET ?

Comment sont les ci-dessus par l'orèse qui sont en usage commun pour les systèmes .NET.

(question de débordement de la pile de sorcières Devrais-je créer un lien vers des réponses lorsque je dis "envisagez d'utiliser un orm" pour une question .NET)

fait sur un souhait de fournir une nouvelle réponse et d'obtenir la prime?


4 Réponses :


0
votes

Je ne suis pas un développeur .NET, mais vous devriez consulter NHibernate . C'est la version .NET de l'état de la technologie Orm pour Java. Je suis sûr que c'est une excellente solution pour .NET aussi, comme il fait de la cartographie des objets assez faciles, mais reste-t-il assez puissant pour mapper des objets sur presque n'importe quel type de schéma SQL.


0 commentaires

2
votes

BATAILLE ORM

Un site Web entier dédié à l'analyse et à la comparaison de divers produits .NET ORM (Mappage relationnel d'objet)!

Gardez à l'esprit que même que même le site Web de ORMBattle ne compare qu'environ 7 ou 8 ormes (bien que ceux qu'il comparent, il semble le faire assez bien mais que voir la responsabilité ci-dessous).

Selon le STRONPOOLBOX Site Web , il y a environ 40 orj disponibles! La liste des produits Orm et leurs descriptions sur le site Web Sharptoolbox devraient vous donner un bon départ. Vois ici: Sharptoolbox Résultats pour Objet- Cartographie relationnelle

Considérant que chaque développeur, et que toutes les besoins d'accès aux données de chaque application peuvent varier, trouver une comparaison complète entre tous seront difficiles. C'est probablement la raison pour laquelle plus de 40 produits Orm différents existent depuis qu'il n'existe pas de «taille unique» dans le monde de l'ormes.

Aussi, veuillez garder à l'esprit que toutes les comparaisons entre les produits ORM peuvent bien être "défectueuses" car vous ne pouvez pas toujours être sûr que les différentes fonctionnalités de différents produits ORM sont conçues pour exactement les mêmes objectifs. Un commentaire de AJ sur cette réponse Liens vers un Blog Post par ayende Rahien qui décrit exactement ce phénomène lorsque ORMBattle comparé NHibernate à d'autres orateurs.

Je pense que la meilleure approche consiste à examiner les repères et à lire les descriptions de chaque ormes, mais ne prenez pas ces choses littéralement, mais aussi interpréter ces chiffres sur la base de votre propre application. Par exemple, si votre application lit principalement et écrit des enregistrements de base de données une à la fois, vous utiliserez probablement un produit ORM complètement différent que d'une application nécessaire pour traiter les enregistrements de base de données par lots.


5 commentaires

L'utilité de l'analyse effectuée par ORM Battle est très contestée ... une bonne lecture: ayende.com/blog/archive/2009/08/15/...


@AJ - Article intéressant. Je conviens que les points de repère (de n'importe quoi) peuvent être trompeurs. C'est pourquoi chaque personne à la recherche d'un outil orm devrait faire ses propres recherches en raison de tout le monde (et de leurs besoins) étant différent. Les repères peuvent souvent être comme des statistiques et nous savons à quel point ils peuvent être utiles! ;) ( Quotegarden.com/statistics.html )


C'est pourquoi il y a une grande section FAQ :) Voir ORMBattle.net/index.php/faqs.html < / a>


Je peux ajouter pourquoi il n'y a que 8 produits maintenant: peu de vendeurs commerciaux nous ont simplement demandé de supprimer leurs résultats. Je pense que ce n'est pas vraiment drôle du tout - voir par ex. ormbeTattes.net/index.php/ Blog / ...


Nous ajouterions d'autres outils, s'ils supportent Linq, mais il semble qu'il n'y ait plus de tels candidats. Et enfin, nous invitons tout le monde (avec ou sans support Linq) - la suite de tests est entièrement open source.



9
votes

C'est la principale question / réponse que j'ai dirigé les personnes en ce qui concerne le choix d'une .NET ORM:

NHibernate, cadre d'entité, enregistrements actifs ou LINQ2SQL < / p>

Je mets un tas de questions de type "duplicata" dans ma réponse sur celle-ci. Donc, il y a beaucoup de lecture que vous pouvez faire de différentes perspectives différentes.

Je vais aussi essayer de répondre à vos questions spécifiques:

Que faut-il considérer quelqu'un quand Choisir un orj pour un système .NET?

  • vous voulez vous assurer qu'il fonctionne avec votre base de données. Si votre base de données La conception était l'état de l'art 15 ans il y a beaucoup de petits et / ou moins matures Ormes ne fonctionnera pas avec votre manque de clés, relations étrangees, etc.

  • vous voulez vous assurer qu'il fonctionne avec votre fournisseur de base de données. serveur SQL Le soutien est à peu près toujours disponible, mais d'autres bases de données peuvent ou peut ne pas être soutenu par divers ormes (MySQL semble être le deuxième plus Base de données communément prise en charge).

  • Si vous souhaitez générer votre base de données Basé sur vos cours .net, vous avez besoin Pour vous assurer que votre orj prend en charge cela.

  • Si vous voulez des performances, je suppose que vous rester à l'écart de la mauvaise performance ceux, mais ceux qui ne feraient jamais un Top 5 la liste, donc aussi longtemps que vous allez avec un orj qui a un peutre rue cred, vous êtes probablement bien ici.

  • Vous devez vous assurer qu'il possède des fonctions que vous avez besoin prises en charge: http://ayende.com/blog/archive/2006/05/12/25ReasonsnottowriteyourownObjecteTellationMapper.aspx

  • considère le verrouillage du vendeur et comment facilement vous pouvez ou ne pas être capable de Échappez-le (pour la base de données Vendeur et le vendeur ORM).

  • considère à quel point vous voulez dépenser.

  • considère ce que vous voulez pour le code génération.

  • considère ce que vous voulez pour le test de l'unité Support.

  • considère combien de temps vous voulez Passez la recherche sur les différents Options.

  • considère la communauté qui existe autour de l'orme.

    Il y a beaucoup de choses à garder à l'esprit. Je suis sûr que je pouvais penser à plus. En fin de compte, beaucoup de choses sont situées et vous devez faire votre propre décision ce qui est le mieux pour vous et votre projet.

    Comment est-il adressé ci-dessus par l'ORM? qui sont en usage commun pour .NET Systèmes.

    Le seul .NET ORM que je suis au courant de cela répond à peu près à tous un projet .NET pourrait avoir (moins les fournisseurs de base de données les plus obscurs) sont NHibernate. Il a été testé avec beaucoup de bases de données «héritées» dans de nombreux scénarios différents.


0 commentaires

0
votes

choisir entre NHibernate ou Cadre d'entité. NHibernate est plus extensible et généralement plus de caractéristiques riches. Framework entité fonctionne mieux et facile à utiliser avec un ensemble de fonctions riches.

Les deux cadres sont excellents, l'entité framework a un grand avantage sur NHibernate: il est beaucoup plus facile de travailler, la phase de démarrage peut être assez difficile. EF ça fait ça bien mieux. Cependant, dans certaines zones, NHibernate est supérieure, par ex. Quand il s'agit d'étendre le cadre NHibernate propose plus d'options

Enfin, prenez votre appel. L'un ou l'autre de deux ne vous décevra jamais à coup sûr.


0 commentaires