|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeТам должны обрабатываться данные (!) все. Даже, если напишете 1+2 - только на SQL-сервере. 1. Во-первых, это бред. 1 + 2 можно и не на SQL сервере исполнять. SQL сервер - это хранение данных, а не математический слой. 2. Во-вторых, чем его запрос не угодил? Конкретно по пунктам. ShSergeПо многим причинам, хотя бы по таким элементарным, что числовые типы совершенно однозначно не маппятся. А по-русски? SeVaМСУУже 100500 раз объяснял. Вот тут вкратце. Начать лучше с этого ORM is the Vietnam of the Computer Science Начинать лучше с другого: Объекты и искусство моделирования данных ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 22:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaLelouchблокноте мне было лень вспоминать написание. А то, что использование DataTable в случае WPF - прошлый век, признает даже Seva Этот код будет на серверной стороне, а на клиенте ObservableCollection Какой код? У меня всего-дишь создается коллекция объектов - результатов запроса. Я ни строчки ее обработки не писал... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:06 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchТо есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.? И естественно все эти запросы надо пропускать через аналитиков.. )1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов. Но есть и на десятки. 2. Курсоры не пишем, и писать не собираемся. 3. Неправильное у вас представление о взаимодействии с аналитиками. Это - зарубежная ERP. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffLelouchТо есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.? И естественно все эти запросы надо пропускать через аналитиков.. )1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов. Но есть и на десятки. 2. Курсоры не пишем, и писать не собираемся. 3. Неправильное у вас представление о взаимодействии с аналитиками. Это - зарубежная ERP. По вашему ORM не справится с 5-10 join'ами? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУНачинать лучше с другого: Объекты и искусство моделирования данных Mуся, я без этой статьи давно уже говорил, что ORM можно использовать только в качестве тупого DAL и что все они расчитаны на жирные графы объектов, которые совершенно неприспособлены для требований UI(разным use case нужны разные данные). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchWorobjoffпропущено... 1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов. Но есть и на десятки. 2. Курсоры не пишем, и писать не собираемся. 3. Неправильное у вас представление о взаимодействии с аналитиками. Это - зарубежная ERP. По вашему ORM не справится с 5-10 join'ами?Думаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал. Представления в базе используются многими. Запросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffLelouchТо есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.? И естественно все эти запросы надо пропускать через аналитиков.. )1. "Какой-нибудь" список для пользователя - это в среднем 5-10 джойнов . Но есть и на десятки. 2. Курсоры не пишем, и писать не собираемся. 3. Неправильное у вас представление о взаимодействии с аналитиками. Это - зарубежная ERP. 10-15 Join'ов это простые запросы. Если он выполняется медленно всегда можно из ORM получить код генерируемого SQL и понять как это можно решить (я про индексы). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffLelouchпропущено... По вашему ORM не справится с 5-10 join'ами?Думаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал . Представления в базе используются многими. Запросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM? Всмысле? Что именно надублируется? join идет через подзапросы. EF это умеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:40 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchWorobjoffпропущено... Думаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал . Представления в базе используются многими. Запросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM? Всмысле? Что именно надублируется? join идет через подзапросы. EF это умеет.В EF есть аналог SQL-представлений? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaLelouchпропущено... Сравните Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
c Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Во втором случае можно к тому же обойтись сгенерированным классом. или анонимным. А что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз. С кодогенератором получить готовый код будет не медленней. Это тривиальный случай, а для сложных, пока ты будешь бросать камушки в черный ящик, можно будет протестировать минумум три варианта на чистом sql и выбрать лучший.А я положу комбобокс на форму и в его свойстве запишу: "SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()" И ни одной строчки программного кода. Или настрою атрибут свойства доменного объекта. Тогда в комбобоксе будет только имя этого свойства. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 23:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Люблю SQL, но в процессе составления запросов из строк, есть вероятность допустить ошибку, об этой ошибке я предпочитаю узнать во время компиляции а не во время исполнения. зы Склеенный из строк запрос - есть длинный "magic string". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 00:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонЛюблю SQL, но в процессе составления запросов из строк, есть вероятность допустить ошибку, об этой ошибке я предпочитаю узнать во время компиляции а не во время исполнения. А вы его, как все нормальные люди, тестируйте сначала под манажемент студией и смотрите при этом план запроса (желательно). Тот факт, что компилятор не выдал ошибки, абсолютно не означает, что запрос правильный. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 00:23 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffSeVaпропущено... А что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз. С кодогенератором получить готовый код будет не медленней. Это тривиальный случай, а для сложных, пока ты будешь бросать камушки в черный ящик, можно будет протестировать минумум три варианта на чистом sql и выбрать лучший.А я положу комбобокс на форму и в его свойстве запишу: "SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()" И ни одной строчки программного кода Это какой-то особый комбобокс или я что то не знаю про стандартные контролы?. А если мне нужно в качестве параметров не 2 текущих времени, а 2, выбираемых пользователем? И еще, что, если мне не надо выполнять повторный запрос при повторном открытии формы? P.S. WFP combobox + EF: Код: c# 1.
Кода как видите тоже немного. L2S точно умеет использовать вьюхи в базе, так что я думаю что и EF на это способен. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 00:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffЭто - зарубежная ERP. Да хоть отечественная. Какое это имеет отношение к вышесказанному? SeVaМСУНачинать лучше с другого: Объекты и искусство моделирования данных Mуся, я без этой статьи давно уже говорил, что ORM можно использовать только в качестве тупого DAL и что все они расчитаны на жирные графы объектов, которые совершенно неприспособлены для требований UI(разным use case нужны разные данные). У тебя каша в голове. WorobjoffДумаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал. Представления в базе используются многими. Каким образом многие коррелируют с дата-слоем конкретного (-ых) приложения (-ий)? WorobjoffЗапросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM? Религия запрещает использовать сторед объекты, намапленные на типизированный контекст? WorobjoffВ EF есть аналог SQL-представлений? EF - это не аналог БД. RTFM. Воробье, изучите тему, - Ваши высказывания отдают ламеризмом. Другими словами, мелете языком, вообще не понимая сути. Без обид. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 00:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffА я положу комбобокс на форму и в его свойстве запишу: "SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()" Вот это называется жесткий хардкод. Прощай рефакторинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 00:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
И кстати EF озволяет сопоставлять сущности нескольким таблицам. http://msdn.microsoft.com/ru-ru/library/cc716698.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 00:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУWorobjoffЭто - зарубежная ERP. Да хоть отечественная. Какое это имеет отношение к вышесказанному? SeVaпропущено... Mуся, я без этой статьи давно уже говорил, что ORM можно использовать только в качестве тупого DAL и что все они расчитаны на жирные графы объектов, которые совершенно неприспособлены для требований UI(разным use case нужны разные данные). У тебя каша в голове. WorobjoffДумаю что справится. Но это будет хардкод, в котором к тому же, надублируется изрядно функционал. Представления в базе используются многими. Каким образом многие коррелируют с дата-слоем конкретного (-ых) приложения (-ий)? WorobjoffЗапросы не очень легкие для сервера, и возможности оптимизации уже исчерпаны. Как тут будет вести ORM? Религия запрещает использовать сторед объекты, намапленные на типизированный контекст? WorobjoffВ EF есть аналог SQL-представлений? EF - это не аналог БД. RTFM. Воробье, изучите тему, - Ваши высказывания отдают ламеризмом. Другими словами, мелете языком, вообще не понимая сути. Без обид. Муся, у тебя торичелливая пустота в голове, только с ней ты мог дать ссылку на подобную статью, агитируя за ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 01:18 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУWorobjoffА я положу комбобокс на форму и в его свойстве запишу: "SELECT * FROM [TABLE] WHERE [DATE1] > getdate() AND [DATE2] = getdate()" Вот это называется жесткий хардкод. Прощай рефакторинг.А запрос в LINQ - не хардкод. Ага. Ты как скорпион в полемике - бьешь себя своим же хвостом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 01:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRosа что будет если я на стороне сервера просто убью пару табличек (которые нужны на клиенте и все красиво отмаппено и строго так типизировано) после всех потуг на стороне клиента? А что если я сервер со всеми клиентами оболью бензином и подожгу? Твой "випрос" продолжит работу? т.е. ты понимаешь, что твоя "строгая типизация" - МИФ? А с ВИПРОС все проще. Фиг кто сможет удалить таблицу, да хоть атрибут, если она использована хоть в одном методе ВИПРОС без соответствующих прав, а если права есть и эти действия могут привести к неработоспособности методов, то методы метятся как "неисполнимые" и менеджер методов просто не будет их вызывать, а сгенерирует ихзепшн. т.е. метод выставляет контекстные требования к хранилищу, а менеджер метаданных пытается их удовлетварить. это я называю контрактом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 01:27 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaМуся, у тебя торичелливая пустота в голове, только с ней ты мог дать ссылку на подобную статью, агитируя за ORM. Сева, у тебя смешение фантазии и действительности в разуме, дай ему отдохнуть - он помутнён. Только ты можешь юзкейсы сравнивать с далом. WorobjoffМСУпропущено... Вот это называется жесткий хардкод. Прощай рефакторинг.А запрос в LINQ - не хардкод. Ага. Ты как скорпион в полемике - бьешь себя своим же хвостом. Видимо у Вас представление о хардкоде несколько иное. Именно Ваш magic string и есть хардкод. Про рефакторинг комментарии будут? Вот тут всё сказано: 11866713 Изменится поле, как рефакторить будете по всему проекту? ViPRosт.е. ты понимаешь, что твоя "строгая типизация" - МИФ? В чем миф, отец? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 12:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosэто я называю контрактом. Это не контракт, это банальная обработка исключения. Я тоже так умею ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 12:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffТы как скорпион в полемике - бьешь себя своим же хвостом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Что скажешь, скорпион? :) Во-вторых, у меня на этапе компиляции будет известно об ошибке, в отличие от хардкодного сиквел-запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 12:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУWorobjoffТы как скорпион в полемике - бьешь себя своим же хвостом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Даже мысли не допускаю эту порнографию хардкодить. МСУ, ты сам за других додумываешь, и сам этим своим додумкам отвечаешь на этом сайте. Сам с собой так. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Math.Pi-r, оставь свои пионерские статейки при себе. Кроме table ты ничего не видел ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУWorobjoffТы как скорпион в полемике - бьешь себя своим же хвостом. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Что скажешь, скорпион? :) Во-вторых, у меня на этапе компиляции будет известно об ошибке, в отличие от хардкодного сиквел-запроса. За такие запросы нужно голову откручивать. В твоем случае - задницу ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:28 |
|
|
start [/forum/topic.php?fid=17&msg=37604858&tid=1350478]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 540ms |
0 / 0 |