LINQ to SQL мертв или жив? - PullRequest
       126

LINQ to SQL мертв или жив?

94 голосов
/ 31 октября 2008

Просто когда я подружился с LINQ to SQL, кажется, что MS вытаскивает коврик из-под него.

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

Из моего небольшого исследования EF является излишним для простой работы. Но после этого объявления есть ли смысл продолжать использовать LINQ to SQL?

За пределами будущего для LINQ to SQL, разве это просто не посылает плохой сигнал? Учитывая скорость, с которой MS бросает биты в стену, рационально ли использовать какой-либо новый бит рано? (и это очень мило с LINQ to SQL!).

Что касается работы с LINQ to SQL, я думаю, что направляюсь в SubSonic!

Обновление: пара новых мнений:

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

Ответы [ 16 ]

64 голосов
/ 31 октября 2008

1) Они не могут "убить" Linq-to-SQL, так как он уже является частью .net framework. То, что они могут сделать, это прекратить добавлять функции к нему. Это не мешает тысячам разработчиков, которые уже используют L2S, расширять и улучшать его. Некоторые основные области сложны для восприятия, но они уже прочны, и отсутствующие конструктивные особенности можно легко прикрепить к .

2) Одна из сессий PDC EF показывает, что они выучили пару уроков из фиаско EFv1, и теперь они копируют и вставляют много вкусностей из L2S в EF и притворяются это новый материал EF. Другими словами, вторая версия L2S была только что «перемаркирована» EF.

3) LINQ как таковой (Language Integrated Query) - это лучшее, что есть нарезанное мороженое, и его можно использовать с множеством других вещей, кроме L2S (Linq для объектов, Linq для объектов, Linq для XML, Linq- к чему). Таким образом, попытка группы DP заставить [огромные массы] приемников L2S перейти на [менее популярный и в настоящее время ущербный] Entity Framework не является причиной, чтобы не изучать Linq.

Также посмотрите эту ветку (что, я считаю, частично вызвало сообщение в блоге Тима): http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=4061922&SiteID=1

Обновление 1: Выпуск декабрьского выпуска журнала Visual Studio Magazine от Роджера Дженнингса за декабрь 2008 года является хорошим чтением по этой теме с некоторыми сравнениями L2S и EF: http://visualstudiomagazine.com/features/article.aspx?editorialsid=2583

Обновление 2: Андерс Хейлсберг цитировался в Redmond Developer News , говоря " LINQ to SQL не мертв. Я могу заверить вас, он не мертв. Ничего когда-нибудь уйдет. Мы никогда этого не делали и никогда не сделаем."

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

28 голосов
/ 31 октября 2008

В вашем вопросе есть неопределенность, которую необходимо решить.

LINQ! = LINQ to SQL

Существует целый ряд технологий и поставщиков LINQ:

  • Linq to SQL;
  • Linq to Entities;
  • Линк к объектам;
  • Linq to XML;

... и это только Microsoft. Также есть провайдеры не MS, включая NHibernate.

Сообщение в блоге, на которое вы ссылаетесь, говорит только о Linq to SQL.

Ключевым преимуществом LINQ является то, что вы можете изучать и использовать один синтаксис запроса и повторно использовать его в нескольких технологиях.

Учитывая это, я бы предположил, что любое предполагаемое отсутствие будущего для "Linq To SQL" не имеет значения, поскольку навыки, которые вы приобретете при написании запросов LINQ, будут в будущем передаваться другим инструментам.

21 голосов
/ 23 августа 2009

Мы не убиваем LINQ to SQL. Мы оптимизируем для EF, но LINQ to SQL точно не убивается

- Скотт / Microsoft.

14 голосов
/ 31 октября 2008

Мало того, что вы должны выучить Linq (System.Linq.Enumerable и System.Linq.Queryable), вам нужно будет изучить усовершенствования языка программирования для вашего языка .net.

В C # 3.0 они включают:

  • Методы расширения (статические методы с ключевым словом this в первом параметре)
  • Типы компиляторов (var)
  • Лямбда-синтаксис (генерирующий анонимный метод или выражение в зависимости от контекста)
  • Инициализаторы
  • Свойство реализации по умолчанию (сокращение)

