![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Кто-нибудь разбирался, тестировал новую фичу C# LINQ? Есть какие-то проблемы/недостатки/особенности? Интересно оценить перспективы...
-------------------- I don't need a reason being who I am... |
|||
|
||||
tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
Бегло ознакомился. Не понравился.
Особенностей много - это новый принцип запросов - для представления не реляционных источников данных, а объектно-ориентированных источников данных. Но поскольку физически данные хранятся в реляционном виде, то отсюда недостатки LINQ - громозкая и ИМХО не очень понятная мне пока архитектура и, как и все оболочки, уменьшение быстродействия. Опять же могу ошибаться Sql Server 2008 будет поддерживать как T-SQL, так и LINQ -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
побаловался немножко. при некотором опыте синтаксис запросов выглядит куда приятней\нагляднее\понятнее, чем циклы по тем же наборам, но в C# синтаксис LINQ несколько незавершённый, часто приходится прибегать к лямбдам; это, думаю, поправят в следующем релизе. ну и скорость немного помедленей, чем чистые циклы, что некритично для меня, т.к. моделировать реакции ядерного синтеза на C# не требуется.
перспективы.. уж точно не выкинут его из .NET, раз добавили; так чта, будут развивать, поддерживать и проталкивать. ![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
D_F_V |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 27.3.2007 Где: Vladivostok Репутация: 1 Всего: 1 |
||||
|
||||
1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 8 Всего: 40 |
D_F_V, похожий пример пример, как в ссылке делается через System.Configuration.ConfigurationSection, содержащий ConfigurationElementCollection без геморроя с парсингом XML, как в примере. Интересно было бы сравнить скорость выполнения.
-------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: 1 Всего: 6 |
LINQ – недостающее звено в разработке баз данных
Добавлено через 2 минуты и 37 секунд очень не понравилось, что на данный момент нет возможности работы с другими СУБД, кроме SQL Server -------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: 1 Всего: 6 |
немного поюзал LINQ и убедился, что нетакая уж и плахая это штука.. очень понравилась возможность работать с реляционной базой данных как с объекто-ориентированной.. очень удобно..
-------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Насколько я понял, суть LINQ при работе с БД заключается в том, что используя C# мы пишем длинный составной SQL-запрос к базе, который выполняется при первом foreach.
-------------------- ![]() |
|||
|
||||
Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 1 Всего: 78 |
я так понял, что "клиент" это GUI приложение ??? Ну и прочитав описание этой технологии несколькими постами выше, я начал думать, что LINQ не проберется в asp.net с SQL Server'ом. Потому что там используются Stored Procedure которые увеличивают производительность и защищенность от SQL-inj. Ну и потом, это опять получается, что Microsoft переходит к двухзвенной структуре общения, а ведь она этим так гордилась... мне это не сильно нравится. Я ж надеюсь мы не скатимся до PHP программистов, которые выгружают из СУБД всю таблицу, а потом начинают с ней работать и забирать только нужные ей записи... -------------------- |
|||
|
||||
RWander |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 349 Регистрация: 4.5.2006 Где: Russia.Udm.Izhevs k Репутация: 1 Всего: 6 |
похоже так и есть..) -------------------- Microsoft Certified Technology Specialist - ASP.NET Applications |
|||
|
||||
Zakonnic |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 2 Всего: 6 |
Ребят, а рефлектором никто его не смотрел? Хорошо бы узнать принципы работы поконкретнее, без предположений.
Но кстати в одном блоге был пример теста скорости линка на огромном массиве интов - работает примерно в 1.5-2 раза медленнее цикла for. Приемлемая производительность, если без фанатизма. Другое дело - нет ли каких оптимизаций в плане доступа к БД и алгоритмов обработки запросов от ЛИНКа? --------------------
...и никогда не пишите в комментариях правду |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
Неа, все совсем не так. Загрузка всей базы, и работа с ней на клиентской стороне - это датасеты. Основная фишка LINQ - операции над запросами, а не над самими данными. Если в Linq to SQL пару раз вызвать Where, сгруппировать, отсортировать, а потом попробовать у результата взять First(), то из базы выберется только одна строка. Т.е. стандартные провайдеры LINQ откладывают вычисления до последнего момента, пока вы сами не захотите получить конкретные данные. Вот и вся оптимизация :( |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
![]() -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Зато убивается возможность оптимизировать запросы на стороне БД, т.к. каждый раз идёт новый запрос со своим SQL и соотв. планом выполнения. Убийство. -------------------- ![]() |
|||
|
||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
![]() -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |