Les avantages et les inconvénients de l'utilisation de l'ORM
Je voudrais discuter les avantages et les inconvénients de l'utilisation d'un ORM (comme ADO.NET).
Avantages:
- Accélère le Développement élimine le besoin pour la répétition de code SQL.
- Réduit Les Temps De Développement.
- Réduit Les Coûts De Développement.
- Surmonte fournisseur SQL différences - l'ORM sait écrire fournisseur SQL spécifique de sorte que vous n'avez pas à.
Inconvénients:
- Perte de productivité des développeurs alors qu'ils apprendre à programmer avec les ORM.
- Développeurs de perdre la compréhension de ce que le code est en train de faire - le développeur est plus dans le contrôle à l'aide de SQL.
- ORM a tendance à être lent.
- ORM ne parviennent pas à concurrencer les requêtes SQL pour les requêtes complexes.
En résumé, je crois que les avantages de l'utilisation d'un ORM (principalement la réduction du temps pris pour effectuer des tâches répétitives) sont plus que contrebalancés par les inconvénients de l'ORM par exemple, c'est la difficulté de se familiariser avec.
Les gens peuvent-ils point où je vais mal et de suggérer d'autres avantages/inconvénients.
- dois-je toujours utiliser Entity Framework 4.0?
- ADO.NET lui-même n'est pas un "ORM".
Vous devez vous connecter pour publier un commentaire.
Je dis, l'utilisation d'un ORM, mais gardez cela à l'esprit.
Conception de vos requêtes et écrire du code
ce sera le résultat le moins
des allers-retours avec le serveur. C'est
la surcharge pris pour l'aller-retour
cela prend du temps.
Lire sur les expériences d'autres
les gens ont eu avec le
ORM avant de creuser trop profond.
Toujours comparer vos requêtes avec la
réelle étant exécutée dans SQL
server profiler.
Edit:
Vous ne voudriez pas utiliser un ORM pour une performance situation critique même façon, vous ne l'utilisez .Net ou Java pour écrire un système d'exploitation. Étudier vos besoins avant de choisir. Même si vous n'avez pas utiliser un ORM, vous finirez par faire quelques cartographie vous-même soit par l'intermédiaire de répéter beaucoup de code ou à l'aide d'un dictionnaire de données. Pourquoi ne pas utiliser un ORM et de savoir comment utiliser ses options pour la rendre PRESQUE aussi vite? Peser les avantages et les inconvénients et de faire votre choix.
http://mikehadlow.blogspot.ca/2012/06/when-should-i-use-orm.html
Selon les besoins, vous pouvez choisir d'utiliser ou non l'ORM.
Par exemple: Plusieurs persistance support moteur (besoin de s'exécuter sur Oracle, DB2, MySQL, SQL Server, etc.), vous pouvez bénéficier de l'abstraction que vous obtenez à partir de l'ORM au coût du potentiel de performance des applications perdu.
Si vous savez que vous allez seulement un support de la persistance du moteur et que vous voulez être en mesure de profiter d'une fonction donnée dans la persistance de moteur, qui peut ne pas être pris en charge dans l'ORM, eh bien... assez clair le choix que vous devez choisir.
Un autre facteur pourrait être développeur connaissance, comme vous l'avez mentionné, et le temps d'apprendre la nouvelle pour animaux et le projet temps (dur délais, etc...). Cela vaut pour les deux états-majors qui connaissent un particulier ORM déjà contre les états-majors qui ne sait pas ORM mais dans excel ADO.NET /tout autre niveau inférieur technologie d'accès aux données.