Сначала был RDO, позже ADO и еще позже ADO.NET, теперь LINQ. LINQ - это следующий стандарт, или мне следует подождать? - PullRequest
1 голос
/ 08 мая 2009

По моему скромному мнению, Microsoft меняет правила управления базами данных каждые четыре или пять лет. Я помню старые времена, когда RDO был решением для подключения к SQL-серверу. Я обновил свои знания по использованию ADO, потому что RDO устарел. ADO был очень хорошим и эффективным, но не так давно я обнаружил, что программирую и снова обновляю свои знания по использованию ADO.NET. Сейчас я работаю над своим первым проектом с использованием LINQ.

Каково ваше мнение? Готов ли LINQ стать следующим стандартом, или мне следует подождать и продолжить использовать ADO.NET, как в .NET 2.0? Из вашего собственного опыта мне нужно знать, не слишком ли дорого переход на LINQ по сравнению с преимуществами, которые он предлагает.

Ответы [ 4 ]

6 голосов
/ 08 мая 2009

Стоит ли ждать чего? Если вы подумаете об этом, любой код, который вы написали бы в прошлом, сегодня будет работать так же хорошо, как и тогда. Является ли LINQ более продуктивным, чем большинство из этих более ранних методов? На мой взгляд, да, но тогда мне очень нравится LINQ. Linq To Entities лучше? Нет, он просто другой, и, честно говоря, во многих случаях это немного более эффективно. IJW (это просто работает!) Фактор LINQ действительно невероятен, это одна из самых элегантных технологий, появившихся в Microsoft за очень долгое время. Будет ли что-то лучше в будущем? Более вероятный. Но мы живем и кодируем в настоящем, и ожидание будущего - это глупое поручение, потому что всегда есть что-то лучшее за горизонтом.

Тем не менее, это хороший аргумент для абстракции. Когда вы разрабатываете свои классы, спросите себя, могу ли я заменить X (Linq, ADO.Net и т. Д.) На своем уровне данных, не нарушая остальную часть моего приложения? Если вы можете ответить «да», у вас, вероятно, довольно хороший дизайн. Создание правильного слоя данных на самом деле не так сложно, и это позволяет вам гибко переключаться с Linq на любой другой ORM (Link to Entities, nHibernate и т. Д.) Или даже переключаться на совершенно другой сервер, например Веб-сервисы, или что-то еще, что будет дальше.

Кроме того, если вам будет удобно, LINQ никуда не денется. Его часть языка реализуется в моно, и добавляются другие поставщики linq. Даже если Microsoft перейдет на другую технологию, вы все равно увидите людей, использующих и поддерживающих Linq. Черт, это уже произошло в некоторой степени с Linq to Entities, и вы все еще видите, что большинство разработчиков, использующих Linq, в основном игнорируют L2E. Единственный существенный недостаток использования LINQ сегодня - это отсутствие надежного свободно доступного поставщика MySQL / PostOgre linq, но некоторые из них находятся в разработке.

2 голосов
/ 08 мая 2009

Функция LINQ как языка никогда не исчезнет (никогда не говори никогда), поэтому изучите ее. Это потенциально позволяет вам запрашивать любую структуру данных. то есть вы можете использовать LINQ для запроса сущностей LINQtoSQL, XML, DataSets и т. д. и т. д.

Однако, если вы говорите конкретно о LINQ to SQL, то я с вами согласен.

Менее 2 лет назад LINQ to SQL был здесь, чтобы остаться. Теперь его отбросили в пользу Entity Framework.

Теперь, да, они сказали, что многие функции LINQ to SQL будут интегрированы в Entity Framework, но, тем не менее, LINQ to SQL, как и многие другие, были отброшены, и, конечно, их было еще много. комнаты для улучшения.

Проверьте комментарии здесь для подобных проблем.

2 голосов
/ 08 мая 2009

LINQ только случайно о базах данных. Это действительно идея Microsoft о более всеобъемлющей абстракции для структурированного доступа к данным в целом. Но так как его первое проявление было LINQ-to-SQL, это первое восприятие, которое люди имели. И, конечно, разработчикам, особенно тем, кто не слишком знаком с SQL, он понравился.

Но я бы посчитал его более альтернативой SQL, чем другим упомянутым вами элементам.

Должны ли вы начать использовать LINQ? Я бы сказал, сначала прочитайте информацию о сайте Microsoft и посмотрите, согласны ли вы с этим концептуально. Я думаю, что это хорошая концептуальная идея, над ней работают яркие люди, и конкуренции не так много. Так что, пока вы твердо поддерживаете организацию .NET, она вам наверняка понравится. Есть некоторые признаки того, что мир, не принадлежащий Microsoft, в конечном итоге тоже присоединится, время не определено.

2 голосов
/ 08 мая 2009

Следует пояснить, что ado используется для извлечения данных, linq - это язык запросов, вы должны использовать оба, они не одинаковы. Linq to Sql предоставляет вам слой доступа к данным, о котором вы, возможно, и говорили, но Microsoft уже объявила о прекращении его поддержки и переходе с Linq на Entities. Если вы подождете, нет. Они просто выйдут с LinqToEntitiesADO.NET # завтра!

...