De la vieille école SQL DB access par rapport à l'ORM (NHibernate, EF, et al).Qui gagne?

StackOverflow https://stackoverflow.com/questions/59972

  •  09-06-2019
  •  | 
  •  

Question

J'ai réussi à écrire mon propre SQL code d'accès avec une combinaison de procédures stockées et des requêtes paramétrées et une petite bibliothèque d'encapsulation je l'ai écrit pour minimiser l'ADO.NET grunge.Tout cela a très bien fonctionné pour moi dans le passé et j'ai été assez productifs avec elle.

Je suis la tête dans un nouveau projet, dois-je mettre mon ancienne école des trucs derrière moi et de creuser dans un ORM-fondé de la solution?(Je sais il y a d'énormes haut-concepts différences entre NHibernate et EF--je ne veux pas entrer dans les ici.Pour la clarté de l'exposé, nous allons encore forfaitaire de LINQ avec la vieille école des solutions de rechange.) Je suis à la recherche de conseils sur l'application réelle de l'ORM type de trucs contre ce que je sais (et de connaître assez bien).

De la vieille école ADO.NET code ou ORM?Je suis sûr qu'il y est une courbe--est-ce que la courbe d'avoir un retour sur investissement qui rend les choses en vaut la peine?Je suis curieux et désireux d'apprendre, mais que vous avez une date limite.

Était-ce utile?

La solution

Une bonne question, mais un sujet très controversé.

Ce billet de blog de Frans Bouma depuis quelques années en arrière en citant les avantages de SQL dynamique (ce qui implique Orm) au cours des procédures stockées a suscité des flammes de feu de la guerre.

Autres conseils

Je trouve que LINQ to SQL est beaucoup, beaucoup plus vite quand je suis prototypage code.Il vient de coups de loin toute autre méthode quand j'ai besoin de quelque chose maintenant.

Mais il y a un coût.Par rapport à des roulés à la main stockées procs, LINQ est lente.Surtout si vous n'êtes pas très prudent, car apparemment changements mineurs peut tout à coup faire un tour en 1+N requêtes.

Ma recommandation.L'utilisation de LINQ to SQL, d'abord, puis swtich pour procs si vous n'obtenez pas les performances dont vous avez besoin.

Il y avait un grand débat sur ce sujet lors de DevTeach à Montréal.Si vous allez à cette adresse: http://www.dotnetrocks.com/default.aspx?showNum=240 vous serez en mesure d'entendre deux experts dans le domaine (Ted Neward et Oren Eini) discuter les avantages et les inconvénients de chaque approche.Probablement la meilleure réponse, vous la trouverez sur un sujet qui n'a pas de réelle réponse définitive.

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