LINQ to SQL est-il mort ou vivant?

juste quand je me fais des amis avec LINQ à SQL, il semble que MS tire le tapis de dessous.

http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx

D'après mes recherches, EF est bien trop compliqué pour un travail simple. Mais après cette annonce, y a-t-il un intérêt à continuer à utiliser LINQ to SQL?

au-delà de l'avenir pour LINQ à SQL, cela n'envoie-t-il pas un mauvais signal? Étant donné la vitesse avec laquelle MS jette des bits contre le mur, est-il raisonnable d'utiliser l'un des nouveaux bits tôt? (et c'est d'être gentil, il est trop tôt pour LINQ to SQL!).

pour mon travail de LINQ à SQL, je pense que je me dirige vers SubSonic!

mise à jour: quelques nouvelles opinions:

http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx

http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx

94
demandé sur abatishchev 2008-10-31 08:33:51

16 réponses

1) Ils ne peuvent pas "tuer" Linq-to-SQL car il fait déjà partie du framework .net. Ce qu'ils peuvent faire est d'arrêter l'ajout de fonctionnalités. Cela n'empêche pas les milliers de développeurs qui utilisent déjà L2S de l'étendre et de l'améliorer. Certaines zones centrales sont difficiles à toucher, mais elles sont déjà solides et les caractéristiques manquantes du designer peuvent facilement être verrouillées sur .

2) l'Un des PDC EF sessions afficher qu'ils ont tiré quelques leçons du fiasco de L'EFv1 et qu'ils copient et collent maintenant beaucoup de goodies de L2S à EF et prétendent que c'est un nouveau truc EF. En d'autres termes, la version 2 de L2S vient d'être "réétiquetée" EF.

3) LINQ en tant que tel (Language Integrated Query) est la meilleure chose depuis sliced ice-cream et il peut être utilisé avec beaucoup d'autres choses que L2S (Linq to objects, Linq to entities, Linq to XML, Linq-to-anything). Ainsi, la tentative du groupe DP de forcer [la grande masse des] adopteurs de L2S à [Le moins populaire et actuellement défectueux] le cadre de L'entité n'est pas une raison pour ne pas apprendre Linq.

Voir Aussi ce fil (ce qui est ce que je crois en partie déclenché Tim post blog): http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4061922&SiteID=1

mise à Jour 1: Le Déc 2008 de Visual Studio pour la couverture du Magazine histoire par Roger Jennings est une bonne lecture sur le sujet, avec quelques comparaisons L2S vs EF: http://visualstudiomagazine.com/features/article.aspx?editorialsid=2583

Update 2: Anders Hejlsberg a été cité dans Redmond Developer News comme disant " LINQ à SQL n'est pas mort. Je peux vous assurer qu'il n'est pas mort. Rien ne va jamais loin. Nous n'avons jamais fait et nous ne le ferons jamais. "

http://reddevnews.com/blogs/weblog.aspx?blog=3016

64
répondu KristoferA 2008-12-12 08:32:45

il y a une ambiguïté dans votre question qui doit être résolue.

LINQ != LINQ à SQL

il y a tout un tas de technologies et de fournisseurs LINQ:

  • Linq to SQL;
  • Linq to Entities;
  • Linq to Objects;
  • Linq to XML;

... et ce ne sont que ceux de Microsoft. Il y a des non-MS fournisseurs aussi, y compris NHibernate.

le billet de blog que vous avez lié ne parle que de Linq à SQL.

le principal avantage de LINQ est que vous pouvez apprendre et utiliser une syntaxe de requête et de la réutiliser à travers plusieurs technologies.

étant donné cela, je suggère que tout manque perçu d'un avenir pour "Linq to SQL" est hors de propos, car les compétences que vous gagnez en écrivant des requêtes LINQ seront transférables à d'autres outils dans l'avenir.

28
répondu Bevan 2008-10-31 05:41:43

nous ne tuerons pas LINQ à SQL. Nous sommes optimisation pour l'EF, mais LINQ to SQL est certainement pas tué :)

- Scott / Microsoft.

21
répondu Scott Barnes 2009-08-22 23:04:18