Подробнее здесь .


В VB 9.0 есть некоторая встроенная магия XML и многое другое (многие похожи на приведенный выше список для C #).

Подробнее здесь .

8 голосов
/ 09 декабря 2008

Я, честно говоря, не понимаю, где в этой статье вы читали, что link2sql мертв.

В сообщении в блоге, на которое вы ссылаетесь, написано:

Мы прислушиваемся к клиентам по поводу LINQ to SQL и будем продолжать развивать продукт на основе отзывов, которые мы также получаем от сообщества. Для меня это звучит так, как будто LINQ to SQL будет разрабатываться и поддерживаться в будущем. Интересно, почему вы думаете, что он мертв?

7 голосов
/ 31 октября 2008

Конечно, я думаю, что выбор между LINQ to SQL, LINQ to Entities и LINQ to [insert Third-Party ORM] здесь обеспечивает совершенно здоровую экосистему методологий уровня доступа к данным, из которых может выбирать разработчик программного обеспечения. Сторонние поставщики, такие как NHibernate, LLBLGen и даже Subsonic (не уверены, собираются ли они предлагать LINQ-провайдеров), определенно сделают конкуренцию лучше и интереснее.

При этом для Microsoft будет очень грустно отказываться от LINQ to SQL, тем более что у него есть хорошие последователи - даже StackOverflow построен на нем.

6 голосов
/ 31 октября 2008

Интересное сообщение в блоге об этом. И некоторая связанная информация по Stackoverflow сообщения .

Основная суть, по-видимому, в комментариях, сделанных в блоге ado.net , в которых говорится, что Entity Framework - это единственное, что получает основное время разработки для Visual Studio 2010 и Dot Net 4.

Мой ответ - DUH. Мы все это знали. Microsoft публично заявил на PDC 2007, что LINQ to SQL был кратковременным выпуском для SQL Server, потому что не было никакой другой истории LINQ для SQL Server. Работает только с SQL Server. Вы не можете написать поставщика LINQ to SQL - для него нет модели. Это была уникальная технология, не расширяемая.

Entity Framework - это ЕДИНСТВЕННЫЙ путь от Microsoft по созданию поставщика LINQ. Платформа Entity Framework оказалась довольно противоречивой, но я думаю, что это отчасти связано с тем, что LINQ to SQL сегодня лучше воспринимается программистами. Entity Framework поймает и превзойдет LINQ to SQL, потому что это инструмент будущего ORM / Mapping от Microsoft.

РЕДАКТИРОВАТЬ - я только что чуть подробнее написал об этом в моем блоге

EDIT2 - поставщик IQueryable - это НЕ то же самое, что поставщик LINQ to SQL. Вы можете написать свой собственный поставщик IQueryable для всего, что вам нравится. Вы не получаете поддержки дизайнера или генерации моделей. Я не знаю модели графического интерфейса для связи с генерацией моделей LINQ to SQL.

5 голосов
/ 04 ноября 2008

Наверное, я не вижу здесь проблемы. Из статьи, которую вы связали:

Мы слушаем клиентов относительно LINQ to SQL и будет продолжать развиваться на основе продукта на обратной связи мы получаем от сообщество также.

Я что-то упустил? Что создает впечатление, что LINQ to SQL не работает по прибытии?

4 голосов
/ 14 ноября 2009

Кто-нибудь помнит VB6? Неважно, нравится ли вам это лично или нет, Microsoft продала миллионы копий, а компании потратили миллионы долларов на написание миллионов строк VB6. Что случилось дальше?

Так что просто подумайте об этом уроке. Мне кажется, поддержка LinqToSQL будет довольно неохотной. Они обязаны поддержать его, потому что он находится в текущей платформе .NET. Но будет ли это в .NET 5, 6, 7 ...? Подумайте, насколько это важно для вас (насколько я знаю, это не имеет значения для вас).

4 голосов
/ 02 ноября 2008

Скотт Гатри сказал мне, что они не убьют LINQ to SQL:

Пост на LINQDev.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...