Что бы вы выбрали для своего уровня данных сегодня, Linq или Subsonic? - PullRequest
7 голосов
/ 30 октября 2008

Мы готовы начать новый проект на работе, без устаревшего кода. Мы использовали Subsonic в прошлом, и мы очень довольны этим. Но это было до Линка.

Кто-нибудь сталкивался с такой же проблемой (Linq x Subsonic)?

Каково было ваше решение? Каковы были причины?

Любое понимание приветствуется.

Ответы [ 8 ]

11 голосов
/ 30 октября 2008

SubSonic

Плюсы:

  • Красиво и просто
  • 1010 * Строительные леса *

Минусы:

  • Сигнатуры методов часто принимают строковые параметры (хотя рекомендуется использовать строковые константы DAO), которыми можно злоупотреблять.

Имейте в виду:

  • Требуется проект веб-сайта для генерации моделей без использования кода (необходим BuildProvider).

Linq To SQL

Плюсы:

  • Синтаксический сахар в среде IDE
  • MS поддерживается
  • Просмотр SQL, который будет выполнен в IDE
  • Разрешает различные уровни игры в модели, от автогенерации до явных определений вплоть до свойств объекта.

Минусы:

  • Комплекс. Вам нужно изучить новые концепции, такие как DataContext, чтобы быть эффективными.

Имейте в виду:

Также оцените ADO.NET Entity Framework и здесь .

3 голосов
/ 30 октября 2008

Единственное, что мне нравится в LINQ, и я не думаю, что SubSonic справляется с этим изящно, это автоматическое взаимодействие с объединениями.

FROM a in db.Orders
where a.Total > 100
SELECT new {a.Item.Desc, a.Customer.Name};

автоматически сгенерирует SQL как этотL

select i.DESC, c.NAME 
from  ORDERS o  
inner join ITEMS on o.ItemID = i.ItemID 
inner join CUSTOMERS c on o.CustomerID = c.CUSTOMERID 
where o.TOTAL > 100
1 голос
/ 06 ноября 2008

Я пошел с Linq, потому что он встроен в фреймворк. Для тех, кто говорит, что это не будет поддерживаться Microsoft ... это LinqToSql, который будет прекращен. Я считаю, что один из планов - включить его в Entity Framework.

Я сейчас использую Entity Framework. Он также использует linq, и в основном он похож на linqToSql с большей гибкостью и мощностью, если вы решите его использовать.

Я склонен избегать сторонних фреймворков и форм, потому что в конечном итоге они тоже вымирают. Я верю, что у них больше шансов умереть, потому что их жизнь зависит от того, как много людей заинтересованы в этом и используют его. Их жизнь также сильно зависит от его основного автора / участника.

1 голос
/ 06 ноября 2008

Мой опыт был основным с SubSonic. Это очень просто для развертывания, и вы получите DAL менее чем за полчаса. Имейте в виду, что это швейцарский армейский нож, так как он рассчитан на полезность. В основном вы получаете класс, сгенерированный для каждой таблицы, а также возможность выполнять отложенную загрузку для коллекций. Вы также можете выполнять хранимые процедуры через среду, поэтому, если у вас есть сложные структуры данных, вы можете извлечь их из базы данных и обновить класс, который вы создаете вручную.

Я уже использовал его в 5 крупных проектах и ​​впечатлен тем, насколько быстро я стал зависимым от него.

1 голос
/ 30 октября 2008

А как насчет NHibernate? Это действительно не вписывается в новые проекты? Тем не менее, люди, пришедшие с Java, найдут его знакомым, и вы также можете использовать его с .NET 2.0 и Mono.

0 голосов
/ 30 октября 2008

Возможно, вы захотите посмотреть, что произойдет, когда MS прекратит разработку LINQ to SQ L, как это, кажется, происходит. Последняя версия SubSonics проще для создания запросов и более удобочитаема, чем их предыдущая версия.

0 голосов
/ 30 октября 2008

Я был в такой же ситуации. LinQ более «визуален», вы все делаете внутри vstudio, и даже Роб признает, что у subsonic есть несколько вещей, которые могут ему соответствовать.

IEnumerable, LINQDatasource (с автоматической подкачкой страниц) и визуальное моделирование убедили меня выбрать Linq вместо Subsonic.

0 голосов
/ 30 октября 2008

Самый большой риск, связанный с linq to sql, заключается в том, что Microsoft устает от него и от него отказывается. Существует много предположений о том, что это уже произошло, и будет обновлена ​​только структура сущностей. Subsonic не страдает от этого, и в худшем случае у вас есть исходный код для внесения изменений.

...