non seulement vous devez apprendre Linq (System.Linq.Énumérable et système.Linq.Queryable), vous aurez besoin d'apprendre les améliorations du langage de programmation pour votre langage .net.

En C# 3.0 elles comprennent:

  • les méthodes d'Extension (méthodes statiques avec le mot-clé this sur premier paramètre)
  • compilateur types inférés (var)
  • syntaxe Lambda (qui génère une méthode anonyme ou une Expression selon le contexte)
  • Initialisateurs
  • la Propriété par défaut de mise en œuvre (un raccourci)

Lire plus ici .


dans VB 9.0 il y a un peu de magie XML en ligne, et beaucoup d'autres choses (beaucoup sont similaires à la liste ci-dessus pour C#).

Lire la suite ici .

14
répondu Amy B 2008-10-31 13:50:31

honnêtement, je ne comprends pas où dans cet article vous avez lu que link2sql est mort.

dans le billet de blog vous lié à il dit:

" nous sommes à l'écoute des clients concernant LINQ to SQL et nous allons continuer à développer le produit en fonction des commentaires que nous recevons de la communauté ainsi.

pour moi cela se lit comme LINQ à SQL sera développé et soutenu à l'avenir. Je demander pourquoi vous pensez que c'est mort?

8
répondu Sam 2008-12-09 12:21:23

