Здравствуйте, gandjustas, Вы писали:
G>Ты прочитай ответы до конца. Эту проблему легко обойти.
Само наличие этой проблемы — скверный сигнал. Это ж не какой то хитровычурный юзкейс, это один из базовых сценариев.
AVK>>Переходишь на личности, некрасиво. G>Знаешь, уже не только я отметил непрофессиональный подход некоторых личностей. Не уподобляйся им.
И опять перешел на личности.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, gandjustas, Вы писали:
G>>Ты прочитай ответы до конца. Эту проблему легко обойти.
AVK>Само наличие этой проблемы — скверный сигнал.
"Скверный сигнал" имеет хоть какое-то отношение к реальным проблемам?
Еще раз повторяю:
1) в linq этот "скверный сигнал" исправляется заменой аж двух строк.
2) Там где исправить нельзя этот "скверный сигнал" имеет влияние на на быстродействие меньше статистической погрешности.
AVK>Это ж не какой то хитровычурный юзкейс, это один из базовых сценариев.
Использование identity map тоже "не хитровычурный юзкейс, это один из базовых сценариев", вот только он в linq2db не поддерживается. Скверный сигнал однако...
AVK>>>Переходишь на личности, некрасиво. G>>Знаешь, уже не только я отметил непрофессиональный подход некоторых личностей. Не уподобляйся им. AVK>И опять перешел на личности.
Потому что проблема не в конкретных ORM, а в людях, выносящих суждения, используя настолько непрофессиональную аргументацию.
Еще раз повторяю: не уподобляйся им.
Re[13]: Почему вы НЕ используете Entity Framework?
Здравствуйте, gandjustas, Вы писали:
AVK>>Это ж не какой то хитровычурный юзкейс, это один из базовых сценариев. G>Использование identity map тоже "не хитровычурный юзкейс, это один из базовых сценариев"
Нет, это не базовый сценарий а заботливо подложенные грабли.
G>, вот только он в linq2db не поддерживается
Совершенно намеренно, замечу. Т.е. это вполне осознанное решение, принятое на основании значительного опыта нескольких людей.
AVK>>И опять перешел на личности. G>Потому что проблема не в конкретных ORM, а в людях
Проблемы, они, конечно, всегда в людях, но здесь технический форум.
G>Еще раз повторяю: не уподобляйся им.
Пока что им уподобляешься ты, с завидным упорством переходя на личности вместо конструктивного разговора.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
Здравствуйте, gandjustas, Вы писали:
AVK>>Это ж не какой то хитровычурный юзкейс, это один из базовых сценариев. G>Использование identity map тоже "не хитровычурный юзкейс, это один из базовых сценариев", вот только он в linq2db не поддерживается. Скверный сигнал однако...
Едва ли он кому-то нужен. А впиндюреный туда намертво — точно не нужен.
Здравствуйте, AndrewVK, Вы писали:
AVK>А меня вот другой вопрос интересует — почему критика в адрес некоторых технологий всегда вызывает у определенных людей жуткое желание с ней спорить до последнего, при помощи некооректных приемов спора в том числе? Это вот, как раз, EF, юнит-тестирование еще, rich data model. Ах да, Немерле вот
Я не до конца понял, в чей огород тут камень, но рискну предположить, что это был выпад в сторону оппонентов IB.
Еще раз повторю свой посыл. Читая сообщения IB (и вообще противников EF'а и тяжеловесных ORM'ов) складывается впечатление, что этот EF -- диавольская технология и вообще худшее, что могло случиться в мире .NET. Возможно. Но аргументация выпадов страдает. Походя бросить "Identity Map/Lazy Loading не нужен потому что гладиолус" или "В EF плохо всё" -- это, бесспорно, очень задорно, но после просьбы как-то более предметно (и с использованием объективных технических аргументов) раскрыть суть претензии запал обычно затухает, нападает лень, члены становятся немощны и в качестве доказательств используются посылы вида "я уже в этом топике рассказывал, поищи, лень одно и то же по цать раз повторять" и "перечитай мое сообщение внимательнее", либо апелляция к собственному опыту "да я смотрел, там ничего не изменилась", либо же цитирование каких-то ветхозаветных (или не относящихся к делу) статей, или, чего хлеще, цитирование соратников по благодатному срачу. И дискуссия в итоге вырождается в "Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера."
Возможно, вы знаете что-то такое, что могло бы открыть глаза на порочность использования ORM'ов всему RSDN'у. Если это так, то почему бы раз и навсегда не положить конец лютым спорам и не собрать в одном месте все доводы против EF'а и ORM'ов, подкрепив это все для верности верфицируемыми доказательствами (вот про этот разнесчастный left join, пол неотключаемый LL, что там еще)? Там же можно похвастаться боевыми шрамами: "вот я использовал ORM в таком-то проекте и вот как вероломно этот Identity Map укусил меня за жопу" или "использование Lazy Loading привело к тому, что наш сайт стал жрать память и локи на таблицах висели как яблоки на яблоне в урожайную пору".
Нынешний уровень аргументации -- не канает, увы.
HgLab: Mercurial Server and Repository Management for Windows
Здравствуйте, gandjustas, Вы писали:
G>Замеры скорости работы Linq2SQL. Или снова все по пресс-релизам?
В топике про пресс-релизы ты слился, так что не вижу причины повторять это упражнение здесь.
Здравствуйте, Нахлобуч, Вы писали:
Н>Я и сам не в восторге от EF и никому его в здравом уме не порекомендую, но почему-то у меня не возникает желания впрягаться практически в каждый топик с обсуждением оного.
Да я и не впрягаюсь. )
Н>Вы же, наверное, самый ярый его здесь противник,
Вовсе нет. Но, наверное, один из самых последовательных.
Н> но предъявляемые претензии уровня "хвост болтается между ног", "криво через жопу", "враскоряку", "лишний код", "не нужен" и т.д. несколько не канают на профессиональном форуме.
Ну вот так передергивать совсем не красиво — это вовсе не моя терминология. =)
Н> Единственный относительно технический довод "против EF" (из более-менее свежих постов) был касательно его странного поведения при left join'ах
-- и только.
И только?! А сколько таких "и только" нужно?
Для меня ситуация выглядит несколько иначе. Для аудитории, которая считает, что ORM которая криво генерит запросы с left join-ами это "и только" — уровень моей аргументации слишком профессионален, но, к сожалению, опускаться ниже я уже не могу.
Н> Складывается впечатление, что EF лично вам чем-то досадил и вы, толком не разобравшись (да-да, я помню про "смотрел самую свежую версию, все проблемы там же и остались", но см. выше про технические аргументы), начали огульно кунать в какашки его и все Heavyweight ORM'в вместе взятые.
У меня складывается обратное впечатление. Я уже достаточно подробно объяснил, в том числе и в свежих топиках, почему у EF проблемы и откуда они берутся, привел несколько примеров этих проблем и показал почему они остаются в продукте от версии к версии... Собственно ответ "by design" от разработчиков — лишнее подтверждение моей правоты. Что еще надо?
Любое дополнительное количество технических аргументов будет упираться в "и только", но мне это уже давно не интересно...
Н>Возможно, вы уже подустали повторять одно и то же в разных тредах,
Да.
Н>но сам факт участия в них говорит об обратном:
сам факт участия в них ни говорит ни о чем. Мне просто нравится наблюдать как оппоненты сначала пыжутся, напирают, а потом молча сливаются, когда показываешь как все на самом деле происходит
Н> "враскоряку"-стайл аргументы в ответах присутствуют, а объективности как-то не наблюдается.
Ойнупростите, признаю, не объективен. Все-таки у меня какая-то неявная симпатия к EF присутствует и потому был излишне мягок, больше не повторится ))
Н> Возможно, вам стоит один раз собраться, написать в местный блог статейку с перечислением самых одиозных родовых травм EF'а и его технических недостатков и войти таким образом в пантеон развенчателей мифа ORM'ов?
Вот тогда бы я впрягся. =) Но я это упражнение уже несколько раз проделывал — больше не интересно.
Здравствуйте, Нахлобуч, Вы писали:
Н>Нынешний уровень аргументации -- не канает, увы.
Ох какое падение нравов ((
Ну, значит не судьба, от нынешнего уровня аудитории я тоже не в восторге... ;(
Мы уже победили, просто это еще не так заметно...
Re[10]: Почему вы НЕ используете Entity Framework?
От:
Аноним
Дата:
09.07.14 05:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:
AVK>Нормальные селекты для master->detail — это обязательное требование для любой серьезной ORM, даже для легковесной типа linq2db.
а linq2db такое умеет?
Re[14]: Почему вы НЕ используете Entity Framework?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, gandjustas, Вы писали:
AVK>>>Это ж не какой то хитровычурный юзкейс, это один из базовых сценариев. G>>Использование identity map тоже "не хитровычурный юзкейс, это один из базовых сценариев" AVK>Нет, это не базовый сценарий а заботливо подложенные грабли.
Нет, это базовый сценарий. Им пользуется на 3 порядка больше людей, чем всем linq2db и dapper вместе взятыми.
G>>, вот только он в linq2db не поддерживается AVK>Совершенно намеренно, замечу. Т.е. это вполне осознанное решение, принятое на основании значительного опыта нескольких людей.
Нескольких это пяти? или шести?
AVK>>>И опять перешел на личности. G>>Потому что проблема не в конкретных ORM, а в людях AVK>Проблемы, они, конечно, всегда в людях, но здесь технический форум.
Именно, поэтому аргументы вроде "скверный сигнал", "грабли" не канают.
Приводи конкретные примеры.
Re[14]: Почему вы НЕ используете Entity Framework?
Здравствуйте, fddima, Вы писали:
F>Здравствуйте, gandjustas, Вы писали:
AVK>>>Это ж не какой то хитровычурный юзкейс, это один из базовых сценариев. G>>Использование identity map тоже "не хитровычурный юзкейс, это один из базовых сценариев", вот только он в linq2db не поддерживается. Скверный сигнал однако... F> Едва ли он кому-то нужен. А впиндюреный туда намертво — точно не нужен.
В теории конечно так, а на практике куча инструментов в .net заточено именно на работу с объектами. Напрмиер model binding в asp.net.
Я попробовал в одном небольшом проекте прикрутить linq2db вместо EF, код распух примерно в 2 раза, функциональности не добавилось.
Про неработоспособность вещей типа dynamic data и odata сервисов даже не буду писать.
Re[10]: Почему вы НЕ используете Entity Framework?
Здравствуйте, IB, Вы писали:
IB>Здравствуйте, gandjustas, Вы писали:
G>>Замеры скорости работы Linq2SQL. Или снова все по пресс-релизам? IB>В топике про пресс-релизы ты слился, так что не вижу причины повторять это упражнение здесь.
Продолжай верить, это путь к успеху.
Re[15]: Почему вы НЕ используете Entity Framework?
AK>Какие ещё минусы есть у Entity Framework? Что может послужить аргументом для отказа от его использования в проекте?
Проект в котором важна скорость обработки данных в СУБД. Избавится от использования хранимых процедур в таких проектах невозможно, иначе придется большие объемы данных тащить в приложение и потом обратно с базой их "джойнить", это всегда эффективнее делать на уровне СУБД. А устраивать зоопарк — часть логики в хранимых на уровне СУБД, часть запросов в приложении — это не очень удобно. Делать из сервера приложений — сервер СУБД который бы ворочал данные тоже не верно.
Re[16]: Почему вы НЕ используете Entity Framework?
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, gandjustas, Вы писали:
G>>Про неработоспособность вещей типа dynamic data и odata сервисов даже не буду писать.
AVK>Аналог odata там есть, причем кое какие вещи в odata появились только в 4 версии.
Об этом, видимо, знает лишь "несколько людей" (с)
Re[17]: Почему вы НЕ используете Entity Framework?
Здравствуйте, gandjustas, Вы писали:
G>Нет, это базовый сценарий. Им пользуется на 3 порядка больше людей, чем всем linq2db и dapper вместе взятыми.
Похоже у тебя не правильное понятие "базового сценария". Впрочем, мы это выяснили еще в прошлый раз.
G>Нескольких это пяти? или шести?
Да хоть одного, какая разница сколько их?
G>Приводи конкретные примеры.
Да привели тебе уже пример, просто в твоей реальности он не релевантен. Ну нет, так нет. Для тех целей, для которых мы используем ORM — этого примера вполне достаточно, для того чтобы EF дальше даже не рассматривать. Однако в твоих сценариях это норма — ну значит такие сценарии...
Мы уже победили, просто это еще не так заметно...
Re[11]: Почему вы НЕ используете Entity Framework?
Здравствуйте, IB, Вы писали:
IB>Здравствуйте, gandjustas, Вы писали:
G>>Нет, это базовый сценарий. Им пользуется на 3 порядка больше людей, чем всем linq2db и dapper вместе взятыми. IB>Похоже у тебя не правильное понятие "базового сценария". Впрочем, мы это выяснили еще в прошлый раз.
Вот базовые сценарии, который дает нам ASP.NET:
1) Сделать один сложный запрос с проекциями, фильтрами итп, чтобы сформировать объект модели для отображения. Тут можно ручками написать join в linq, это аж одна строка.
2) Замапить данные формы на объект, который сохранить в базе. Тут нужен identity map, но совершенно нет необходимости тянуть связанные объекты.
Единственное место, где мне пригодилось выполнять .Include — в WebAPI контроллере, который отдавал "заказы с позициями", но это априори тяжелым запросом было.
В большинстве случаев доставался или один "заказ с позициями", поэтому лишняя сортировка в плане ни на что не влияла, или "список заказов", совершенно без затягивания лишних элементов.
G>>Нескольких это пяти? или шести? IB>Да хоть одного, какая разница сколько их?
Ты конечно не поверишь, но у подавляющего большинства базовые сценарии, как я описал выше. А твой базовый сценарий встречается у двух с половиной человек.
G>>Приводи конкретные примеры. IB>Да привели тебе уже пример, просто в твоей реальности он не релевантен. Ну нет, так нет. Для тех целей, для которых мы используем ORM — этого примера вполне достаточно, для того чтобы EF дальше даже не рассматривать. Однако в твоих сценариях это норма — ну значит такие сценарии...
Чукча не читатель? Ты прочитай, поймешь что эта проблема обходится одной строчкой. Отсутствие identity map стоит гораздо дороже во многих случаях