web-dev-qa-db-fra.com

LINQ to SQL est-il déconseillé?

À la fin de 2008, il y avait beaucoup de débats sur l'avenir de LINQ to SQL. Beaucoup ont suggéré que les investissements de Microsoft dans Entity Framework dans .NET 4.0 étaient un signe que LINQ to SQL n'avait pas d'avenir. J'ai pensé que j'attendrais avant de prendre ma propre décision car les gens n'étaient pas d'accord.

Avance rapide de 18 mois et j'ai des fournisseurs qui fournissent des solutions qui s'appuient sur LINQ to SQL et je l'ai personnellement essayé et j'ai vraiment apprécié de travailler avec. Je pensais que c'était là pour rester.

Mais je lis un nouveau livre (C # 4.0 How-To de Ben Watson) et dans le chapitre 21 (LINQ), il suggère qu'il "a été plus ou moins déconseillé par Microsoft" et suggère d'utiliser LINQ to Entity Framework.

Ma question est de savoir si LINQ to SQL est officiellement obsolète et/ou si des entités faisant autorité (Microsoft, Scott Gu, etc.) suggèrent officiellement d'utiliser LINQ to Entities au lieu de LINQ to SQL.

56
Mayo

Pour tous les "Linq-to-SQL est mort" les gens: Scott Guthrie lui-même a clairement mentionné à TechEd Europe que Linq-to-SQL est ENTIÈREMENT SUPPORTÉ dans .NET 4, et Damien Guard a publié un blog post sur les modifications et améliorations apportées à Linq-to-SQL dans .NET 4.

Pour citer Mark Twain: "Les informations sur ma mort ont été grandement exagérées" ......

60
marc_s

La dernière fois que j'ai vérifié, ce site utilise (ou utilisait) Linq To SQL. Joel Spolsky le mentionne dans son GoogleTechTalk: http://www.youtube.com/watch?v=NWHfY_lvKIQ .

Quand on parle de logiciel, "mort" est un modificateur figuratif (le logiciel ne meurt pas au sens littéral ou biologique), donc ce débat peut persister tant que les parties impliquées refusent de définir au sens littéral ce que cela signifie " Linq To Die ". Ou, LTD pour faire court. Par conséquent, à partir de ce moment, le débat sur l'ILD dure depuis deux ans. Tout cela à cause d'une petite ambiguïté linguistique.

Ceux qui disent que "L2S est mort" se réfèrent généralement au fait que L2S ne recevra pas trop (le cas échéant) de nouvelles fonctionnalités. Les mises à jour de Linq (comme les mises à jour mentionnées dans article de Damien Guard ) sont susceptibles d'être limitées aux mises à jour de performances, d'utilisabilité et de stabilité. Bien sûr, certains développeurs pourraient en fait affirmer que c'est une bonne chose (probablement les mêmes développeurs qui sont un peu en colère contre le nouveau type dynamique ).

Ceux qui disent que "L2S n'est pas mort" se réfèrent généralement au fait que L2S ne sera pas complètement supprimé de .Net (du moins pas de sitôt). Pensez: ADO. Il peut perdre une partie de sa traction parmi les développeurs pratiquants (et cela peut être le désir tacite de ces gens rusés chez Microsoft), mais cela ne signifie pas que vous ne pourrez pas utiliser L2S si vous le souhaitez. Cela signifie simplement que Microsoft n'essaie pas de titiller les masses avec.

Lors du démarrage d'un projet, je pense en fait que c'est génial d'avoir le choix entre EF et L2S. Comme Bill Wagner souligne, il y a un temps et un lieu pour les deux.

12
Evan Nagle

Je suis en retard à cette discussion, mais je voulais souligner que dès 2008, le lien vers le gestionnaire de projet SQL (Tim Mallalieu) a fait cette annonce dans son article de blog ,

"Depuis .NET 4.0, LINQ to Entities [plutôt que LINQ to SQL] sera la solution d'accès aux données recommandée pour LINQ to scénarios relationnels."

Je n'ai trouvé aucune autre annonce plus récente du contraire.

9
kmote

Non ça ne l'est pas. L'équipe travaille toujours à son amélioration.

8
Mark Byers

N'oubliez pas de consulter cet article publié sur InfoQ.com - c'est vraiment intéressant. Sa conclusion: "[O] u long terme, LINQ to SQL et LINQ to Entities vont fusionner. Dans l'intervalle, les travaux de développement sur LINQ to SQL ne s'arrêteront pas complètement."

4
Marius Schulz

outils LINQ to SQL dans Visual Studio

LINQ to SQL a été la première technologie de mappage relationnel-objet publiée par Microsoft. Il fonctionne bien dans les scénarios de base et continue d'être pris en charge dans Visual Studio, mais il n'est plus en cours de développement actif. Utilisez LINQ to SQL lors de la maintenance d'une application héritée qui l'utilise déjà ou dans des applications simples qui utilisent SQL Server et ne nécessitent pas de mappage multi-tables. En général, les nouvelles applications doivent utiliser Entity Framework lorsqu'une couche de mappage relationnel-objet est requise.

0
Wouter

je suppose qu'il est inévitable qu'ils fusionnent. EF est vraiment une implémentation de LINQ au niveau de l'entreprise sur des objets db. linq2sql était à tous égards une preuve de concept (et bien plus encore) qui a réellement fait grossir les jambes mais a alimenté de nombreuses idées que nous voyons maintenant dans EF. à la fin de la journée, la couche DAL (nhibernate, EF, l2s, subsonic, etc.) devrait être assez loin dans la chaîne afin de supprimer toute différence dans le code BO client qui implique le service LINQ - le remplacement à chaud serait la fin jeu via DI.

0
jim tollan