accordé, je pense que le choix entre LINQ à SQL, LINQ à Entities et LINQ à [insert tiers ORM] fournit ici un écosystème parfaitement sain des méthodologies de couche d'accès aux données qu'un développeur de logiciel peut choisir. Les fournisseurs tiers comme NHibernate, LLBLGen et même Subsonic (pas sûr s'ils vont offrir des fournisseurs LINQ) vont certainement rendre la concurrence meilleure et plus intéressante.

cela dit, il sera totalement triste pour Microsoft à abandonner LINQ à SQL, d'autant plus qu'il a un bon suivi -- même StackOverflow est construit sur elle.

7
répondu Jon Limjap 2008-10-31 07:56:25

intéressant billet de blog à ce sujet. , Et des informations connexes sur Stackoverflow postes .

the basic gist appears to be comments made on the ado.net blog qui déclarent que le cadre de L'entité est la seule chose qui obtient temps de développeur majeur pour Visual Studio 2010 et Dot Net 4.

ma réponse est-DUH. Nous avons tous connu ce. Microsoft a déclaré publiquement de retour à la PDC 2007 que LINQ à SQL était une version à court terme pour SQL Server parce qu'il n'y avait pas D'autre histoire de LINQ à SQL Server. Il ne fonctionne qu'avec SQL Server. Vous ne pouvez pas écrire un LINQ à SQL provider - il n'y a pas de modèle pour cela. C'était une technologie hors service, pas extensible.

le framework Entity est le seul moyen de Microsoft pour construire un fournisseur LINQ. Le cadre D'Entity s'est avéré être tout à fait contreversial, mais je pense que c'est en partie dû au fait que LINQ à SQL a une meilleure expérience de programmeur aujourd'hui. Entity Framework attrapera et surpassera LINQ à SQL parce qu'il est l'outil de cartographie ORM/du futur de Microsoft.

EDIT - je viens de faire un peu plus détaillé écrire à ce sujet sur mon blog

EDIT2 - IQueryable de Fournisseur n'est PAS la même chose qu'un fournisseur LINQ to SQL. Vous pouvez écrire votre propre fournisseur IQueryable pour tout ce que vous voulez. Vous n'obtenez pas de soutien de designer ou de modèle génération. Il n'y a pas de modèle gui designer que je connaisse pour lier LINQ à la génération de modèles SQL.

6
répondu Jason Short 2017-05-23 12:34:01

je suppose que je ne vois pas vraiment le problème ici. De l'article que vous avez lié:

Nous sommes à l'écoute des clients concernant LINQ à SQL et will continuer à développer le produit basé sur les commentaires que nous recevons de la de la communauté.

est-ce que je manque quelque chose? QU'est-ce qui donne L'impression que LINQ à SQL est mort à son arrivée?

5
répondu Gabriel Isenberg 2008-11-04 00:01:54

Scott Guthrie m'a dit qu'ils ne tueraient pas LINQ à SQL:

poste à LINQDev.com

4
répondu Joe Rattz 2008-11-01 22:33:55

Quelqu'un se souvient de VB6? Que vous le détestiez ou que vous l'aimiez personnellement, Microsoft a vendu des millions d'exemplaires, et les entreprises ont dépensé des millions de dollars pour écrire des millions de lignes de VB6. Ce qui s'est passé ensuite?

  • bien, Microsoft font toujours support VB6 (sorte de - pas L'IDE).
  • et Microsoft disent encore qu'ils écoutent les clients VB6 même maintenant ( en septembre 09 ).
  • mais les clients de VB6 sont-ils contents? depuis 2002 , 4 ans après VB6 lancé.
  • pourquoi pas? Les chemins de mise à niveau pour votre investissement code vers la technologie de remplacement, VB.Net, sont cher .

alors considérez cette leçon. Pour moi, il semble que le soutien de LinqToSQL sera plutôt à contrecœur. Ils sont obligé pour le soutenir parce que c'est dans le cadre actuel de .NET. Mais sera-t-il dans .NET 5, 6, 7...? Il suffit de penser à combien cela compte pour vous (pour tout ce que je sais, il n'a pas d'importance pour vous du tout).

4
répondu MarkJ 2017-05-23 12:16:55

peut-être que vous ne devriez pas vous embêter à apprendre le Linq à SQL, mais il y a encore les entités Linq qu'ils garderont.

3
répondu korro 2008-10-31 12:12:21
3
répondu loraderon 2008-10-31 12:35:36

il est évident que 2 ORMs est un à plusieurs dans la boîte à outils de Microsoft, mais pour moi, il semble être le mauvais cadre a été choisi pour toutes les mauvaises raisons. Le fait que L'équipe C# a fait le travail que le ADO.NET l'équipe était censée faire en beaucoup plus court temps et a fait le travail beaucoup mieux est difficile à avaler pour le ado.net l'équipe. Non pas que je connaisse le fonctionnement interne des 2 Framework mais je pense qu'il serait beaucoup plus rapide de mettre à jour les défauts de linq2sql à l'entity framework.

il semble qu'il y ait trop de politique en jeu et je pense que cela va vraiment nuire à la asp.net réputation, puisque je n'ai pas confiance dans ce cadre D'entité nous donnera une expérience aussi conviviale que Linq2sql. Les ado.net l'équipe pourrait également acquérir certaines compétences en communication de la asp.net MVC équipe car les clarifications sur le problème est au mieux vague.

ce serait amusant d'apprendre ce que Scott Gu et son équipe de MVC se trouve ici comme la plupart de leurs des exemples sont L'utilisation de Linq2Sql.

3
répondu terjetyl 2009-04-07 15:42:30

il a toujours été un peu bizarre qu'avec Linq 2 Sql et Entity Framework il y ait de grandes zones de chevauchement. Je pense que la seule raison pour laquelle L2S n'est jamais devenu le .NET 3.5 était parce qu'il y avait un grand doute que EF ne verrait jamais la lumière du jour. Maintenant que EF1 est sorti, que ce soit une v1 très rugueuse, il n'y avait plus besoin de L2.

2
répondu Craig 2008-10-31 12:08:25

(Non, StingyJack, LINQ to SQL n'utilise pas le framework entity)

de toute façon, je ne m'inquiéterais pas. Tim déclare être à l'écoute des clients concernant LINQ à SQL. À en juger par l'enthousiasme que j'ai vu pour L2S, les clients (qui est nous) parleront leurs esprits.

et, comme le souligne KristoferA, ils ne peuvent pas réellement "tuer" les L2, mais les congeler. Et L2S, une fois poli, ne nécessite pas vraiment beaucoup plus de développement. Avec le L2S fournisseur en place, toute avance dans LINQ devrait être disponible dans L2S aussi. Donc le choix sera toujours le nôtre.

2
répondu Tor Haugen 2008-10-31 13:53:38

la prochaine version de Windows Phone 7, nom de code Mango, comprend une édition compacte SQL Server accessible via Linq à SQL http://jesseliberty.com/2011/05/10/coming-in-mangosql-server-ce/

0
répondu Bruno Martinez 2011-05-14 22:46:15