129 votes

Pourquoi devriez-vous utiliser un ORM?

Si vous deviez motiver les "pros" de la raison pour laquelle vous utiliseriez un ORM à la direction / client, quelles seraient les raisons?

Essayez de garder une raison par réponse afin que nous puissions voir ce qui est voté comme les meilleures raisons

93voto

Chuck Points 6314

La raison la plus importante pour utiliser un ORM est de sorte que vous pouvez avoir un riche, orienté-objet, modèle d'affaires, et être encore capable de stocker et d'écrire des requêtes efficaces rapidement contre une base de données relationnelle. De mon point de vue, je ne vois pas d'avantages réels d'une bonne ORM vous donne quand en comparaison avec d'autres généré DAL autres que les avancées types de requêtes que vous pouvez écrire.

Un type de question je pense est un polymorphe de la requête. Un simple ORM requête peut sélectionner toutes les formes dans votre base de données. Vous obtenez une collection de formes à l'arrière. Mais chaque instance est un carré, un cercle ou un rectangle en fonction de ses discriminateur.

Un autre type de requête serait celui qui ardemment récupère un objet et un ou plusieurs des objets ou des collections dans une seule base de données téléphonique. par exemple, Chaque forme de l'objet est retourné avec son sommet et le côté collections peuplée.

Je suis désolé d'être en désaccord avec beaucoup d'autres ici, mais je ne pense pas que la génération de code est un bon une raison suffisante en soi pour aller avec un ORM. Vous pouvez écrire ou trouver de nombreux bons DAL modèles de générateurs de code qui n'ont pas le conceptuel ou des performances qui ORM ne.

Ou, si vous pensez que vous n'avez pas besoin de savoir comment écrire de bons SQL à utiliser un ORM, encore une fois, je suis en désaccord. Il pourrait être vrai que du point de vue de l'écriture unique de requêtes, en s'appuyant sur un ORM est plus facile. Mais, avec l'ORM est qu'il est beaucoup trop facile de créer de la mauvaise exécution de routines lorsque les développeurs ne comprennent pas comment leurs requêtes de travailler avec l'ORM et le SQL qu'ils traduisent.

Avoir une couche de données qui fonctionne à l'encontre de plusieurs bases de données peuvent être un avantage. Ce n'est pas celui que j'ai eu à compter sur qui, souvent, cependant.

En fin de compte, je dois préciser que dans mon expérience, si vous n'êtes pas en utilisant le plus avancé des fonctionnalités de requête de l'ORM, il y a d'autres options qui permettent de résoudre les problèmes en suspens avec moins d'apprentissage et de moins en moins de cycles de PROCESSEUR.

Oh oui, quelques-uns des développeurs de faire le travail avec l'ORM pour être amusant ORM sont également de bon de la garder-votre-développeurs-heureux de la perspective. =)

63voto

Bill Karwin Points 204877

Développement accéléré. Par exemple, éliminer le code répétitif tel que le mappage des champs de résultat de la requête sur des membres d'objet et inversement.

60voto

Bill Karwin Points 204877

Rendre l'accès aux données plus abstrait et portable. Les classes d'implémentation ORM savent comment écrire du code SQL spécifique au fournisseur, vous n'avez donc pas à le faire.

14voto

Bill Karwin Points 204877

Prise en charge de l'encapsulation OO de règles métier dans votre couche d'accès aux données. Vous pouvez écrire (et déboguer) des règles métier dans la langue de votre application, au lieu des langages de déclenchement et des procédures stockées.

12voto

Bill Karwin Points 204877

Génération de code passe-partout pour les opérations CRUD de base. Certains frameworks ORM peuvent inspecter directement les métadonnées de la base de données, lire les fichiers de mappage de métadonnées ou utiliser les propriétés de classe déclaratives.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X