|
ORM vs sql
|
|||
---|---|---|---|
#18+
Есть небольшая база данных из нескольких таблиц. Доступ к БД должен осуществляться через встраиваемый в приложение движок, а не сервер. В разрабатываемой на C# небольшой информационной системе, DataGridView должен осуществлять редактирование одновременно нескольких таблиц (записи из разных таблиц объединенные при помощи JOIN). Фактически нужно чтобы вместо ID человека, например, пользователь работал с его именем и т.д. В C# для работы с базами данных существует много инструментов, и я, не зная их особенностей и не имея опыта работы, просто теряюсь в выборе. В том числе колеблюсь в выборе между sqlite и sql server compact edition (пока что последний настораживает отсутствием представлений). Пробовал EF, строго типизированные DataSet'ы, используя мастер из Visual Studio. Только там все легко и понятно, когда дело касается привязки одиночной таблицы к контролам. В итоге пришел к выводу, что мне проще будет вручную делать нужные мне запросы из БД, запихивать данные в свои объекты, и дальше уже работать с ними как мне захочется. Задача, я полагаю, стандартная. Поэтому, кто уже имел опыт, пожалуйста, напишите как бы вы писали подобную систему. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2011, 21:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
turbovegan, Есть подозрение, что под словом ORM часто понимают любой построитель забросов. А это не так - ORM-требует понимание концепции, под которую он создавался. (а именно Rich DDD). Без него тоже работает, но смысл зачастую теряется. Поэтому если готовы это изучать - то вперёд. Иначе поищите себе что-нибудь попроще, типа BLToolkit. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2011, 22:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
по сабжу, понравилось высказывание моего коллеги: "ORM - от лукавого..." (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 00:40 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
turbovegan, Что может быть проще создания DAL? Пиши класс со статическими методами типа: public static listMyEntity SelectRows() ... public static MyEntity SelectRow(int ID) ... public static int InsertRow(MyEntity) ... public static int UpdateRow(MyEntity) ... public static int DeleteRow(int ID) ... И не морочь себе голову. Ж:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 05:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Asm64Dпо сабжу, понравилось высказывание моего коллеги: "ORM - от лукавого..." (с) Осталось понять критерии "лукавости" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 08:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Спасибо за ответы. На самом деле я еще начал загонять себя в рамки того, что можно сделать мастером VS. А ведь те же строго типизированные DataSet'ы и нужные адаптеры я могу написать сам. Еще вопрос тогда по теме. Чему из всех имеющихся технологий стоит посвятить время на изучение? Все-таки это мощные средства, изучение которых должно в перспективе окупиться при разработке новых систем. EF? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 09:28 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
turbovegan, мой выбор - настоящий ORM, в частности - NHibernate. Но это потребует много усилий на изучение. Впрочем, как и EF. Датасеты - фтопку. А уж дальше решать вам. Почитайте, подумайте, что вам надо. Тогда и решайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 09:49 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Изучайте LINQ и LINQ-to-SQL + EF. NHibernate и прочие ОРМы из прошлого века больше не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 10:52 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КИзучайте LINQ и LINQ-to-SQL + EF. NHibernate и прочие ОРМы из прошлого века больше не нужны. Ваша информация пресыщена понтами. Есть много проблем, которые LINQ и EF никак не решают. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 11:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorВаша информация пресыщена понтами.Да. SolYUtorЕсть много проблем, которые LINQ и EF никак не решают.Всё что не решает LINQ решает SQL. Так всегда было - так всегда будет. Не получается написать на C++ - пришем на ассемблере. Не получается написать на LINQ - пишем на SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 11:28 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУAsm64Dпо сабжу, понравилось высказывание моего коллеги: "ORM - от лукавого..." (с) Осталось понять критерии "лукавости" :) Программирование - тоже от него. Раньше сидела себе одна тётка в бухгалтерии и считала всё на счётах с костяшками. А сейчас сидит какая-то непонятная куча баб и девок за компьютерами, и, всё равно, у них что-то вечно не сходится. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 11:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КВсё что не решает LINQ решает SQL. Так всегда было - так всегда будет. Не получается написать на C++ - пришем на ассемблере. Не получается написать на LINQ - пишем на SQL. Например, LINQ и SQL решают проблему синхронизации распределенного кеша второго уровня (да и кеша второго уровня вообще) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 11:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorНапример, LINQ и SQL решают проблему синхронизации распределенного кеша второго уровня (да и кеша второго уровня вообще) Это да. И контрола DataGrid там тоже нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 12:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorturbovegan, Есть подозрение, что под словом ORM часто понимают любой построитель забросов. А это не так - ORM-требует понимание концепции, под которую он создавался. (а именно Rich DDD). Без него тоже работает, но смысл зачастую теряется. Поэтому если готовы это изучать - то вперёд. Иначе поищите себе что-нибудь попроще, типа BLToolkit. И что же такого богатого в настоящем ORM? Расскажи, как этот маппер поможет в обычном и простом варианте: - Вася Пупкин может создавать накладную и опубликовывать ее для согласования с вышестоящим менеджером. После опубликования, он не имеет возможности ее редактировать. - Перед сохранением должна выполняться проверка на отсутствие дубликатов в деталировке. Если дубли обнаружены, то взбодрить нужный интерфейс, чтобы на форме сразу отображалась информация об ошибках. Это простой вариант, а в общем случае нужна система с асинхронной проверкой как на сервере так и на клиенте, с возможностью связанных правил и тд. - Вышестоящий менеджер может только подписать или отправить обратно на корректировку. - У всех заинтересованных лиц должны появляться сообщения или e-mail c уведомлениями после изменения статуса накладной. - Муся, не имеет никакого доступа к накладным, может просматривать только задание на уборку помещений. - Интересуют не частные варианты, а общий случай - одни и те же объекты для Winforms, Asp, Wpf, Silverlight - 2x и 3х звенки с и возможностью интеграции с внешними сервисами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 14:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa, Говорят, что, если у тебя ОРМ, то можешь беспрепятственно заниматься переносом сервера с одного на другой и масштабированием. Конечно, это - умереть со смеха, но такое таки лохам впаривают. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 15:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeГоворят, что, если у тебя ОРМ, то можешь беспрепятственно заниматься переносом сервера с одного на другой и масштабированием. Говорят, что кроссубдное решение это миф, а легкопереносимое - это реальность. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 15:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaЕще один пункт: Изменение бизнес-логики и структуры данных по требованию заказчика на любом этапе разработки вплоть до внедрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 15:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa, Перечисленные задачи не относятся к ORM в частности, и к Data Access в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 15:13 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorSeVa, Перечисленные задачи не относятся к ORM в частности, и к Data Access в общем.ORM и DataAccess не нужны. Silverlight наше всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 15:23 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorSeVa, Перечисленные задачи не относятся к ORM в частности, и к Data Access в общем. А что же тогда относится к ORM? Банальный, тупой маппинг. Где же rich? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 17:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, Прикольная фотка! Это настоящая фотка? Можете ссылку на источник кинуть. Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2011, 22:40 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtor, в смысле, кто-то реально работает с кэшем второго уровня? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2011, 18:28 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Bob DylanSolYUtor, в смысле, кто-то реально работает с кэшем второго уровня? В смысле я реально работаю с кешем второго уровня. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2011, 18:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosОРМ - ерунда прошу Сатисфакция. Свои слова нужно аргументировать, а не заниматься вбросами. И. Что вы ответите вот на этот кусочек. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
описался мальца, в смысле япрошу Cатисфакции ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Proga, Ну ерунда, она ерунда и есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeProga, Ну ерунда, она ерунда и есть. где факты? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 11:31 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Proga, зачем ты запостил эту портянку? на ответную :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:52 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosВсё ещё кипятите Пора уже начинать пользоваться строгой типизацией при работе с данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 12:56 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей К, да ладно все строго типизировано в контракте ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos Эпическая сила... Пестец пришел заметно... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosвсе строго типизировано в контракте ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRos Эпическая сила... Пестец пришел заметно... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 13:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosProga, зачем ты запостил эту портянку? на ответную :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
это у тебя портянка, причём вызывает рвотный рефлекс (ассоциация с 1С), а я выложил код на базе которого можно сварганить систему быстрого сохранения данных объекта сгенерированного на базе EF. надо только в конструкторе выбрать маппинг свойств на параметры. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 14:45 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
и ещё раз почему? ViPRos ОРМ - ерунда Факты! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 14:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Proga Код: c# 1.
Код: c# 1.
ListRecordItem Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 14:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Proga, то что ты выложил - код для кода покажи фаулеру какму нить а на 1с вся раша пишет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 15:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУProga Код: c# 1.
Код: c# 1.
+ ListRecordItem Код: c# 1.
сэнкс, заработался однако. башка ужо не варит. 2 ViPRos: ты не увиливай. факты про ОРМ- ерунда жду. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 16:45 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosа на 1с вся раша пишет Правильно, стаду хороший тон противопоказан. На кой он им, пущай пишут. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2011, 19:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ProgaViPRosОРМ - ерунда прошу Сатисфакция. Свои слова нужно аргументировать, а не заниматься вбросами. И. Что вы ответите вот на этот кусочек. Спрячь и никому не показывай ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 01:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
If you let the O/RM command you, you’re lost . ORM - туфтаThe code that flows data between the model and the database can be written by you (via stored procedures, for example) or by some O/RMs. O/RMs, though, tend to be invasive and dictate too many development and design aspects. O/RMs can save a lot of work and are a great tool indeed, but poor understanding (or just poor explanation) of their role helps create the domain/database dilemma and makes it harsher every day ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 07:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVahe code that flows data between the model and the database can be written by you (via stored procedures, for example) or by some O/RMs. O/RMs, though, tend to be invasive and dictate too many development and design aspects. Да ладно? Вот прям так диктует аспекты дизайна, и лезет в код? Но даже это было бы хорошо, по сравнению с той феерией бессистемных sql-ляпов, коими богаты многие проекты, и этот форум в частности. SeVaO/RMs can save a lot of work and are a great tool indeed, but poor understanding (or just poor explanation) of their role helps create the domain/database dilemma and makes it harsher every day Краткий перевод: если вы не умеете программировать- то программировать плохо получается. У других хоть какие-то аргументы есть. Опираться на мнение мелкомягких, которые изобретают кривое колесо, идейно стыренное из open source проектов сообщества (nunit, EF, Unity и т.д.) я бы не стал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 09:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaDino Esposito: Microsoft .NET: Architecting Applications for the EnterpriseИнтересная ссылка Dino EspositoНаша позиция в книге - O/RM это просто средство. Нельзя требовать его наличия, и оно не должно влиять на структуру баз данных или моделей данных. Если Вы позволяете O/RM командовать вашей жизнью, вы неудачник. Это и есть настоящая болевая точка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 09:57 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffSeVaDino Esposito: Microsoft .NET: Architecting Applications for the EnterpriseИнтересная ссылка Dino EspositoНаша позиция в книге - O/RM это просто средство. Нельзя требовать его наличия, и оно не должно влиять на структуру баз данных или моделей данных. Если Вы позволяете O/RM командовать вашей жизнью, вы неудачник. Это и есть настоящая болевая точка. Все правильно. Все ORMисты - лузеры. 2 SolYUtor. Аргументы а'la "ORM лучше наших кривых рук" - это для бедных. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 10:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Сева, готов ли ты продемонстрировать достойную альтернативу? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 10:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffDino EspositoЕсли Вы позволяете O/RM командовать вашей жизнью, вы неудачник. Это и есть настоящая болевая точка. Осталось только понять, что есть командование жизнью. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 11:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУСева, готов ли ты продемонстрировать достойную альтернативу? Тебе ничего не поможет. Ковыряйся дальше в Tables ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 11:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaМСУСева, готов ли ты продемонстрировать достойную альтернативу? Тебе ничего не поможет. Ковыряйся дальше в Tables А другим тоже не в состоянии ничего предложить? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 11:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУWorobjoffпропущено... Осталось только понять, что есть командование жизнью.Не хочу пилить опилки тут и так все понятно: Какую ставим себе цель - ту и достигаем. Серебряной пули не существует. Кто не хочет в это поверить и ищет ее - еще не совсем пропал. Кто самоутверждается за счет серебряной пули - тот пропал, т.к. подменил цели. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 11:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Worobjoff Переливание из пустого в порожнее без какой-либо конкретики. Разговор ни о чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 11:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Чтобы говорить, что ОРМ зло, нужно предложить альтернативу. Итого, Сева сдулся, что-то там побулькав, Воробьев постит какую-то полутеоретическую херь. По существу - задача: нужно обратиться запросом к таблицам, сделать фильтр с пейджингом. Что использовать для доступа к БД и исполнения запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 11:52 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУЧтобы говорить, что ОРМ зло, нужно предложить альтернативу. Итого, Сева сдулся, что-то там побулькав, Воробьев постит какую-то полутеоретическую херь. По существу - задача: нужно обратиться запросом к таблицам, сделать фильтр с пейджингом. Что использовать для доступа к БД и исполнения запроса?Мы тут аннотацию к одной очень важной книжонке обсуждали (если ты еще не в курсе). А "по существу"... Задача - на 5 копеек Настроить SelectCommand.CommandText и UpdateCommand.CommandText. Можно писать обновляемое представление, а можно не писать. Можно хранимки написать, можно не писать. Можно все зафигачить мышкопрограммированием - сделать датасет с DataTable для грида и DataTable для пейджера. В качестве пейджера BindingNavigator использовать. Делается на коленке. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 13:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffНастроить SelectCommand.CommandText и UpdateCommand.CommandText. Хардкодить сиквел код, размазывая эту порнографию по приложению? А типизация идет в топку? Бойтесь рефакторинга. Занавес. WorobjoffДелается на коленке. Делается без ума. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 13:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУДелается без ума.А это уже - вопрос философский. Хочется - делай с умом. Очень хочется - делай с горем от ума. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 13:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffА это уже - вопрос философский. Работать с типизированными объектами - философия? По-моему это нормальная практика. WorobjoffХочется - делай с умом. ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 13:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУWorobjoffА это уже - вопрос философский. Работать с типизированными объектами - философия? По-моему это нормальная практика. WorobjoffХочется - делай с умом. ORM. Муся, ты уже показывал свою нормальную практику времен Net 1.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 17:30 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa, Внешне тут как раз я - консерватор. А так оно и есть, когда вопрос касается обучения молодых программистов. Что лучше? Кода студент через год уже пишет и отдает заказчику программы, или когда он через год умеет только производить впечатление, но ничего так и не написано? Я (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET. И это даже не смешно когда ты людей набираешь на будущий проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 19:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaМуся, ты уже показывал свою нормальную практику времен Net 1.0 Альтернативы-таки не будет? Бульбы не в счёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2011, 19:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffSeVa, Внешне тут как раз я - консерватор. А так оно и есть, когда вопрос касается обучения молодых программистов. Что лучше? Кода студент через год уже пишет и отдает заказчику программы, или когда он через год умеет только производить впечатление, но ничего так и не написано? Я (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET. И это даже не смешно когда ты людей набираешь на будущий проект. Проблема известная. Нужен framework,базаданщик, модели, которые предоставляют все необходимые интерфейсы для разрботчиков UI, тогда можно сажать любого пионера и даже MCУ с кривыми руками не сможет нанести урон проекту ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 10:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Ситуация осложняется тем, что психическое расстройство Севы неизлечимо. Она будет много говорить о том, что плохо, но на вопросы что хорошо - будет вжимать хвост к пятой точке и переключаться на другие темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 12:10 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaПроблема известная. Нужен framework,базаданщик, модели, которые предоставляют все необходимые интерфейсы для разрботчиков UI, тогда можно сажать любого пионера и даже MCУ с кривыми руками не сможет нанести урон проектуЧетвертый сон Веры Павловны. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 14:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУСитуация осложняется тем, что психическое расстройство Севы неизлечимо. Она будет много говорить о том, что плохо, но на вопросы что хорошо - будет вжимать хвост к пятой точке и переключаться на другие темы. Чего мне не хватает под Новый год, так это что-то с тобой обсуждать ;-) У меня нет вопросов, а твои глубоко по барабану Всех с Новым годом!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 17:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffЯ (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET. По своему собственному опыту могу сказать, что вы в корне не правы. Работа с L2S, а, особенно, с EF (L2S не всегда верно строит запросы) сильно ускоряла разработку и понизила требования к разработчику в конторе, в которой я работаю) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 17:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchWorobjoffЯ (почему-то) даже и не сомневаюсь что для решения одних и тех же задач уровень квалификации программиста работающего с ORM должен быть значительно выше чем в ADO.NET. По своему собственному опыту могу сказать, что вы в корне не правы. Работа с L2S, а, особенно, с EF (L2S не всегда верно строит запросы) сильно ускоряла разработку и понизила требования к разработчику в конторе, в которой я работаю)А что именно вы разрабатывали? 2) Для кого? 3) Это был сайт или это было деск-топ приложение? 4) Какая архитектура? 5) И что именно разрабатывали до включения EF в свои средства разработки? Какой был там проект? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 18:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
1) Биллинговая система для водоканала города с миллионом+ жителей 3) Десктоп 4) Клиент-сервер 5) Я как раз и начал работу с этой задачи, так что опираюсь на комментарии начальства. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 18:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Кстати вообще не понятно, причем тут я) Что проще написать - строго типизированный LINQ запрос (кроме L2S/EF я ни с чем на данный момент не работал, я в курсе что не все ORM имеют реализацию LINQ) или текст SQL запроса + передачу параметров в него? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2011, 19:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaМСУСитуация осложняется тем, что психическое расстройство Севы неизлечимо. Она будет много говорить о том, что плохо, но на вопросы что хорошо - будет вжимать хвост к пятой точке и переключаться на другие темы. Чего мне не хватает под Новый год, так это что-то с тобой обсуждать ;-) У меня нет вопросов, а твои глубоко по барабану Всех с Новым годом!!! С Новым годом, лапонька! ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2012, 13:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch1) Биллинговая система для водоканала города с миллионом+ жителей 3) Десктоп 4) Клиент-сервер 5) Я как раз и начал работу с этой задачи, так что опираюсь на комментарии начальства.Вопрос не раскрыт: КАК вы измерили понижение требований к квалификации программистов? Уволили дядек и наняли вместо них студентов, и переписали набело старый биллинг на 3 месяца быстрее? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2012, 12:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchКстати вообще не понятно, причем тут я) Что проще написать - строго типизированный LINQ запрос (кроме L2S/EF я ни с чем на данный момент не работал, я в курсе что не все ORM имеют реализацию LINQ) или текст SQL запроса + передачу параметров в него?Мне проще отладить запрос в редакторе SQL. Особенно когда запросов в БД много и когда они глубоко структурированы. Более того, многие аналитики владеют SQL, и нередко - получше чем студенты-программисты. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2012, 13:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Сева, сынок, побухал? А теперь расскажи нам, что есть хорошо в практике доступа к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2012, 22:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffLelouchКстати вообще не понятно, причем тут я) Что проще написать - строго типизированный LINQ запрос (кроме L2S/EF я ни с чем на данный момент не работал, я в курсе что не все ORM имеют реализацию LINQ) или текст SQL запроса + передачу параметров в него?Мне проще отладить запрос в редакторе SQL. Особенно когда запросов в БД много и когда они глубоко структурированы. Более того, многие аналитики владеют SQL, и нередко - получше чем студенты-программисты. Правило 80% помните?) 80% запросов обычно настолько просты, что на время их написания больше влияют создания объектов команды и передача в них параметров, нежели чем собственно написания кода SQL. Worobjoffмногие аналитики владеют SQL, и нередко - получше чем студенты-программисты Вы для запросов Код: sql 1.
тоже аналитиков используете?) А большмнство запросов в большинстве систем именно такие ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2012, 23:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffУволили дядек и наняли вместо них студентов, и переписали набело старый биллинг на 3 месяца быстрее? За 6 месяцев переписали программу которую разрабатывали и развивали года 4. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.01.2012, 23:55 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchПравило 80% помните?) 80% запросов обычно настолько просты... +1, это называется рутинный код. ORM как-раз искореняет это зло. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 09:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchПравило 80% помните?) 80% запросов обычно настолько просты, что на время их написания больше влияют создания объектов команды и передача в них параметров, нежели чем собственно написания кода SQL. А остальные 20% сводят всю затею на нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 10:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaLelouchПравило 80% помните?) 80% запросов обычно настолько просты, что на время их написания больше влияют создания объектов команды и передача в них параметров, нежели чем собственно написания кода SQL. А остальные 20% сводят всю затею на нет. В чем же?) context.ExecuteStoreQuery (для EF) конечно не лучший путь, но позволяет спокойно использовать SQL. Или религия не позволяет? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 12:28 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaА остальные 20% сводят всю затею на нет. А обосновать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 20:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Прикольно! Сегодня на эту же сабжевую тему спорил в форуме "ява". Короче, фигня всё это. Учите SQL, и пользуйте его. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2012, 23:06 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeПрикольно! Сегодня на эту же сабжевую тему спорил в форуме "ява". Короче, фигня всё это. Учите SQL, и пользуйте его. А обосновать? (с) МСУ. P.S. Тут вроде никто не утверждает, что SQL знать не надо) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 00:16 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, Обосновать - только практикой. Хелловорлдом, например. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 02:16 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeLelouch, Обосновать - только практикой. Хелловорлдом, например. :) Да, использовать для Hello, world ORM действительно излишне... Убедили... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 08:27 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeКороче, фигня всё это. Учите SQL, и пользуйте его. Lelouch80% запросов обычно настолько просты, что ... Ну выучил я Код: sql 1.
... выучил. Зазубрил, можно сказать. А что дальше? В "бой" с этими познаниями? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2012, 22:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRos Эпическая сила... Пестец пришел заметно... муся,а как можно строго типизировать общение без протокола (контракта)? вот ты изголяешься как хошь на клиенте, строишь всякие маппинги и т.д. а что будет если я на стороне сервера просто убью пару табличек (которые нужны на клиенте и все красиво отмаппено и строго так типизировано) после всех потуг на стороне клиента? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 14:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 15:01 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchSELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2 А большмнство запросов в большинстве систем именно такие )))С вашими системами все понятно. Дальше можно не продолжать. ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 18:55 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchWorobjoffУволили дядек и наняли вместо них студентов, и переписали набело старый биллинг на 3 месяца быстрее? За 6 месяцев переписали программу которую разрабатывали и развивали года 4.Это круто! Переписать программу набело в 8 раз быстрее. Т.к. есть правило "один-к-одному": Переписание системы набело вместе с внедрением занимает столько же времени сколько было потрачено на старую версию. Не я придумал, правило Спольски или Макконнелла. Лично я видел по крайней мере 4 примера из жизни подтвердивших это правило. Это реально круто, даже интересно стало узнать подробности. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 19:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
WorobjoffLelouchSELECT * FROM [TABLE] WHERE [DATE1] > @date1 AND [DATE2] = @date2 А большмнство запросов в большинстве систем именно такие )))С вашими системами все понятно. Дальше можно не продолжать. ))) То есть в ваших системах, чтобы показать пользователю какой-нибудь список необходимо использовать запросы с десятками join, курсоры, etc.? И естественно все эти запросы надо пропускать через аналитиков.. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 19:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeМСУ, А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе? Сравните Код: 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.
Во втором случае можно к тому же обойтись сгенерированным классом. или анонимным. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 19:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchShSergeМСУ, А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе? Сравните Код: 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 и выбрать лучший. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 20:01 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Код: c# 1.
Так только идиёты делают(Ц). Все данные должны обрабатываться на SQL-сервере, а выхлоп из них должен получаться именно такой, чтобы данные отобразить именно сейчас и здесь, без прокрутки (в большинстве случаев). Так что, при чём здесь лист и нафиг он вообще нужен - большой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 20:49 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПС. А кода всё равно получится больше. Что коннекшин стринг отменили? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 20:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeПС. А кода всё равно получится больше. Что коннекшин стринг отменили? Он в app.config )) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 21:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSerge Код: c# 1.
Так только идиёты делают(Ц). Все данные должны обрабатываться на SQL-сервере, а выхлоп из них должен получаться именно такой, чтобы данные отобразить именно сейчас и здесь, без прокрутки (в большинстве случаев). Так что, при чём здесь лист и нафиг он вообще нужен - большой вопрос. Дада, вы правы тут нужен ObservableCollection. И Bindind дата грида. Но, извините, в блокноте мне было лень вспоминать написание. А то, что использование DataTable в случае WPF - прошлый век, признает даже Seva ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 21:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosа что будет если я на стороне сервера просто убью пару табличек (которые нужны на клиенте и все красиво отмаппено и строго так типизировано) после всех потуг на стороне клиента? А что если я сервер со всеми клиентами оболью бензином и подожгу? Твой "випрос" продолжит работу? ShSergeМСУ, А Вы можете на пальцах мне объяснить чем лучше ОРМ простых SQL-запросов к базе? Уже 100500 раз объяснял. Вот тут вкратце. WorobjoffLelouchС вашими системами все понятно. Дальше можно не продолжать. ))) А что понятно-то? Чем Ваша лучше? SeVaА что сравнивать? По скорости выполнения ef будет проигрывать минимум в десять раз. А почему не в 20? SeVaС кодогенератором получить готовый код будет не медленней. Расшифруй свой потуг мысли. ShSergeТак только идиёты делают(Ц). Все данные должны обрабатываться на SQL-сервере, а выхлоп из них должен получаться именно такой, чтобы данные отобразить именно сейчас и здесь, без прокрутки (в большинстве случаев). Так что, при чём здесь лист и нафиг он вообще нужен - большой вопрос. 1. Сергей, изучите L2S-EF. RTFM. А потом мы продолжим про "идиотов". 2. Во-вторых, расшифруйте "данные должны обрабатываться на SQL-сервере". Что и куда там должно? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 21:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ...расшифруйте "данные должны обрабатываться на SQL-сервере". Что и куда там должно? Там должны обрабатываться данные (!) все. Даже, если напишете 1+2 - только на SQL-сервере. По многим причинам, хотя бы по таким элементарным, что числовые типы совершенно однозначно не маппятся. Примерчики лень искать. Здесь на сайте за предыдущий месяц раза два спрашивали, не помню в каком форуме, но не сишарповом, по-моему. ПС. Я рад бы похоливарить на эту тему, если Вы не будете вести себя агрессивно, только не сегодня. Уже на форуме про яву накушался хороших слов. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 21:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУУже 100500 раз объяснял. Вот тут вкратце. Начать лучше с этого ORM is the Vietnam of the Computer Science ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 22:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouchблокноте мне было лень вспоминать написание. А то, что использование DataTable в случае WPF - прошлый век, признает даже Seva Этот код будет на серверной стороне, а на клиенте ObservableCollection ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2012, 22:01 |
|
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 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaMath.Pi-r, оставь свои пионерские статейки при себе. Кроме table ты ничего не видел С..а, а что есть ещё, расскажи? SeVaЗа такие запросы нужно голову откручивать. В твоем случае - задницу А за какие не нужно откручивать голову, в моём случае задницу? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Данила, да Вы что совсем офонарели? Пардон, конечно, за эмоции. А немного подумать слабо? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeДанила, да Вы что совсем офонарели? Пардон, конечно, за эмоции. А немного подумать слабо? А что не так? Лучше по-существу и в подробностях, конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Нет, мне нравится эта публика :) 1. Орут, SQL и только он! Если что-то сложное - ORM на помойку, так как не справится поделие с вычурной фантазией разработчика. 2. Привёл более менее сложный запрос. 3. Теперь орут, что за сложные запросы нужно жопу вместо головы ввинчивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 13:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, Он сложный только в голове, на самом деле - простой. Намудрили, однако с подзапросами. Сейчас переписывать его не буду - лень. У меня сегодня ДР и я уже некоторую разминочку сделал. ПС. Кстати, этот самый салеэмаунт у Вас какого типа? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 14:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Сразу бросилось в глаза ордербай по сабселекту. Это - кошмар. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 14:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeПарамонЛюблю SQL, но в процессе составления запросов из строк, есть вероятность допустить ошибку, об этой ошибке я предпочитаю узнать во время компиляции а не во время исполнения. А вы его, как все нормальные люди, тестируйте сначала под манажемент студией и смотрите при этом план запроса (желательно). Тот факт, что компилятор не выдал ошибки, абсолютно не означает, что запрос правильный. :) Пока все нормальные люди тестируют о смотрят планы каждого мелкого запроса я предпочитаю заниматся чем то полезным ) Да, и незабудте проверять и тестировать все запросы после каждого изменения логики, я подозреваю времни у вас не меренно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 15:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRosэто я называю контрактом. Это не контракт, это банальная обработка исключения. Я тоже так умею значит не въехал у тебя настройка маппинг - разовая процедура, после маппинга никто не отслеживает изменение в серверной стороне (ну, конечно, если ты там один, тоо перенастроишь маппинг, сгенерируешь тонну "классов", изменишь свои "пратиал классы" (костыли одним словом) и вышлешь "новую версию" бедным юзверам, а они будут трахаться с БД и т.д.) а у ВИПРОС перманентный маппинг с возможной потерей функциональности прикладного кода, но с четким предупреждением о петере функциональности прикладного кода и причине потери, а сама ВИПРОС непотопляема. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 16:42 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонShSergeпропущено... А вы его, как все нормальные люди, тестируйте сначала под манажемент студией и смотрите при этом план запроса (желательно). Тот факт, что компилятор не выдал ошибки, абсолютно не означает, что запрос правильный. :) Пока все нормальные люди тестируют о смотрят планы каждого мелкого запроса я предпочитаю заниматся чем то полезным ) Да, и незабудте проверять и тестировать все запросы после каждого изменения логики, я подозреваю времни у вас не меренно :) значит твое полезное не зависит от реакции системы твоей бывают такие гениальные проги, выхлоп которой можно ждать и год, если этот выхлоп = лечение рака или мылен баксов ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 16:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosМСУпропущено... Это не контракт, это банальная обработка исключения. Я тоже так умею значит не въехал у тебя настройка маппинг - разовая процедура, после маппинга никто не отслеживает изменение в серверной стороне (ну, конечно, если ты там один, тоо перенастроишь маппинг, сгенерируешь тонну "классов", изменишь свои "пратиал классы" (костыли одним словом) и вышлешь "новую версию" бедным юзверам, а они будут трахаться с БД и т.д.) а у ВИПРОС перманентный маппинг с возможной потерей функциональности прикладного кода, но с четким предупреждением о петере функциональности прикладного кода и причине потери, а сама ВИПРОС непотопляема. :) Да, есть некоторые субстанции, которые не тонут... Сори, не удержался. Кстати так и не понял разницы в плане удаления объекта БД. Что мегасупавипрос при попытке обращения (насколько я понял) выдаст Ихсепшн (или как ты там извратнулся над словом Exception), что EF выдаст его же при выполнении запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 17:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchViPRosпропущено... значит не въехал у тебя настройка маппинг - разовая процедура, после маппинга никто не отслеживает изменение в серверной стороне (ну, конечно, если ты там один, тоо перенастроишь маппинг, сгенерируешь тонну "классов", изменишь свои "пратиал классы" (костыли одним словом) и вышлешь "новую версию" бедным юзверам, а они будут трахаться с БД и т.д.) а у ВИПРОС перманентный маппинг с возможной потерей функциональности прикладного кода, но с четким предупреждением о петере функциональности прикладного кода и причине потери, а сама ВИПРОС непотопляема. :) Да, есть некоторые субстанции, которые не тонут... Сори, не удержался. Кстати так и не понял разницы в плане удаления объекта БД. Что мегасупавипрос при попытке обращения (насколько я понял) выдаст Ихсепшн (или как ты там извратнулся над словом Exception), что EF выдаст его же при выполнении запроса. ну тут на форуме токо для того и собираются что бы друг дружка нетонущим срванивать так что не переживай, ты не первый ЕФ выдасть ихзепшн и твоя прога скорее всего умрет а ВИПРОС сам же обработает (спрячеть или сделаеть пункт меню или кнопочку недоступной, не запустит прогу и т.д.) а если БД изменится средствами ВИПРОС то она просто не дасть ее изменить, если это приведеь к потере функциональности в зависимости от прав) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 17:31 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosзначит твое полезное не зависит от реакции системы твоей Мое полезное это уделять больше времени логике а не поиском глупых ошибок, для сего есть дебагер и среда разработки. У многих правда дебагером выступает конечный пользователь, это веселые как правило конторы ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 17:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchпропущено... Да, есть некоторые субстанции, которые не тонут... Сори, не удержался. Кстати так и не понял разницы в плане удаления объекта БД. Что мегасупавипрос при попытке обращения (насколько я понял) выдаст Ихсепшн (или как ты там извратнулся над словом Exception), что EF выдаст его же при выполнении запроса. ну тут на форуме токо для того и собираются что бы друг дружка нетонущим срванивать так что не переживай, ты не первый ЕФ выдасть ихзепшн и твоя прога скорее всего умрет а ВИПРОС сам же обработает (спрячеть или сделаеть пункт меню или кнопочку недоступной, не запустит прогу и т.д.) а если БД изменится средствами ВИПРОС то она просто не дасть ее изменить, если это приведеь к потере функциональности в зависимости от прав) Никто не запрещает перехватывать исключения EF. Кнопочка это очень просто. А если выполняемая операция является частью последовательности операций, например выполняемых в 1 транзакции? Я предпочту исключение и откат транзакции, чем отсутствие вызова метода и неправильные результаты работы. P.S. Слабо представляю зачем заказчик сам полезет в базу, да еще через левый механизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 18:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchНикто не запрещает перехватывать исключения EF. Кнопочка это очень просто. А если выполняемая операция является частью последовательности операций, например выполняемых в 1 транзакции? Я предпочту исключение и откат транзакции, чем отсутствие вызова метода и неправильные результаты работы. P.S. Слабо представляю зачем заказчик сам полезет в базу, да еще через левый механизм. 1.Ты их не перехватываешь. Уверен. 2. Зачем откатывать то, что изначально не пройдет. 3. Ты слабо представялешь что такое левая система. Для нормальной системы левой является DBA и что то типа SSMS. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 18:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchНикто не запрещает перехватывать исключения EF. Кнопочка это очень просто. А если выполняемая операция является частью последовательности операций, например выполняемых в 1 транзакции? Я предпочту исключение и откат транзакции, чем отсутствие вызова метода и неправильные результаты работы. P.S. Слабо представляю зачем заказчик сам полезет в базу, да еще через левый механизм. 1.Ты их не перехватываешь. Уверен. 2. Зачем откатывать то, что изначально не пройдет. 3. Ты слабо представялешь что такое левая система. Для нормальной системы левой является DBA и что то типа SSMS. 1. Мне даже в страшном сне не надо представлять изменение БД заказчиком. (А если он все же это изменит без санкции меня как разработчика, и программа ляжет, то он же мне и платить будет за восстановление...) 2. Что изначально не пройдет? написано подряд вызов 5и методов, 3й не работает. Остальные 4 же выполняться? 3. То что MS SMS не является необходимой для работы системы я согласен. Но не ты, ни "випрос" не могут запретить пользователю влезть в БД с ее помощью. Отсюда ценность прав на изменение БД в твоем "випрос" = 0. P.S. Я не могу понять как Хорошим решением может быть возможность пользователя как угодно влезть в БД, изменить ее структуру, а потом еще надеяться на правильную работу бизнес-логики. То что программа не будет вылетать с исключениями - не является признаком правильной работы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 18:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch1. Мне даже в страшном сне не надо представлять изменение БД заказчиком. (А если он все же это изменит без санкции меня как разработчика, и программа ляжет, то он же мне и платить будет за восстановление...) 2. Что изначально не пройдет? написано подряд вызов 5и методов, 3й не работает. Остальные 4 же выполняться? 3. То что MS SMS не является необходимой для работы системы я согласен. Но не ты, ни "випрос" не могут запретить пользователю влезть в БД с ее помощью. Отсюда ценность прав на изменение БД в твоем "випрос" = 0. P.S. Я не могу понять как Хорошим решением может быть возможность пользователя как угодно влезть в БД, изменить ее структуру, а потом еще надеяться на правильную работу бизнес-логики. То что программа не будет вылетать с исключениями - не является признаком правильной работы. 1. Как бы ты не старался описать предметную область (п.о.)) исчерпывающим образом (если она не стандартизировано) у тебя это не получится в силу объективных причин. Потому лучше дать возможность модельщику доописать п.о. А вот это "доописать" должно быть стандартизировано, токо тогда заказчик может привязать стандартное отраслевое ПО к своей п.о. 2. Вызов 5 методов не должно реализоваться хардкодингом. Пользователь может написать или переписать некторые из них. Значит должен быть применен способ межметодного :) общения, т.е. настравиавмые рабочие потоки (благо в НЕТ это встоена). А вот вход этого настраиваемого рабочего потока должен быть четко специфирован, что бы можно было бы эти спецификации можно было сверить со спецификациями поставщика инфы и при несовпадение не запускать рабочий потокю Нефиг вызываь часть потока, если изначально ясно что поток завершится ошибкой из за несоблюдения интерфеса поставщиком. так как точка входа в рабочий поток известен (обычно это визуальный интерфесный элемент), то можно его блокировать. 2. Т ыможешь изменить БД как цгодно, просто ВИПРОС при запуска потока проверит согласованность контекста требований и предложений. Но, рекомендуемый способ изменения - через менеджер метаданных ВИПРОС, тогда коллизий воще не возгикнет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 19:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeМСУ, Он сложный только в голове, на самом деле - простой. Не спорю, откуда ж тогда такой ажиотаж? :) ShSergeНамудрили, однако с подзапросами. Сейчас переписывать его не буду - лень. У меня сегодня ДР и я уже некоторую разминочку сделал. А сможете ли его переписать с более эффективным планом? Кстати, с днюхой поздравляю! :) ShSergeСразу бросилось в глаза ордербай по сабселекту. Это - кошмар. А что делать, если такие требования. Кстати, кто-то давеча вещал, что все вычисления должны быть средствами сиквел сервера ViPRosпосле маппинга никто не отслеживает изменение в серверной стороне А это и не надо никому, это лишний бубен, влияющий на производительность. Это в классической двузвенке еще можно побаловать? А если у нас сервер приложений? Так что за такие отслеживания авторитетно ставлю тебе двойку. ViPRosЕФ выдасть ихзепшн и твоя прога скорее всего умрет Часто ли у тебя бывают случаи "случайных" изменений схемы данных на стороне БД? Я плакал... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 19:19 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch1. Мне даже в страшном сне не надо представлять изменение БД заказчиком. (А если он все же это изменит без санкции меня как разработчика, и программа ляжет, то он же мне и платить будет за восстановление...) 2. Что изначально не пройдет? написано подряд вызов 5и методов, 3й не работает. Остальные 4 же выполняться? 3. То что MS SMS не является необходимой для работы системы я согласен. Но не ты, ни "випрос" не могут запретить пользователю влезть в БД с ее помощью. Отсюда ценность прав на изменение БД в твоем "випрос" = 0. P.S. Я не могу понять как Хорошим решением может быть возможность пользователя как угодно влезть в БД, изменить ее структуру, а потом еще надеяться на правильную работу бизнес-логики. То что программа не будет вылетать с исключениями - не является признаком правильной работы. 1. Как бы ты не старался описать предметную область (п.о.)) исчерпывающим образом (если она не стандартизировано) у тебя это не получится в силу объективных причин. Потому лучше дать возможность модельщику доописать п.о. А вот это "доописать" должно быть стандартизировано, токо тогда заказчик может привязать стандартное отраслевое ПО к своей п.о. 2. Вызов 5 методов не должно реализоваться хардкодингом. Пользователь может написать или переписать некторые из них. Значит должен быть применен способ межметодного :) общения, т.е. настравиавмые рабочие потоки (благо в НЕТ это встоена). А вот вход этого настраиваемого рабочего потока должен быть четко специфирован, что бы можно было бы эти спецификации можно было сверить со спецификациями поставщика инфы и при несовпадение не запускать рабочий потокю Нефиг вызываь часть потока, если изначально ясно что поток завершится ошибкой из за несоблюдения интерфеса поставщиком. так как точка входа в рабочий поток известен (обычно это визуальный интерфесный элемент), то можно его блокировать. 2. Т ыможешь изменить БД как цгодно, просто ВИПРОС при запуска потока проверит согласованность контекста требований и предложений. Но, рекомендуемый способ изменения - через менеджер метаданных ВИПРОС, тогда коллизий воще не возгикнет. 1. Пока-что это получалось. 2. Почему это не должен быть? Мне нужно выполнить 5 методов в строгой последовательности (и это отнюдь не единичный случай). Мне вот даже интересно, как ты блокируешь элемент управления? Код: c# 1. 2. 3. 4.
Ты из этого кода поймешь, что блокировать надо?) (Даже если использовать RoutedCommand - за разрешение выполнения команды отвечает CanExecute, а не Execute). 3. Мне не нужно чтобы его менял заказчик. У заказчика часто даже нет ИТ отдела, только пара админов. Кто у него будет ПО дописывать? (Это кстати справедливо и для весьма крупных предприятий, а-ля водоканалы (наш основной профиль). Их ИТ отделы состоят из 10ка человек, которые и так умирают на поддержке универсальной межотраслевой 1С. Второе такое счастье им особо не надо, поэтому заказывают системы "под ключ".) P.S. И как ты будешь обновлять ПО заказчика, если он может переписать твою систему как ему вздумается? P.P.S. Судя по сайту ВИПРОС я бы его стандартным межотраслевым ПО не назвал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 19:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch1. Пока-что это получалось. 2. Почему это не должен быть? Мне нужно выполнить 5 методов в строгой последовательности (и это отнюдь не единичный случай). Мне вот даже интересно, как ты блокируешь элемент управления? Код: c# 1. 2. 3. 4.
Ты из этого кода поймешь, что блокировать надо?) (Даже если использовать RoutedCommand - за разрешение выполнения команды отвечает CanExecute, а не Execute). 3. Мне не нужно чтобы его менял заказчик. У заказчика часто даже нет ИТ отдела, только пара админов. Кто у него будет ПО дописывать? (Это кстати справедливо и для весьма крупных предприятий, а-ля водоканалы (наш основной профиль). Их ИТ отделы состоят из 10ка человек, которые и так умирают на поддержке универсальной межотраслевой 1С. Второе такое счастье им особо не надо, поэтому заказывают системы "под ключ".) P.S. И как ты будешь обновлять ПО заказчика, если он может переписать твою систему как ему вздумается? P.P.S. Судя по сайту ВИПРОС я бы его стандартным межотраслевым ПО не назвал. 1. Рад за тебя. 2. Лучше вызов этих 5 методов оформить как рабочий поток, конфигурацию которой можно поменять в любое время не меняя прогу. 3. Вот ты описал какой то вентиль для водопроводной трубы. Там диаметр, напор и т.д. не знаю что. твоя система работает в орловской губернии. А в Брянской губернии есть вентили с 2 регулируемыми положениями. Что для брянщину надо переделать прогу? или лучше дать возможность ввести новые параметры для венитля и переделать метод (написать другой)? я думаю второй вариант лучше. 4. ПО и БД обновляется автоматом, с учетом изменений внесенных пользователем в ПО и в БД. 5. ВИПРОС платформа. На неу написаны несколько отраслевых решений (ВИП.Бюджетирование, ВИП.APS, ВИП.MES и т.д.) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 19:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch1. Пока-что это получалось. 2. Почему это не должен быть? Мне нужно выполнить 5 методов в строгой последовательности (и это отнюдь не единичный случай). Мне вот даже интересно, как ты блокируешь элемент управления? Код: c# 1. 2. 3. 4.
Ты из этого кода поймешь, что блокировать надо?) (Даже если использовать RoutedCommand - за разрешение выполнения команды отвечает CanExecute, а не Execute). 3. Мне не нужно чтобы его менял заказчик. У заказчика часто даже нет ИТ отдела, только пара админов. Кто у него будет ПО дописывать? (Это кстати справедливо и для весьма крупных предприятий, а-ля водоканалы (наш основной профиль). Их ИТ отделы состоят из 10ка человек, которые и так умирают на поддержке универсальной межотраслевой 1С. Второе такое счастье им особо не надо, поэтому заказывают системы "под ключ".) P.S. И как ты будешь обновлять ПО заказчика, если он может переписать твою систему как ему вздумается? P.P.S. Судя по сайту ВИПРОС я бы его стандартным межотраслевым ПО не назвал. 1. Рад за тебя. 2. Лучше вызов этих 5 методов оформить как рабочий поток, конфигурацию которой можно поменять в любое время не меняя прогу. 3. Вот ты описал какой то вентиль для водопроводной трубы. Там диаметр, напор и т.д. не знаю что. твоя система работает в орловской губернии. А в Брянской губернии есть вентили с 2 регулируемыми положениями. Что для брянщину надо переделать прогу? или лучше дать возможность ввести новые параметры для венитля и переделать метод (написать другой)? я думаю второй вариант лучше. 4. ПО и БД обновляется автоматом, с учетом изменений внесенных пользователем в ПО и в БД. 5. ВИПРОС платформа. На неу написаны несколько отраслевых решений (ВИП.Бюджетирование, ВИП.APS, ВИП.MES и т.д.) 5. Кроме внедрений ВИП. MES на 2 предприятиях на сайте ничего не сказано. Вывод о особой популярности напрашивается сам. 2. Ответь на вопрос как ты контрол заблокируешь. 3. Нет, я опишу вентиль как объект с N регулируемыми положениями и напишу общий метод для N положений, или, например пользуясь конфигурацией IOC контейнера подменю то что необходимо для Брянска. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 19:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, 1. популярность тут не при чем, если випрос сделает для тех, кто ее спонсировал, то что им надо, то это уже будет 100 миллионов экономии для страны 2. ты зациклился на рефлексии, у випрос свои метаданные, и она знает все о своих формах, кнопках, методах, событиях и т.д. и автоматом их генерирует из метаданных 3. ты просто НЕ МОГ ЗНАТЬ что у вентиля будет N положений (никто пока не сконструировал :) и никакой фаулер тебе в этом не поможет в общем, все мы пишем мертвые проги (устаревшие в день выпуска) в первые несколько лет свей практики, а потом начинаем дкмать о вечном и т.д., но к тому моменту обычно уже зависимы материально и блокированы во времени но иногда получется так, что у некоторых появляется возможность чудить, чего и тебе желаю ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos2. ты зациклился на рефлексии Отгадай с одного раза, - на чём ты зациклился? ViPRosв общем, все мы пишем мертвые проги Нет уж. Ты пишешь мертвые проги, а мы создаем хорошие решения ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:19 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, 1. популярность тут не при чем, если випрос сделает для тех, кто ее спонсировал, то что им надо, то это уже будет 100 миллионов экономии для страны 2. ты зациклился на рефлексии, у випрос свои метаданные, и она знает все о своих формах, кнопках, методах, событиях и т.д. и автоматом их генерирует из метаданных 3. ты просто НЕ МОГ ЗНАТЬ что у вентиля будет N положений (никто пока не сконструировал :) и никакой фаулер тебе в этом не поможет в общем, все мы пишем мертвые проги (устаревшие в день выпуска) в первые несколько лет свей практики, а потом начинаем дкмать о вечном и т.д., но к тому моменту обычно уже зависимы материально и блокированы во времени но иногда получется так, что у некоторых появляется возможность чудить, чего и тебе желаю 1. А еще с помощью випрос мы завоюем Марс, Луну и Проксиму Центавра. 2. При чем тут рефлексия, метаданные и т.д., ты мне скажи как ты контрол заблокруешь? Разрешишь мне использовать только свои? А что если мне нужен свой контрол, которого нет в ВИПРОСе? А что если мне нужно какое-то особое расположение контролов (группировка по влкадкам, etc)? А что, если заказчик потребует конкретно ему 1 изменить отображение какой-либо информации? 3. Я специально написал, что подменю через конфигурацию IoC контейнера нужные мне классы. И что мне помешает это сделать, если вентиль появился через пару лет? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, вощем тупо конечно так но все ж в випрос пользователь может конфигурировать контролы как хочет, хоть в таб хоть в корзину, хоть куда ты можешь менять контрол на совместимый другой добавить новый к существующему и т.д. а то что у тя исключительный случай через контейнер в випрос просто конфигурация потоков и методов - обыденность ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRos2. ты зациклился на рефлексии Отгадай с одного раза, - на чём ты зациклился? ViPRosв общем, все мы пишем мертвые проги Нет уж. Ты пишешь мертвые проги, а мы создаем хорошие решения ;) уйди, противный ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos Сахават, те что в лоб, что полбу... Ты как инопланетян е н ёпт. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, вощем тупо конечно так но все ж в випрос пользователь может конфигурировать контролы как хочет, хоть в таб хоть в корзину, хоть куда ты можешь менять контрол на совместимый другой добавить новый к существующему и т.д. а то что у тя исключительный случай через контейнер в випрос просто конфигурация потоков и методов - обыденность А если слой презентации должен быть написан и на WPF и на ASP? У вас есть наборы контролов и для того и для того? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 20:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, нет пока только для винформс так как в тех предприятиях где будет випрос нет интернета :) даже внутренние сети иногда не сообщаются :( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 21:10 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRos Сахават, те что в лоб, что полбу... Ты как инопланетян е н ёпт. и тебя с праздником ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 21:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Шуму много, но на вопрос так никто и не ответил, почему ORM плохо. Единственный С..а что-то там сносно повякал из кустов полубредятину и загнулся. Тайна не раскрыта. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 21:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, нет пока только для винформс так как в тех предприятиях где будет випрос нет интернета :) даже внутренние сети иногда не сообщаются :( => Ваше решение настолько узкоспециализированно, что говорить о каком-либо стандарте и не представляется. А что мешало разделить платформу на независимые части, зачем было клеить монолит от получения и обработки данных до презентации? P.S. Мы действительно далеко от темы топика ушли. Что вы имеете против ОРМ, не напомните? Кроме того что "Они не нужны, а випрос наше все." ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 21:31 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Сергей, хоть у Вас и днюха, но позволю себе немного Вас помучать ) Дадите адекватный комментарий вот этому? 11866063 А то не красиво получается, грубо высказались, а аргументов так и не было. P.S. Вы хоть представляете, что данный код делает? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 21:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУСергей, хоть у Вас и днюха, но позволю себе немного Вас помучать ) Дадите адекватный комментарий вот этому? 11866063 А то не красиво получается, грубо высказались, а аргументов так и не было. P.S. Вы хоть представляете, что данный код делает? МСУ, не обижайтесь и поймите меня правильно. У меня есть, что сказать. Я не первый день (и не первый десяток лет) в бизнесе. Не имею в виду дотнет, впрочем, сами понимаете. Не то, чтобы я агрессивно рекламирую свой паттерн программирования, но просто рекомендую, как проще. Несколько проектов написал с нуля. То есть, начиная с проектирования БД (70%) и заканчивая клиентским отображением (25%). Любая, даже очень сложная база, раскладывается в элементарные мастер-детейл. Если Вы мне не верите, могу формально доказать, только неохота. Просто поверьте. В таком случае, написание программы (я про базы данных говорю) сводится к написанию грида (и детейла от грида) и редактирования конкретной записи. Что может быть проще? Ну при чём здесь ОРМы? Понимаю, на распил - пойдут, но пилите-не пилите, а дело-то делать надо. Вот и рекомендую (по секрету). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 22:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, Если насчёт листов - сами подумайте. ПС. Сегодня со своим сыном встречался (25 лет, а не видел его 19 лет), зовут его, как и Вас - Даниил (Вас так зовут?). Сам ему имя давал. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 22:30 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Серж, невооруженным глазом чувствую, Вы уже под градусом :) Как сынишка, возмужал поди за столько лет! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 22:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУСерж, невооруженным глазом чувствую, Вы уже под градусом :) Как сынишка, возмужал поди за столько лет! Есть маленько. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 22:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, Только в данном случае, я не не Вашей стороне. Ничего личного. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 22:56 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Данила, Просто вопрос - такие инструменты, как, например, JdbcTemplate, включаются или исключаются из того множества инструментов, которые ты подразумеваешь, говоря об "ORM"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 23:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зы, не имел дело с данным инструментом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 23:16 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУзы, не имел дело с данным инструментом.ну так прочитал бы в википедии по-быстрому, ты же умеешь. Мне просто не приходит в голову ничего похожего из дотнета прямо сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2012, 23:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зы, свиду обычный датаадаптер НЕТ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 00:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchА что мешало разделить платформу на независимые части, зачем было клеить монолит от получения и обработки данных до презентации? P.S. Мы действительно далеко от темы топика ушли. Что вы имеете против ОРМ, не напомните? Кроме того что "Они не нужны, а випрос наше все." 1. не монолит 2. развивается 3. ОРМ ненужная технология. не надо скрещивать ужа с ежом. нужны объекты - работайте с объектной системой, нужны датасеты - работайте с реляционной отображение одного мира в другой - нетривиальная(зачастую невозможная) задача, обычно сложнее чем конструирование каждого из миров зачем такие сложности, которые однозначно приведут к ненужному осложнению проги и лишениям нафига строгая типизация, когда нужен динамизм? а то бла бла про компиляторной типизацию и тут же dynamic, дебильные дженерики, маппинг и т.д. фигня должен быть четкий контракт между процессами и нарушения этого контракта должна караться третьей системой, которя над этими процессами и отслеживает контракт ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 00:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos, не совсем, датаадаптер умеет мапить только в свои страшные датасеты, ну и попутно имеет несколько перделок в комплекте. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 00:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыViPRos, не совсем, датаадаптер умеет мапить только в свои страшные датасеты, ну и попутно имеет несколько перделок в комплекте. ну можно быстро обучить к этому и датаадаптер и датаридер и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 00:55 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos, Да можно вообще все руками написать, тем не менее у меня к Даниле конкретный вопрос, надеюсь как прочтет - ответит. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 00:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
а датасеты самое лучшее что придумал микрософт особо радует понятие реляционной связи которая отсутствует в СКЛ сервере если выкинут ООП потуги, то скл БД чистенько так отображается на пользовательские подсхемы (хотя скл не имеет такого развитого понятия подсхема - многотабличное вью) -классика ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 01:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos, Не надо грузить мой мозг этой ерундой, и вообще не засоряй тред, а то Данила продинамит с ответом под видом "пропустил" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 01:04 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchА что мешало разделить платформу на независимые части, зачем было клеить монолит от получения и обработки данных до презентации? P.S. Мы действительно далеко от темы топика ушли. Что вы имеете против ОРМ, не напомните? Кроме того что "Они не нужны, а випрос наше все." 1. не монолит 2. развивается 3. ОРМ ненужная технология. не надо скрещивать ужа с ежом. нужны объекты - работайте с объектной системой, нужны датасеты - работайте с реляционной отображение одного мира в другой - нетривиальная(зачастую невозможная) задача, обычно сложнее чем конструирование каждого из миров зачем такие сложности, которые однозначно приведут к ненужному осложнению проги и лишениям нафига строгая типизация, когда нужен динамизм? а то бла бла про компиляторной типизацию и тут же dynamic, дебильные дженерики , маппинг и т.д. фигня должен быть четкий контракт между процессами и нарушения этого контракта должна караться третьей системой, которя над этими процессами и отслеживает контракт 1. Какой же не монолит, если при использовании вашего випроса на аппсервере я не получу ни 1 преимущества, вами заявленного? кроме проверки БД на соответствие контракту? 3. Команда ADO .NET вот уже лет 5 так не считает.) Зачем мне динамическая типизация если база строго типизирована? Dinamic относится к ORM чуть более чем никак (да и к CLR кстати помоему тоже). Называть Jeneric дибильным может только реально недалекий человек ))) И кстати Jeneric'и появились года за 3 до L2S. А подчеркнутое - это не маппинг?) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 09:52 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
И кстати Generic'и появились в .NET года за 3 до L2S. И какое они отношение имеют к ОРМ совсем не понятно. Наличие в моделе EntitySet<EntityType> делает их дебильными? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 10:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыМСУзы, не имел дело с данным инструментом.ну так прочитал бы в википедии по-быстрому, ты же умеешь. Мне просто не приходит в голову ничего похожего из дотнета прямо сейчас Вообщем, это простой паттерн (теймплейт, практика) для доступа к данным. Альтернатива в дотнете - The Enterprise Library Data Access Application Block . То есть это никакой не ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 11:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosа датасеты самое лучшее что придумал микрософт Датасеты (типизированные) самое лучшее худшее, что придумал майкрософт. А на обычных же датасетах строят свои DAL'ы к хранилищам вообще полоумные. ViPRosдебильные дженерики, маппинг и т.д. фигня Генерики - это самое лучше, что есть в дотнете. Даже в джаве они "искуственные", не такие как в дотнете. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 12:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
DataSet'ы офигительны когда разработка ведется от базы. Но так как от базы в наше время никто не разрабатывает, кроме тех, кто остался в 2000м году, то DataSetы не нужны конечно же. Но ORM применим в обоих подходах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 12:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Вскм вумным и продвинутым! Покажите свои проги(ну часть или хоть что то реальное(не копи файл или там показ слайдов, а допустим расчет зарплаты), а не копипаст от книг), докажите то, о чем вы тут лялякаете! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos, посмотри MS Axapta или Navision, можешь еще посмотреть JD Edwards, бывший Sun, ныне Oracle. В базе строятся только отчеты. Вся логика на уровне AppServer. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:13 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayВся логика на уровне AppServer. И это правильно, ибо масштабируемо, надежно, отказоустойчиво, мобильно, тестируемо, рефакторно, скаффолдингово. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:18 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRosа датасеты самое лучшее что придумал микрософт Датасеты (типизированные) самое лучшее худшее, что придумал майкрософт. А на обычных же датасетах строят свои DAL'ы к хранилищам вообще полоумные. ViPRosдебильные дженерики, маппинг и т.д. фигня Генерики - это самое лучше, что есть в дотнете. Даже в джаве они "искуственные", не такие как в дотнете. ну насчет микрософт я конечно загнул. Датасеты = Мидас, но микрософт туда сунул релейшн (круче чем в СКЛ). Типизированные Датасеты хороши для описания метаданных (так как там жесткая структура), а нетипизированные для самих данных. Для улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через dynamic, что бы можно было писать ds.Tables.musyatable.Rows.RowId.Columns.ColumnId или ds.musyatable.RowId.ColumnId. Дженерики полное говно, все построено на object, на каждый тип создается в рантайме копия кода, постоянные проверки ограничений и т.д. делает их неприменимым в высокочувствительных алгоритмах Мусь, ну покажи хоть кусок какой нить проги, токо не долбаный мембершип ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayViPRos, посмотри MS Axapta или Navision, можешь еще посмотреть JD Edwards, бывший Sun, ныне Oracle. В базе строятся только отчеты. Вся логика на уровне AppServer. и потому они часами разузловывают 1 изделие, 2 сутки считают МРП и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosи потому они часами разузловывают 1 изделие, есть знакомый проект, где это в базе делалось. больше суток. очень долгой и дорогой была оптимизация. выигрыш был процентов 15%. что уже неимоверно круто. в случае с App-сервером достаточно было бы доставить пару кластеров и распаралелить задачу на них. ViPRos2 сутки считают МРП и т.д. где 2е суток считается? кем? данные либо уже посчитаны, либо, если это отчет, считаются в базе. ORM тут никак тормозом быть не может. а вот база не тянет... это да. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosТипизированные Датасеты хороши для описания метаданных (так как там жесткая структура), а нетипизированные для самих данных. Для улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через dynamic, что бы можно было писать ds.Tables.musyatable.Rows.RowId.Columns.ColumnId или ds.musyatable.RowId.ColumnId. то есть мы возвращаемся обратно в 2000й год. когда весь мир доказал что типизация это хорошо и правильно, ибо позволяет отловить не малую часть ошибок на этапе компиляции, упрощает тестирование, а так же показывает ошибки и в рантайме... мы всё это выбрасываем и возвращаемся к php, где баг из-за неправильного типа данных можно искать месяцами. браво. ViPRosДженерики полное говно, все построено на object, на каждый тип создается в рантайме копия кода, постоянные проверки ограничений и т.д. делает их неприменимым в высокочувствительных алгоритмах ересь какая-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
[quot ViPRos]МСУпропущено... 1. Для улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через dynamic, что бы можно было писать ds.Tables.musyatable.Rows.RowId.Columns.ColumnId или ds.musyatable.RowId.ColumnId. 2. Дженерики полное говно, все построено на object, на каждый тип создается в рантайме копия кода, постоянные проверки ограничений и т.д. делает их неприменимым в высокочувствительных алгоритмах Мусь, ну покажи хоть кусок какой нить проги, токо не долбаный мембершип 1. Нет там никакого улучшения: ни интелисенса, ни комментариев, ни . Одно и тоже что и строка. Только выглядит "круто и объектно", по удобству написания ничем не лучше. 2. Вы с явой попутали, это там генерики не поддерживаются на уровне среды исполнения и заменяются а список объектов + кучи кастов. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Сори, случайно не тот тег Quote стер. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Enomayгде 2е суток считается? кем? данные либо уже посчитаны, либо, если это отчет, считаются в базе. ORM тут никак тормозом быть не может. а вот база не тянет... это да. не рассказывай басни твоя аксапта просто умрет от моих изделий, а не то бы рассчитать расписание ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosне рассказывай басни твоя аксапта просто умрет от моих изделий, а не то бы рассчитать расписание был вопрос о расчете зп? причем тут изделия? для огромных размеров деревьев существуют кастомные решение. но опять же, причем тут orm? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Enomay то есть мы возвращаемся обратно в 2000й год. когда весь мир доказал что типизация это хорошо и правильно, ибо позволяет отловить не малую часть ошибок на этапе компиляции, упрощает тестирование, а так же показывает ошибки и в рантайме... мы всё это выбрасываем и возвращаемся к php, где баг из-за неправильного типа данных можно искать месяцами. браво. ViPRosДженерики полное говно, все построено на object, на каждый тип создается в рантайме копия кода, постоянные проверки ограничений и т.д. делает их неприменимым в высокочувствительных алгоритмах ересь какая-то. Никакой типизации и НЕТ! я уж говорил про синхронизацию с БД тут. че ересь то? или ты просто их не пробовал? как со скоростью? не сравнивал? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
[quot Lelouch]ViPRosпропущено... 1. Нет там никакого улучшения: ни интелисенса, ни комментариев, ни . Одно и тоже что и строка. Только выглядит "круто и объектно", по удобству написания ничем не лучше. 2. Вы с явой попутали, это там генерики не поддерживаются на уровне среды исполнения и заменяются а список объектов + кучи кастов. 1. все равно удобно, чем есть 2. такое же говно и в нет ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:42 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosНикакой типизации и НЕТ! вообще нет? в базе данные тоже в строках все лежат? или в блобах? ViPRosя уж говорил про синхронизацию с БД тут. какая синхронизация? причем тут синхронизация? ViPRosче ересь то? или ты просто их не пробовал? как со скоростью? не сравнивал? сравнивать по скорости с чем? тебе уже написали выше, что такое Generics ты совершенно не знаешь. тут даже добавить больше нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:42 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRos2. такое же говно и в нет то есть человек совершенно не владеющий предметом что-то пытается доказать. это уже даже не смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosкак со скоростью? не сравнивал? да, кстати. если сравнивать использование генериков с датасетами, то последние сливают по всем параметрам. как по скорости, так и по кол-ву потребляемой памяти. а уж если мы их через сервисы передавать захотим, то еще и проц нагрузит постоянной обработкой огромных XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:45 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosТипизированные Датасеты хороши для описания метаданных (так как там жесткая структура) Типизированные датасеты - это зло, причем беспощадное. ORM даёт и метаданные, и типизацию. ViPRosа нетипизированные для самих данных. Когда заранее неизвестна структура - единственный случай применимости датасетов. ViPRosДля улучшения читаемости хорошо бы к нетипизированным датасетам и их внутренностям обращаться через dynamic Я плакал... Это гвоздь в надгробие с надписью проверки именования членов и их типов на этапе коипиляции. Сахват, у тебя что не пост, то отжиг. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, да вы просто пишите монументальные проги а у меня неизвестно не только структура, но и поведение ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosМСУ, да вы просто пишите монументальные проги а у меня неизвестно не только структура, но и поведение И наверное даже не известно, что это программа... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:56 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosМСУ, да вы просто пишите монументальные проги а у меня неизвестно не только структура, но и поведение Сахват, ты куришь не ту траву, выдыхай. У тебя смешалось всё в кучу, кони, люди, трава же. Вот тебе адекватный аргумент озвучили - распараллеливание задачи на третьем звене (апп сервер). Как будешь параллелить, если твоя немасштабируемая гавнологика хостится на сиквел сервере. У меня же в бой вступят тредпул, таски, Parallel, PLINQ. Аргументы? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:57 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Да и вообще облака с параллелями придумали идиоты. Накойхер (с) оно нужно, если может математику база данных считать. Бугага ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 13:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, вообще-то первый совет классиков тем, кто хочет построитъ распределённую систему, гласит: "не распределайте ничего, если можно не распределятъ" пул соединений, вообще-то, на стороне базы , находится, PLINQ к обращениям к базам данных тоже неприменим, единственное, что можно сделатъ с EF лучше- это кэширование, так что подумайте, у кого и где что смешалосъ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosEnomay, это ТВОИ проблемы, а не мои а дженерики в НЕТ точно так же работают и воще пшел нах, я эти дженерики еще на коболе делал да да, мы уже все поняли что ты совершенно не разбираешься в предмете. не нужно больше это доказывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosEnomay, это ТВОИ проблемы, а не мои а дженерики в НЕТ точно так же работают и воще пшел нах, я эти дженерики еще на коболе делал http://msdn.microsoft.com/ru-RU/library/f4a6ta2h(v=vs.80).aspx] Conversions are no longer necessary because each specialized generic class natively contains the value type. © MSDN. Выслушаю доказательства вашей теории по Generic'ам. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Bob DylanМСУ, вообще-то первый совет классиков тем, кто хочет построитъ распределённую систему, гласит: "не распределайте ничего, если можно не распределятъ" Второй совет классиков - ничего не нужно кодировать, если можно кодировать. А третий - убей себя об стену, если стена рядом. Браво. Bob Dylanпул соединений, вообще-то, на стороне базы , находится, тредпул != пул соединений, вообще-то Bob DylanPLINQ к обращениям к базам данных тоже неприменим А я о чем говорю? Именно поэтому бизнес-логика на стороне БД - зло. Bob Dylanединственное, что можно сделатъ с EF лучше- это кэширование, так что подумайте, у кого и где что смешалосъ Смешалось у Вас в голове. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУВообщем, это простой паттерн (теймплейт, практика) для доступа к данным. Альтернатива в дотнете - The Enterprise Library Data Access Application Block . То есть это никакой не ORM. Ну а то что оно может выборку возвращать в виде списка объектов через row mapper не считается? По сути ведь тоже - маппинг представления из базы на объект. Я не спорю, просто уточняю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:19 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch Зачем мне динамическая типизация если база строго типизирована? Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchViPRosEnomay, это ТВОИ проблемы, а не мои а дженерики в НЕТ точно так же работают и воще пшел нах, я эти дженерики еще на коболе делал http://msdn.microsoft.com/ru-RU/library/f4a6ta2h(v=vs.80).aspx] Conversions are no longer necessary because each specialized generic class natively contains the value type. © MSDN. Выслушаю доказательства вашей теории по Generic'ам. дружок, а об этом и говорю However, if at another point in your program code another Stack<T> class is created, this time with a different value type such as a long or a user-defined structure as its parameter, the runtime generates another version of the generic type, this time substituting a long in the appropriate places in MSIL. Conversions are no longer necessary because each specialized generic class natively contains the value type. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:23 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыНу а то что оно может выборку возвращать в виде списка объектов через row mapper не считается? По сути ведь тоже - маппинг представления из базы на объект. Я не спорю, просто уточняю. Ну маппинг это еще пол-дела, хорошо бы еще иметь свой внутренний язык для кодогенерации SQL конкретного типа SQL сервера (MS SQL, Oracle, DB2, ...). EF/L2S - это язык Linq. В Nibernate - это ICriteria и HSQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыНемного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :) Этим и чудесен ORM, что работает с многими серверами. Databases supported by NHibernate ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Entity Framework, LINQ and Model-First for the Oracle Database P.S. А вот L2S прекратил развитие и работает только с MS SQL... :( ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchпропущено... http://msdn.microsoft.com/ru-RU/library/f4a6ta2h(v=vs.80).aspx] Conversions are no longer necessary because each specialized generic class natively contains the value type. © MSDN. Выслушаю доказательства вашей теории по Generic'ам. дружок, а об этом и говорю However, if at another point in your program code another Stack<T> class is created, this time with a different value type such as a long or a user-defined structure as its parameter, the runtime generates another version of the generic type, this time substituting a long in the appropriate places in MSIL. Conversions are no longer necessary because each specialized generic class natively contains the value type. Во-первых , я вам не дружок, во-вторых, тут написано что каждый раз при использовании разных параметров типов среда исполнения генерирует для каждого из них СВОЙ собственный тип. Где вы тут видите подход Java с использованием листа объектов и вставкой в код методов преобразований?) P.S. С вами спорить бред, почитайте Рихтера. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRosМСУ, да вы просто пишите монументальные проги а у меня неизвестно не только структура, но и поведение Вот тебе адекватный аргумент озвучили - распараллеливание задачи на третьем звене (апп сервер). Как будешь параллелить, если твоя немасштабируемая гавнологика хостится на сиквел сервере. У меня же в бой вступят тредпул, таски, Parallel, PLINQ. Аргументы? 1. Делать допзвены не проблема, не вижу нужды в них 2. а все эти Paralell и т.д. неинтеллектуальная тупость, я должен разбить, сортировать и т.д.. легче и точнее вручную. И датасеты не помеха не для тредпул, не для таск и не для параллель. я говорю о том , что КЛАСС в КОДЕ = ЗЛО!!! это МЕРТВЫЙ код. Никакие атрибуты и т.д. больному не помогут. ООП для надуманных задач. И тебе повезло что я дома и радикулит замучил, а то еще раз тебе напомнил, что ВИПРОС пофиг где находится методы, на сервере, на клиенте или на каком еще хостинге (ну это я загнул, но в планах). ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchВо-первых , я вам не дружок, во-вторых, тут написано что каждый раз при использовании разных параметров типов среда исполнения генерирует для каждого из них СВОЙ собственный тип. Где вы тут видите подход Java с использованием листа объектов и вставкой в код методов преобразований?) P.S. С вами спорить бред, почитайте Рихтера. Подруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы. В гробу видал рихтеров этих. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:40 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosИ тебе повезло что я дома и радикулит замучил, а то еще раз тебе напомнил, что ВИПРОС пофиг где находится методы, на сервере, на клиенте или на каком еще хостинге (ну это я загнул, но в планах). [offtop] XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD [/offtop] ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:40 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchЗачем мне динамическая типизация если база строго типизирована? Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :) запросто - RavenDB - всё строго типизировано. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:42 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosEnomayпропущено... запросто - RavenDB - всё строго типизировано. тупой, то что типизировано что то в одном процессе и в другом не означает что они синхронно типизированы какой-то бред RavenDB в себе хранит .NET типы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchВо-первых , я вам не дружок, во-вторых, тут написано что каждый раз при использовании разных параметров типов среда исполнения генерирует для каждого из них СВОЙ собственный тип. Где вы тут видите подход Java с использованием листа объектов и вставкой в код методов преобразований?) P.S. С вами спорить бред, почитайте Рихтера. Подруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы. В гробу видал рихтеров этих. Конечно, гораздо выгоднее пихать все в список объектов, постоянно используя приведения(а иначе никак не обработаешь... а ну да через динамик (кстати а динамик не требует ли больше ресурсов для своей работы?) )), молясь, чтобы кто-то не впихнул в список левый объект (а то ведь приведение может и исключение вызвать), и вызывая упаковку/распаковку значимых типов... А ну да, великим разработчикам ВИПРОС, экономящим стране 100 млн. $ некогда читать книги никому не известного Рихтера и т.д. ... ) Надо же работать над распилом экономией 100 млн $ )) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosПодруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы. медленно что? в сравнении с чем? сравни работу с массивом где происходит боксинг/анбоксинг, и скорость дженериков, потом прозрей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayNoSQL? Пишем свой кастом провайдер, тут пример или тут . P.S. Сахват, ты не в адеквате. Отдыхай. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУПишем свой кастом провайдер Ошибся в цитировании, писал для зы. Второй вариант для хибера (линк не вставился): NHibernate Membase caching provider ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУНу маппинг это еще пол-дела, хорошо бы еще иметь свой внутренний язык для кодогенерации SQL конкретного типа SQL сервера (MS SQL, Oracle, DB2, ...). EF/L2S - это язык Linq. В Nibernate - это ICriteria и HSQL. Так язык - это желаемое или необходимое? Почему не может быть ORM только для конкретной базы? Вот например, более высокая абстракция MyBatis ( http://www.mybatis.org/core/) - уже ORM или ещё нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУЭтим и чудесен ORM, что работает с многими серверами. Databases supported by NHibernate Да пусть работает, я про заявление о строгой типизации базы ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Enomayзапросто - RavenDB - всё строго типизировано. Не читал, но вот другой пример - MongoDB, никакой типизации ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 14:55 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchА ну да, великим разработчикам ВИПРОС, экономящим стране 100 млн. $ некогда читать книги никому не известного Рихтера и т.д. ... ) Надо же работать над распилом экономией 100 млн $ )) Вот в МАИ взяли ДЕЛМИА И САП и попытались промоделировать процесс изготовления одной фигни для нового завода. Дык просто не смогли за 3 месяца. В ВИПРОС занял 10 дней. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУEnomayNoSQL? P.S. Сахват, ты не в адеквате. Отдыхай. А я по твоему что делаю :) ООП фигня ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:33 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыМСУНу маппинг это еще пол-дела, хорошо бы еще иметь свой внутренний язык для кодогенерации SQL конкретного типа SQL сервера (MS SQL, Oracle, DB2, ...). EF/L2S - это язык Linq. В Nibernate - это ICriteria и HSQL. Так язык - это желаемое или необходимое? Почему не может быть ORM только для конкретной базы? Вот например, более высокая абстракция MyBatis ( http://www.mybatis.org/core/) - уже ORM или ещё нет? Язык - ПЛОХО. Не нужен. Если он не расширяем стандартным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayViPRosПодруга, я про то и говорил, что в рантайме МЕДЛЕННО. А Джаву и т.д. приплели вы. медленно что? в сравнении с чем? сравни работу с массивом где происходит боксинг/анбоксинг, и скорость дженериков, потом прозрей. какой блин боксинг/анбоксинг? указатели рулят ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыТак язык - это желаемое или необходимое? Срорее, необходимое. зыПочему не может быть ORM только для конкретной базы? Отчего ж не может, может. L2S - для конкретного типа сервера (MSSQL), например. зыДа пусть работает, я про заявление о строгой типизации базы Ты ж спросил про "конкретность базы", а теперь говоришь о другом - о типизации. Определись. Типизация априори должна быть в ORM, исходя даже из самого названия - объектный маппинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
кусок соственной проги со всеми приблудами кто нить покажет? или вы все работаете в цру? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
самый симпотный орм - kynetic ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 15:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУзыТак язык - это желаемое или необходимое? Срорее, необходимое. зыПочему не может быть ORM только для конкретной базы? Отчего ж не может, может. L2S - для конкретного типа сервера (MSSQL), например. ок, тогда mybatis/ibatis, получается, тоже не ORM? Там нет собственного языка, транслируемого в XXX. Ну и наверное ещё каких-то свистелок, которые ты называешь необходимыми. Просто ты явно не ответил. МСУзыДа пусть работает, я про заявление о строгой типизации базы Ты ж спросил про "конкретность базы", а теперь говоришь о другом - о типизации. Определись. да что ты, я не спрашивал про "конкретность базы". Я вообще адресовал свой вопрос Lelouch , к тебе у меня были другие. Не люблю смешивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 16:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыок, тогда mybatis/ibatis, получается, тоже не ORM? Там нет собственного языка, транслируемого в XXX. Ну и наверное ещё каких-то свистелок, которые ты называешь необходимыми. Просто ты явно не ответил. Согласен, что "неявно" ответил. И не отвечу, потому что нет однозначного определения ORM. Каждый продукт сам себя позиционирует. Хибер позиционирует себя как ORM. Telerik OpenAccess позиционирует себя как ORM. BLToolkit позиционирует себя как ORM. EF позиционирует себя как ORM. ... Enterprise Library Data Access Block позиционирует себя как практику (хелпер, другими словами). зыда что ты, я не спрашивал про "конкретность базы". Я вообще адресовал свой вопрос Lelouch , к тебе у меня были другие. Не люблю смешивать. Ок, тогда сорри. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 16:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зы, по поводу JdbcTemplate: Доступ к данным в Spring ...Существует много статей о том, как делать инъекцию зависимости в Spring, но очень мало толковой информации о подключениях к базам данных. В Spring это можно делать либо напрямую при помощи JDBC либо использовать ORM технологии, например, Hibernate . Согласись, очевиден четкий контраст: либо горбатый, либо не горбатый. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 16:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchЗачем мне динамическая типизация если база строго типизирована? Немного вброшу - а если база NoSQL? А то тут все в порыве спора немного на скуль сервере зациклились :) Раз уж именно мне, то : 1) Тема топика SQL vs ORM. ))) 2) Честно, не сталкивался с нетипизированными хранилищами 3) noSQL бывает типизированным (это ответили до меня) 4) Даже при отсутсвтии строгой типизации в бд использую ORM и получу строгую типизацию. Подход без строгой типизации (нетипизированный датасет) все равно особых плюсов не имеет - при работе или придется приводить типы, или использовать dynamic, что сильно мешает и может привести к краху в рантайме при попытке использования несуществующего метода / поля / свойства, etc. Или я не правильно понял вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
P.S. Из примеров по MongoDB, приводимых Вами: Код: c# 1. 2. 3. 4.
Как видите, все равно преобразования типа необходимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
* Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosкусок соственной проги со всеми приблудами кто нить покажет? или вы все работаете в цру? Вот вам, маленький запросик которых в приложении сотни. Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения. Эффективно.. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:31 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchP.S. Из примеров по MongoDB, приводимых Вами: Как видите, все равно преобразования типа необходимо. преобразование необходимо исключительно для работы с данными в строго типизированном языке C#. Если клиентом будет javascript, то преобразование уже не нужно ;) Да и если в одной строке может лежать документ с полем "foo" и значением типа string, а в другой - документ с полем "foo" и значением типа number, то это и называется отсутствие строгой типизации в базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, я все к тому спрашивал, чтобы вляпаться с тобой в очередную игру слов про ORM или не ORM. Если называть инструмент ORM'ом, если у него есть базовый функционал маппинга сырых данных из базы на какую-то модель данных, то да, без ORM сейчас почти никто не обходится и для игнорирования нужны веские причины. Хотя вот в небольшом проекте с NoSQL (для Lelouch заодно) вместо ORM был простой валидатор по динамической схеме данных. Потому что были динамические формы и никакой объектной модели (кроме списка пользователей), и нужно было всего-лишь сохранить форму как документ, и уметь смапить документ обратно на форму для редактирования. Если настаивать на понятии ORM как на обязательном присутствии свистелок и переделок, то примеров, почему не нужно использовать такой тяжелый инструмент как ORM, уже может быть много. Либо нужен баланс. Для простых модулей типа user management нет смысла изобретать очередной CRUD велосипед, а уже там, где преимущественно нужны быстрые, разнообразные и эффективные выборки с отображением данных, ORM избыточен. Особенно хибернейт. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
"чтобы НЕ вляпаться" конечно же ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 17:55 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонВот вам, маленький запросик которых в приложении сотни. Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения. Эффективно.. :) почему любители compile-time проверок все время любят приводить в пример опечатки в строках? А если я опечатался и написал >= , или вместо нуля единицу? А сколько в адовом 11867369 запросе можно опечаток наделать — я вообще молчу. У тебя же все равно будут юниттесты, правильно? :) они и свалятся в случае ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 18:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыМСУ, я все к тому спрашивал, чтобы не вляпаться с тобой в очередную игру слов про ORM или не ORM. Я это почувствовал изначально, поэтому старался "неявно" отвечать. Но когда вопрос стал ребром "горбатый или не горбатый" - я отписался про "самопроизвольную" трактовку вендора. Но, так или иначе, мы привыкли к тому, что в ORM'ах есть 1. Готовые для работы классы (либо пишем руками, либо кодогенерируем с хранилища) 2. Язык общения с хранилищем (транслятор в SQL) 3. По возможности поддержка различных видов БД (нетрудно реализовать из п.2) 4. По возможности поддержка возможности создания новой БД из набора классов (в хибере делается одной строчкой SchemaExport.Execute()) зыЕсли называть инструмент ORM'ом, если у него есть базовый функционал маппинга сырых данных из базы на какую-то модель данных Маппинг - это самое последнее и самое простое. Нужна схема, прежде всего. Нужны классы. Нужен движок-транслятор. Вот, что самое сложное. [quot зы]такой тяжелый инструмент как ORM В том-то и соль, что он не тяжелый. Он шустр и понятен, как березовый лист. Запросы выполняются там же на сервере, программист же общается с типизированными данными. Скорость та же. Микросекунды на маппинг объектов в коллекции не в счет. Тот же датасет дольше будет заполняться, чем наполнится коллекция того же хибера или EF. Самое шустрое же - это IDataReader, но работать с ним так или иначе невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 18:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыпочему любители compile-time проверок все время любят приводить в пример опечатки в строках? А если я опечатался и написал >= , или вместо нуля единицу? Потому, что данный вид ошибки является самым распространенным. А от логической ошибки же (ошибки в бизнес-логике) ничего не спасёт, даже серебряная пуля. зыУ тебя же все равно будут юниттесты, правильно? :) они и свалятся в случае ошибки. Точно так же, можно ошибиться в юнит-тесте и написать 0 вместо 1. Так что мы ходим рекурсивно по кругу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 18:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ Точно так же, можно ошибиться в юнит-тесте и написать 0 вместо 1. Так что мы ходим рекурсивно по кругу. да, и тестеры тоже ошибаются, и так всегда и вываливаются ошибки на продакшн, это реальность но все-таки давай рассматривать юнит-тесты как достаточный уровень защиты от подобных ошибок. МСУМаппинг - это самое последнее и самое простое. Нужна схема, прежде всего. Нужны классы. Нужен движок-транслятор. Вот, что самое сложное. маппинг - это результат работы всего, что ты написал выше. Именно что последнее, и базовое :) Транслятор->база->схема->маппинг. Тут именно что ничего тяжелого. Тяжелое и непредсказуемое начинается когда подключают, например, хибернейт. Если он избыточен для задачи, то достаточно jdbctemplate/mybatis для получения результата в виде POJO, с которым уже можно работать дальше используя парадигмы объектов. В основном это некая небольшая простая постобработка на стороне приложения перед выводом на клиент. Тут нет серебряной пули, так что спор — нужен ORM или нет без конкретной задачи сводится к простому мерянью пиписьками вида "а у меня проект больше и без ORM мы бы его делали в 10 раз дольше". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 18:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыно все-таки давай рассматривать юнит-тесты как достаточный уровень защиты от подобных ошибок. Ок. Но зачем доводить до последнего рубежа обороны, если можно на начальном этапе отсеять такую ошибку (ошибки именований или типов). Далее - продуктивность и удобство работы (интелиссенс). Влияет ли на скорость и качество разработки? Или в помойное ведро его, этот подсказыватель? Думаю, тут всё очевидно. зымаппинг - это результат работы всего, что ты написал выше. Именно что последнее, и базовое :) Это результат, окончательный расчёт. Но, чтобы его сделать, нужно иметь полноценный движок, вот в нем вся и трудность. [quot зы]Тяжелое и непредсказуемое начинается когда подключают, например, хибернейт. Если он избыточен для задачи, то достаточно jdbctemplate/mybatis для получения результата в виде POJO, с которым уже можно работать дальше используя парадигмы объектов.[/quot Не понимаю, всё же. В чём тяжелость и избыточность хибера? Нужно переключиться на другую БД (например, Oracle) - переключаем провайдер в конфиге. Нужно развернуть базу по схеме в инсталляторе - вызываем метод, который по схеме все сделает. Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом. зыТут нет серебряной пули, так что спор — нужен ORM или нет без конкретной задачи сводится к простому мерянью пиписьками вида "а у меня проект больше и без ORM мы бы его делали в 10 раз дольше". Нужен. Тысячу раз нужен, зы. Однозначно нужен, даже если база постоянна и прочие фантики не интересны. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 18:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchP.S. Из примеров по MongoDB, приводимых Вами: Код: c# 1. 2. 3. 4.
Как видите, все равно преобразования типа необходимо. ну конечно. вы бы еще работу с чистым rest показали. использовать готовую библиотеку для доступа к MongoDB с поддержкой типов слабо? хотя бы вот так http://habrahabr.ru/blogs/aspnet_mvc/93598/ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 18:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
К МСУ добавить нечего, разве что - носить стринги не наша ориентация ) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 19:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыДля простых модулей типа user management нет смысла изобретать очередной CRUD велосипед, а уже там, где преимущественно нужны быстрые, разнообразные и эффективные выборки с отображением данных, ORM избыточен. Особенно хибернейт. ORM не исключает быстрых и эффективных выборок. его основная задача - маппинг. с этой задачей он отлично справляется. это на порядок удобнее нежели работать с классическим ADO.NET. он снимает кучу рутинной работы. но и логику на нем строить так же можно, и нужно, если есть необходимость. для примера. была необходимость отображать все записи из определенных таблиц. через время появилось требование записи не удалять физически, а маркировать как Deleted. используя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете. используя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект. использовать чистый сиквел имеет смысл только тогда, когда нужно обрабатывать огромные объемы данных. обычно это OLAP. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 19:06 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayLelouchP.S. Из примеров по MongoDB, приводимых Вами: Код: c# 1. 2. 3. 4.
Как видите, все равно преобразования типа необходимо. ну конечно. вы бы еще работу с чистым rest показали. использовать готовую библиотеку для доступа к MongoDB с поддержкой типов слабо? хотя бы вот так http://habrahabr.ru/blogs/aspnet_mvc/93598/ А к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 19:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом. на самом деле самое ценное в ORM - это возможность работать с объектами, а не строками в таблицах. это существенно при использовании ООП. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 19:10 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchА к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал? вы написали что необходимо преобразование. преобразование чего во что? конечно в том или ином виде оно всегда и везде есть. я уверен что даже внутри сиквела. но используя нормальные ORM, у вас не возникает необходимость делать это самому. и к тому же отпадает необходимость в том коде, что вы привели как пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 19:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayLelouchА к чему ваш комментарий, можно вопрос? Может сначала перечитаете вопрос, на который я отвечал? вы написали что необходимо преобразование. преобразование чего во что? конечно в том или ином виде оно всегда и везде есть. я уверен что даже внутри сиквела. но используя нормальные ORM, у вас не возникает необходимость делать это самому. и к тому же отпадает необходимость в том коде, что вы привели как пример. Еще раз посмотрите на что я отвечал... Вопрос ОРМ не касался.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 19:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУНе понимаю, всё же. В чём тяжелость и избыточность хибера? Нужно переключиться на другую БД (например, Oracle) - переключаем провайдер в конфиге. Нужно развернуть базу по схеме в инсталляторе - вызываем метод, который по схеме все сделает. большинство проектов, о которых я знаю, либо никогда не меняли базу, либо делали это исключительно ради оптимизации (например, переход с sql на nosql). Нельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости. Так что ИМХО смена базы — проблема и, соответственно, выгода, сильно надуманы. Да, ты сейчас скажешь что ORM позволит оставить бОльшую часть кода как есть, но тот же переход sql->nosql требует заодно и смены подхода к работе с данными. А количество кода, которое необходимо будет переписать, зависит не от факта использования ORM, а от наличия первоначальной абстракции DAL и BL. В хибере очень много всего, что нужно настроить, чтобы заработало. Более высокий порог вхождения. А если внезапно начнет глючить в неумелых руках, то ошибки можно искать долго и упорно. Особенно коварны транзакции и кэш. В некоторых случаях кэш вообще нафиг не нужен, а он есть. А если несколько серверов — появляется ещё и проблема репликации кэша. Я не говорю что это отмазки ламеров чтобы не использовать. Пожалуйста, если это все нужно и умеешь работать. Но если нет — то хибер крайне избыточен и потери CPU внутри на все перделки при большой нагрузке становятся сильно заметны. Например, мне нужно делать выборки актуальных данных по вроде бы простым динамическим критериям. Нужно делать очень быстро, много и на большом объеме данных. Хибер не в состоянии это закэшировать, просто нет таких алгоритмов. Он хорошо справляется с поиском по ключу, но сложнее — проходит мимо. Лучше взять инструмент проще и эффективнее, например mybatis, и получить то, что мне нужно, сразу и без танцев. МСУНо так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом. Ну ты уж определись, тебе чтобы код быстрее писать, или чтобы написанный код быстрее работал. Иногда приходится чем-то жертвовать. Селекты бывают рутинные только если ты работаешь с таблицами данных по типу простых CRUD по ключу, и это не обязательно должно работать сверхбыстро. Тут да, я уже писал, ORM пожалуйста. Ну а в остальных случаях те же селекты, фром, вэрэ, куда ж без них :) но уже в других ракурсах. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Enomayиспользуя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете. Я не очень понимаю, как ты представляешь себе архитектуру приложения с ORM и без? Почему, если нет ORM, то обязательно все будет раскидано по разным частям кода? Ну вот просто как-то не понимаю :) Enomayиспользуя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект. а с ORM, если нужно делать выборки по динамическим критериям, не нужно будет писать динамический запрос на одном из этих самых языков запросов? sql-подобный как в хибернейте или какие-нибудь конструкторы критериев? это не как АД выглядит? :) что за предрассудки? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:18 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонViPRosкусок соственной проги со всеми приблудами кто нить покажет? или вы все работаете в цру? Вот вам, маленький запросик которых в приложении сотни. Конечно вы его протестировали в студии, посмотрели план, и так каждый раз после любого изменения. Эффективно.. :) Парамоша, в ВИПРОС вся эта фигня генерируется и кешируется при изменении чего нить кеш проверяется на валидность и приводится в нужный вид если возможно или метится как говно (это по части СКЛ запросов = виртуальные типы) потом проверяются методы использующие данный тип и т.д. а воще все делатеся наоборот - из метаданных генерируются БД и запросы(виртуальные типы - вью) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:18 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыEnomayиспользуя ORM, я пропишу это условие в одном месте и все запросы будут работать правильно. в вашем случае вы будете тупым поиском пересматривать все текстовые запросы и хранимые процедуры. а если добавится еще условие? будете лазить еще и еще. при этом нет никакого контроля, что вы не сломали нигде ничего. ведь тестами это покрыть вы не можете. Я не очень понимаю, как ты представляешь себе архитектуру приложения с ORM и без? Почему, если нет ORM, то обязательно все будет раскидано по разным частям кода? Ну вот просто как-то не понимаю :) Enomayиспользуя ORM, я могу наследовать логику, а значит и запросы к базе. в вашем случае, вам придется использовать динамический SQL, который привнесет дополнительный ад в проект. а с ORM, если нужно делать выборки по динамическим критериям, не нужно будет писать динамический запрос на одном из этих самых языков запросов? sql-подобный как в хибернейте или какие-нибудь конструкторы критериев? это не как АД выглядит? :) что за предрассудки? Если под динамическими критериями подразумевается то что запрос меняется в зависимости от условий то на LINQ это спокойно пишется без SQL, Entitu SQL , etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchЕсли под динамическими критериями подразумевается то что запрос меняется в зависимости от условий то на LINQ это спокойно пишется без SQL, Entitu SQL , etc. да спасибо что глаза открыл, я этого и не отрицал. Я говорил что выглядит это по сути так же как составление динамического запроса на sql. Так что аргумент Enomay про какие-то там сложности мне не очень понятен. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchЕсли под динамическими критериями подразумевается то что запрос меняется в зависимости от условий то на LINQ это спокойно пишется без SQL, Entitu SQL , etc. да спасибо что глаза открыл, я этого и не отрицал. Я говорил что выглядит это по сути так же как составление динамического запроса на sql. Так что аргумент Enomay про какие-то там сложности мне не очень понятен. Нет, это выглядит совершенно по другому.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
кстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыкстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной. Тупой вариант switch-case по названию полей не рассматривать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:52 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыВ хибере очень много всего, что нужно можно настроить, чтобы заработало Имхо, так правильней. Лейтмотивом версии 3.2 можно считать "Меньше настроек, больше дела." зыНапример, мне нужно делать выборки актуальных данных по вроде бы простым динамическим критериям. Нужно делать очень быстро, много и на большом объеме данных. Хибер не в состоянии это закэшировать, просто нет таких алгоритмов. Он хорошо справляется с поиском по ключу, но сложнее — проходит мимо. Лучше взять инструмент проще и эффективнее, например mybatis, и получить то, что мне нужно, сразу и без танцев. Вы часом не OLAP на хибер пытались навесить? Может быть пример очень быстро, много и на большом объеме данных приведёте? А то похоже на ситуацию "выбери любых два пункта" Да и проекции в хибере никто не отменял, и выполняются они намного быстрее работы с сущностями. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchНет, это выглядит совершенно по другому.) а что другого-то? ты правде в глаза погляди, решение проблемы на большинстве предлагаемых инструментов выглядит одинаково +- пара букв. http://www.mybatis.org/core/statement-builders.html и хреначь в свое удовольствие. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 21:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorВы часом не OLAP на хибер пытались навесить? Может быть пример очень быстро, много и на большом объеме данных приведёте? А то похоже на ситуацию "выбери любых два пункта" Да и проекции в хибере никто не отменял, и выполняются они намного быстрее работы с сущностями. нет, упаси меня от olap и кубов. Какой конкретный пример? Любой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров. Хотел привести социальную сеть, но неразумно — там можно много и яростно кэшировать и актуальность там не критична. Пусть будет какой-нибудь сервис для совместной работы людей над XXX в реальном времени. Выборки включают фильтрацию по правам, коллекциям и атрибутам XXX для отображения данных конкретному пользователю. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchНет, это выглядит совершенно по другому.) а что другого-то? ты правде в глаза погляди, решение проблемы на большинстве предлагаемых инструментов выглядит одинаково +- пара букв. http://www.mybatis.org/core/statement-builders.html и хреначь в свое удовольствие. А если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия? Код: java 1. 2. 3. 4. 5. 6.
Linq: Код: c# 1. 2. 3. 4. 5. 6.
Прям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыЯ не очень понимаю, как ты представляешь себе архитектуру приложения с ORM и без? Почему, если нет ORM, то обязательно все будет раскидано по разным частям кода? Ну вот просто как-то не понимаю :) Обычно если человек использует ORM, то как правило вся логика работы с данным сконцентрирована в одном слое - DAL. Та же ситуация может быть и при использовании SQL запросов, прописанных в коде. Другое дело когда мы начинаем примазывать тут использование хранмых процедур. Тут уже отследить где какая выборка, становится сложнее. Хранимые могут вызываться другими хранимыми и так далее. Проблема в том, что DAL слой с ORM при поддержке современных IDE очень легко поддерживать, рефакторить. зыа с ORM, если нужно делать выборки по динамическим критериям, не нужно будет писать динамический запрос на одном из этих самых языков запросов? sql-подобный как в хибернейте или какие-нибудь конструкторы критериев? это не как АД выглядит? :) что за предрассудки? опять же, это будет тестируемо и как минимум будет содержать значительно меньше синтаксических ошибок, в силу строгой типизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:10 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, даже не близко ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:13 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Ответ на ваш вопрос про поле по названию: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, даже не близко Браво, правда это был сарказм. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, даже не близко Если вы насчет оператора like то мне просто было не интересно искать его реализацию кроме показанной выше на 2 поста) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыфуфуфу. конечно нет IQueriable творит чудеса. в купе с extension и спецификациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchViPRosLelouch, даже не близко Браво, правда это был сарказм. да какой нафиг сарказм хардкод детектед ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchОтвет на ваш вопрос про поле по названию: Код: c# 1. 2.
а вот это уже недалко от датасет :):) можно и покруче ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchпропущено... Браво, правда это был сарказм. да какой нафиг сарказм хардкод детектед То есть это: Код: java 1. 2. 3. 4. 5. 6.
не хардкод, а это: Код: c# 1. 2. 3. 4. 5. 6.
хардкод?) P.S. Отвечали не Вам) P.P.S. Идите Generic'и пробуйте, потом напишите эссе о их ужасной производительности) Я прочту) Честно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchА если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия? а если я с головой не дружу, компьютер мне поможет? :) в linq ты не можешь случайно переставлять все подряд местами, иначе получится что из базы выходит все, а фильтрует приложение. LelouchПрям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?) Я уже писал выше свое отношение к смене сервера, нужно следить за дискуссией. Так что если нужен nosql, я буду сразу на нем писать. Кстати mybatis поддерживает только sql, впрочем как и linq to sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouchОтвет на ваш вопрос про поле по названию: Код: c# 1. 2.
а вот это уже недалко от датасет :):) можно и покруче До датасета как до луны) Точнее датасету до этого))) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchА если я в этом инструменте сначала вызову метод Where а потом Join? он переместит строку Join выше условия? а если я с головой не дружу, компьютер мне поможет? :) в linq ты не можешь случайно переставлять все подряд местами, иначе получится что из базы выходит все, а фильтрует приложение. LelouchПрям одно и тоже, особенно с типизацией и возможностью обработки noSQL (для EF достаточно найти провайдера. а для этой библиотеки что?) Я уже писал выше свое отношение к смене сервера, нужно следить за дискуссией. Так что если нужен nosql, я буду сразу на нем писать. Кстати mybatis поддерживает только sql, впрочем как и linq to sql. В EF могу, генерация SQL не зависит от построения LINQ запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:27 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыЛюбой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров Если у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:30 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorзыЛюбой публичный сервис, задача которого — обрабатывать выборки хотя-бы со скоростью пару десятков тысяч запросов в секунду по базе размером, ну пусть от 50гигабайт, уже лучше давно пора начать избавлять от хибернейта и прочих монстров Если у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет. да ладно ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayДругое дело когда мы начинаем примазывать тут использование хранмых процедур. Тут уже отследить где какая выборка, становится сложнее. Хранимые могут вызываться другими хранимыми и так далее. Проблема в том, что DAL слой с ORM при поддержке современных IDE очень легко поддерживать, рефакторить. Что, использование ORM уже запрещает использование хранимок? Не использование ORM говорит о том, что все написано на хранимках? Что за стереотипы. Enomayопять же, это будет тестируемо и как минимум будет содержать значительно меньше синтаксических ошибок, в силу строгой типизации. чтобы что-то было тестируемо, нужно заложить это в архитектуру. Три буквы в аббревиатуре не делают из говна конфетку. А поскольку тестировать можно много чего, будем считать что синтаксические ошибки тоже тестируемы, я выше уже писал МСУ, иногда нужно чем-то жертвовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, 1. чистой воды хардкод 2. Датаадаптер так и работает в принципе 3. когда я писал дженерик код через alter на коболе ты под стол пешком ходила ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchОтвет на ваш вопрос про поле по названию: превосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зы я выше уже писал МСУ, иногда нужно чем-то жертвовать. лучше МСУ и другими кодерами ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchВ EF могу, генерация SQL не зависит от построения LINQ запроса. и даже groupby можно куда угодно всунуть? ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorЕсли у вас 20к запросов в секунду - то NHibernate не самая большая ваша проблема. :) Ни один сервер БД не выдержит такой нагрузки. Это один фиг распределённая система, никакой ACID там и в помине не будет. да ладно, вот тут 11861435 ребята и 750k выжимали ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, 1. чистой воды хардкод 2. Датаадаптер так и работает в принципе 3. когда я писал дженерик код через alter на коболе ты под стол пешком ходила Во-первых, я мужского пола - не "дружочек" или как вы там меня назвали я вам просто по причине того, что для начала мы не знакомы. Во-вторых, удачи и дальнейшего удовольствия общения с чудо-платформой випрос, позволяющей строить только 2х-звенные решения только на WinForms. Интересно, а то что МС вот уже как лет 5 от их разработки отказалась вас не смутило? В-третьих, приведите, наконец, пример работы с Вашими метаданными, чтобы мы пали ниц перед пример НЕ хардкода.) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, 1. аааа, извини, не въехал, дмуал раз не друг, то подруга (ну не враг же) 2. випрос тут не при чем, просто я пытаюсь сказать что КЛАСС в коде = ХАРДКОД проблемной области, что = Монументальная прога, мертворожденная и предлагаю конфигурировать класс(метаданные) вне кода, а в коде только интерпретировать. 3. счас я к удовльствию некоторых дома (я гастарбайтер в москоу, но живу в орле) и випрос тут принципиально не установлена вот приеду где то в >20 числа и если не забудешь то покажу, как строятся метаданные, как генерируются персистентные и виртуальные типы, как интерпретируется и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:48 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchВ EF могу, генерация SQL не зависит от построения LINQ запроса. и даже groupby можно куда угодно всунуть? ;) После groupby доступен только ключ в дальнейших запросах) Но, да, можно. Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
мы кажется отвлеклись от сути. давайте опишем проблему и её, так сказать, оптимальные решения. поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
мс ни от чего не отказался мс решает свои внутренные проблемы, то ей нужен что то типа линк, то дженерики ТОЛЬКО для коллекций, то ОРМ для М, то ТПЛ для ХНА и т.д. и она всю эту побочную фигню пуляет в мсдн а кодеры жрут ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:51 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зынет, упаси меня от olap и кубов. Фигасе. А ну-ка расскажи, как ты по большим объемам отчеты снимаешь? По боевой базе? Или с большими объемами не работаешь? зыкстати напиши мне без стороннего кода условие where с поиском по названию поля, переданному как аргумент, на linq да ладно, можешь не писать, суть надеюсь понял. Задача стара как боян и существует с момента появления самого linq, и вроде как самой библиотекой она так и осталась нерешенной. Что за детский сад, зы? DLINQ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, про то и ратуем, но это не столбовая дорога мс, а просто пример ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 22:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Enomayмы кажется отвлеклись от сути. давайте опишем проблему и её, так сказать, оптимальные решения. поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее. проблема простая, я считаю, что вот это хардкод и что никакой гарнитии нет,что это фиговина будет работать, хотя и прокомпилируется Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosEnomayмы кажется отвлеклись от сути. давайте опишем проблему и её, так сказать, оптимальные решения. поставим задачу и попытаемся её решить. а там посмотрим, что оптимальнее. проблема простая, я считаю, что вот это хардкод и что никакой гарнитии нет,что это фиговина будет работать, хотя и прокомпилируется Код: c# 1. 2. 3. 4. 5.
Поверьте, я проверил. Будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, пусть и он проверит :) неужто не доходит простая мысль? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зайди в БД и замени key на GUID и попробуй запусти еще раз компиляцию? есть ошибки? теперь запусти есть ошибки? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosзайди в БД и замени key на GUID и попробуй запусти еще раз компиляцию? есть ошибки? теперь запусти есть ошибки? 1. Если обновить модель то будет ошибка) а L2S по-моему даже вылетит на создании контекста. 2. Key это поле после group by, его нет в таблице если что. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыда ладно, вот тут 11861435 ребята и 750k выжимали Хм. Они конечно пошли дальше... Они отказались от SQL и много чего еще... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыбольшинство проектов, о которых я знаю, либо никогда не меняли базу, либо делали это исключительно ради оптимизации (например, переход с sql на nosql). Речь не о "случайном" изменении базы, а о подобной возможности. Я учавствовал в проектах, в которых заложена поддержка различных БД (Oracle, MS SQL). И это круто. Как будешь решать такую задачу, дублировать дата-слой под каждую БД? зыНельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости. Можно. И скорость тут не причем. зыТак что ИМХО смена базы — проблема и, соответственно, выгода, сильно надуманы. Это реальность, зы, с которой ты просто не сталкивался. зыДа, ты сейчас скажешь что ORM позволит оставить бОльшую часть кода как есть, но тот же переход sql->nosql требует заодно и смены подхода к работе с данными. И это тоже. SQL vs NOSQL - разные подходы, сомневаюсь, что такой переход возможен. Давай возьмем лучше Oracle и MSSQL, самые распространенные корпоративные сервера. Переход безболезненный. Без ORM это практически невозможно. зыА количество кода, которое необходимо будет переписать, зависит не от факта использования ORM, а от наличия первоначальной абстракции DAL и BL. Абстракция изначально заложена в движок ORM. Наличие провайдера даст возможность генерировать "свой" SQL. Вот и вся абстракция. По кол-ву таких абстракций (кол-во поддерживаемых СУБД) хибер - лидер. зыВ хибере очень много всего, что нужно настроить, чтобы заработало. Более высокий порог вхождения. Та я тебя умоляю, проще пареной репы :) Посложнее, конечно, чем L2S, но не до базрассудства. зыА если внезапно начнет глючить в неумелых руках, то ошибки можно искать долго и упорно. Зы, не аргумент. Неумелым рукам и мороженое противопоказано, подавится и умрет. зыОсобенно коварны транзакции и кэш. В некоторых случаях кэш вообще нафиг не нужен, а он есть. Зы, ну вот что ты фантазируешь, а? ;) зыА если несколько серверов — появляется ещё и проблема репликации кэша. Ты имеешь ввиду, если несколько нод в кластере. Так вот пишется либо свой балансировщик, либо вынос кеша на слой БД. Второе проще. Это как встроенная возможность хранения ASP.NET сессии в БД для такой кластерной архитектуры. Ничего сложного. зыЯ не говорю что это отмазки ламеров чтобы не использовать. Пожалуйста, если это все нужно и умеешь работать. Но если нет — то хибер крайне избыточен и потери CPU внутри на все перделки при большой нагрузке становятся сильно заметны. Если не умеешь водить - не садись, мне не нравятся такие аргументы. Хибер не сложен, верь мне. зыНапример, мне нужно делать выборки актуальных данных по вроде бы простым динамическим критериям. Нужно делать очень быстро, много и на большом объеме данных. Хибер не в состоянии это закэшировать, просто нет таких алгоритмов. Он хорошо справляется с поиском по ключу, но сложнее — проходит мимо. Лучше взять инструмент проще и эффективнее, например mybatis, и получить то, что мне нужно, сразу и без танцев. На больших наборах только OLAP поможет. Для поиска - полнотекст. Другого не дано. Какие размеры для тебя большие? Для меня - несколько терабайт (разумеется, никаких блобов). зыНу ты уж определись, тебе чтобы код быстрее писать, или чтобы написанный код быстрее работал. Иногда приходится чем-то жертвовать. В том-то и дело, что то и другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosмс ни от чего не отказался мс решает свои внутренные проблемы, то ей нужен что то типа линк, то дженерики ТОЛЬКО для коллекций, то ОРМ для М, то ТПЛ для ХНА и т.д. и она всю эту побочную фигню пуляет в мсдн а кодеры жрут ты для чего эту бессмысленную фигню тут написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosLelouch, пусть и он проверит :) неужто не доходит простая мысль? какая мысль? обычный составной запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchViPRosзайди в БД и замени key на GUID и попробуй запусти еще раз компиляцию? есть ошибки? теперь запусти есть ошибки? 1. Если обновить модель то будет ошибка) а L2S по-моему даже вылетит на создании контекста. 2. Key это поле после group by, его нет в таблице если что. ну тогда о какой строгой типизации речь? и нафига столько гемора, если все равно Ашибка гарантирована? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosзайди в БД и замени key на GUID А если полить бензином сервер с БД и поджечь, работать будет? Странное занятие, так просто менять типы в хранилище. Найми себе хорошего проектировщика DBD и освободи свою жизнь от создания схемы данных. P.S. Сахават, хватит откровенно гнать. Уже не смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosзайди в БД и замени key на GUID и попробуй запусти еще раз компиляцию? есть ошибки? теперь запусти есть ошибки? что за фигня? в бд поменяли и нигде больше не меняли? так при таком подходе оно упадёт при любом подходе. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:23 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
EnomayМСУ Но так или иначе, самое ценное в ORM - это типизация хранилища, как следствие родной человеческий интелиссенс, с которым одно удовольствие работать. Рутинные же SELECT FROM WHERE в прошлом. на самом деле самое ценное в ORM - это возможность работать с объектами, а не строками в таблицах. это существенно при использовании ООП. Ну а я что сказал? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:30 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУViPRosзайди в БД и замени key на GUID А если полить бензином сервер с БД и поджечь, работать будет? Странное занятие, так просто менять типы в хранилище. Найми себе хорошего проектировщика DBD и освободи свою жизнь от создания схемы данных. P.S. Сахават, хватит откровенно гнать. Уже не смешно. Муся, я ниче не гоню. Я задал 2 вопроса по просбе Еномая 1. про хардкод 2. строгую типизацию и жду ответа ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorХм. Они конечно пошли дальше... Они отказались от SQL и много чего еще... Ну вот как раз от sql не отказывались, прочитай внимательней. Просто некоторые кейсы, которые нужно было оптимизировать, реализовали напрямую. Но тут дело даже не в этом, там сравнивается с тем, сколько может выдавать простая база на простом железе, а это больше 20k. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУА ну-ка расскажи, как ты по большим объемам отчеты снимаешь? По боевой базе? Или с большими объемами не работаешь? Данила, проснулся и сразу в бой :) Зачем мне рассказывать о том, чем я не занимаюсь? МСУЧто за детский сад, зы? DLINQ Это же уже обсудили, нужно было перечитать топ вначале, раз отстал на пару страниц. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:50 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыДанила, проснулся и сразу в бой :) Если бы :) С работы приехал, все праздники похерились... зыЗачем мне рассказывать о том, чем я не занимаюсь? Ок. Просто меня смутило, как ты стал открещиваться от олапов. зыЭто же уже обсудили, нужно было перечитать топ вначале, раз отстал на пару страниц. Хм, вроде всё прочитал. Видел предложили штатными средстами разрулить, я предложил более гибкий DLINQ - вещь! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2012, 23:57 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Пойду-ка я спать, завтра зайду - чую зы ответную херачит на пергаменте ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыНу вот как раз от sql не отказывались, прочитай внимательней. Просто некоторые кейсы, которые нужно было оптимизировать, реализовали напрямую. Отказались. Работает только в режиме поиска по ключу, вот и результаты близки к memcached (хотя и опережают его). Хотя я не отрицаю того факта, что совместная работа с SQL по-прежнему возможна. зыНо тут дело даже не в этом, там сравнивается с тем, сколько может выдавать простая база на простом железе, а это больше 20k. Вернуть три поля, по ключу, когда вся БД в памяти - ОК, может. А как насчёт другой работы: Insert, update, delete, транзакции на несколько таблиц... Ляжет он на пару-тройку порядков раньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУРечь не о "случайном" изменении базы, а о подобной возможности. Я учавствовал в проектах, в которых заложена поддержка различных БД (Oracle, MS SQL). И это круто. Как будешь решать такую задачу, дублировать дата-слой под каждую БД? зыНельзя тупо поменять базу, ничего не поменять в коде и получить +500% в скорости. Можно. И скорость тут не причем. Ну отлично. Когда мне нужно будет решать эту задачу — я этим займусь :) Я с самого начала преложил отойти от сферического коня в вакууме, потому что его обсуждение бессмысленно. Иногда быстрее и эффективнее написать решение конкретной проблемы, не стараясь заложить в неё все возможные юскейсы, подстилки и прочую бутафорию. Это все стоит денег и отнимает время, а на конкуретном рынке нет ни того ни другого. Возьми вконтакт, например. Даже имея предмет прямого копирования, они занимались с самого начала такой ерундой, как полная абстракция от хранилища данных? Да они бы таким образом не взлетели. МСУИ это тоже. SQL vs NOSQL - разные подходы, сомневаюсь, что такой переход возможен. Давай возьмем лучше Oracle и MSSQL, самые распространенные корпоративные сервера. Переход безболезненный. Без ORM это практически невозможно. Зачем переходить с oracle на mssql и обратно? Забыли, что понадобится новая фича, которая есть в другом сервере? Или лицензия закончилась? Или разница между ними в +500% производительности на тех же данных с теми же запросами? А вот переход на nosql — возможная реальность, на mongodb много case studies, почитай. МСУзыА если внезапно начнет глючить в неумелых руках, то ошибки можно искать долго и упорно. Зы, не аргумент. Неумелым рукам и мороженое противопоказано, подавится и умрет. Да поверь, на проде в безобидных местах под нагрузкой начинались такие необъяснимые финты с пулом и прочими внутренностями, что пришлось в срочном порядке выпиливать нафиг, благо он там не сильно нужен был. Я конечно не уверен в идеальной прямости рук программистов, но я уверен в том, что это достаточно умные люди. На форумах коммьюнити встречались такие же случаи, но без ответа. Хибернейт — это очень большой и очень черный ящик. А, как известно, надежность систем уменьшается с возрастанием их сложности. МСУзыОсобенно коварны транзакции и кэш. В некоторых случаях кэш вообще нафиг не нужен, а он есть. Зы, ну вот что ты фантазируешь, а? ;) фантазирую о чем? уточни МСУТы имеешь ввиду, если несколько нод в кластере. Так вот пишется либо свой балансировщик, либо вынос кеша на слой БД. Второе проще. Это как встроенная возможность хранения ASP.NET сессии в БД для такой кластерной архитектуры. Ничего сложного. 1) зачем писать свой балансировщик для монстра, если можно просто поднять скорость выкинув монстра? все дело в конкретной проблеме. Тем более что ты говоришь об этом, как будто описанная тобой задача - как два пальца обоссать. 2) да, кэшировать в БД, чтобы быстрее делать выборки из БД — это самое оно. МСУЕсли не умеешь водить - не садись, мне не нравятся такие аргументы. Хибер не сложен, верь мне. как только ты накрутишь в нем все дополнительные фишки, раскидаешь настройки по конфигам — он будет очень сложным. Я не знаю, может под .net его как-то упростили или недоделали, что ты в нем так уверен, он ведь из явы пришел. Ну и не нравятся аргументы — пожалуйста, кушай наздоровье, я ж не настаиваю МСУНа больших наборах только OLAP поможет. Для поиска - полнотекст. Другого не дано. Какие размеры для тебя большие? Для меня - несколько терабайт (разумеется, никаких блобов). божеж ты мой, зачем ты приплел сюда OLAP и полностекст? я тут 11871560 привел конкретный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУЕсли бы :) С работы приехал, все праздники похерились... а я проболел, так что разделяю похеренные праздники МСУХм, вроде всё прочитал. Видел предложили штатными средстами разрулить, я предложил более гибкий DLINQ - вещь! да вот буквально тут вроде поставили точку 11871672 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SolYUtorОтказались. Работает только в режиме поиска по ключу, вот и результаты близки к memcached (хотя и опережают его). Хотя я не отрицаю того факта, что совместная работа с SQL по-прежнему возможна. да нененене, может мы разное читали? там ясно написано что для всех остальных запросов идет через обычный sql, а для самых быстрых - напрямую. Поэтому они и рады. И мемкэш выкинули, и от скуля не отказались. SolYUtorВернуть три поля, по ключу, когда вся БД в памяти - ОК, может. А как насчёт другой работы: Insert, update, delete, транзакции на несколько таблиц... Ляжет он на пару-тройку порядков раньше. да не спорю, просто обычно производительность измеряют на чтениях (ну или показах страниц) — все-таки показывать надо чаще, чем изменять. Ну и опять, все зависит от конкретики... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:19 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchОтвет на ваш вопрос про поле по названию: превосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе. Это не SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:19 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Это предикат написанный в форме строки. P.S. Впилите кнопку редактирования >< ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchЭто предикат написанный в форме строки. P.S. Впилите кнопку редактирования >< неважно, если подразумевать истинное значение аббревиатуры — это очередная разновидность sql, которая зашита в строку и падает только во время выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchЭто предикат написанный в форме строки. P.S. Впилите кнопку редактирования >< неважно, если подразумевать истинное значение аббревиатуры — это очередная разновидность sql, которая зашита в строку и падает только во время выполнения. Ок, 1 из 100 запросов упадет только во время выполнения. Это весомая причина делать оставшиеся 99 такими же... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchОк, 1 из 100 запросов упадет только во время выполнения. Это весомая причина делать оставшиеся 99 такими же... да мы можем до утра спорить :) весомая причина в выборе инструмента тут может быть только одна — требуемая производительность. А аргументов без конкретной задачи у нас обоих нет. И мне кажется мы отклонились от сути в детали. Интересную книгу недавно читал о психологии "thinking, fast and slow". Там было хорошее наблюдение — при попытке ответить на сложный вопрос, если у вас нет ответа сразу, то человек склонен заменить его на более простой, на который у него есть ответ. Такая подмена зачастую подменяет предмет вопроса и остается незамеченной, но в результате данный ответ скорее всего неверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:32 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыLelouchОк, 1 из 100 запросов упадет только во время выполнения. Это весомая причина делать оставшиеся 99 такими же... да мы можем до утра спорить :) весомая причина в выборе инструмента тут может быть только одна — требуемая производительность. А аргументов без конкретной задачи у нас обоих нет. И мне кажется мы отклонились от сути в детали. Интересную книгу недавно читал о психологии "thinking, fast and slow". Там было хорошее наблюдение — при попытке ответить на сложный вопрос, если у вас нет ответа сразу, то человек склонен заменить его на более простой, на который у него есть ответ. Такая подмена зачастую подменяет предмет вопроса и остается незамеченной, но в результате данный ответ скорее всего неверен. Ок, отвечу на более сложный - я при встрече с такой ситуацией напишу switch case по имени колонки, благо набор столбцов множество конечное (Но кстати я с такой ситуацией, когда надо использовать столбец по его названию еще ни разу не столкнулся) Это позволит остаться в рамках строгой типизации и проверки при компиляции, не сильно увеличив код (столбцов до 10 уж точно). Я вообще-то всего лишь ответил на Ваш вопрос о возможности, но нигде не написал что сделаю так. P.S. То средство построение SQL которое привели вы - костыль, к тому же плохо написанный. Даже в древней программе фирмы где я работаю, написанной на делфи + FB, похожий костыль хотя бы сам умел впихивать Join раньше Where, а order после where (чисто как пример) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:49 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыЯ с самого начала преложил отойти от сферического коня в вакууме, потому что его обсуждение бессмысленно. То есть как это бессмысленно? Это достоинство ORM. Могу напомнить название сабжа. зыИногда быстрее и эффективнее написать решение конкретной проблемы, не стараясь заложить в неё все возможные юскейсы, подстилки и прочую бутафорию. Это все стоит денег и отнимает время, а на конкуретном рынке нет ни того ни другого. Стоп. Никто просто так закладывать такие возможности не будет. У одной компании при внедрении нашего софта - Oracle, у другой лицензия MS SQL, у третьей DB2. А теперь представь себе потери, если мы заложились только под сиквел. Система вида корпоративного документооборота + биллинговые педали со всевозможными вытекающими. Как правило, в биллинге обычно оракуль, в документообороте сиквел или оракуль. Опять будешь говорить - ситуация надуманная? зыВозьми вконтакт, например. Даже имея предмет прямого копирования, они занимались с самого начала такой ерундой, как полная абстракция от хранилища данных? Да они бы таким образом не взлетели. Возьми, например, 1С, Documentum, SAP, ... Эти системы не завязываются на один вид БД. Они смотрят вдаль и в свой кошелек. зыЗачем переходить с oracle на mssql и обратно? Выше всё объяснил. зыЗабыли, что понадобится новая фича, которая есть в другом сервере? Или лицензия закончилась? Или разница между ними в +500% производительности на тех же данных с теми же запросами? Насчет фичей - придется обломиться. Либо написать отдельные плагины для таких фич. В качестве архитектурного подхода рекомендую рассмотреть MEF. Загружай фичи конкретной СУБД и радуйся. Если без этого никак. зыДа поверь, на проде в безобидных местах под нагрузкой начинались такие необъяснимые финты с пулом и прочими внутренностями, что пришлось в срочном порядке выпиливать нафиг, благо он там не сильно нужен был. Я конечно не уверен в идеальной прямости рук программистов, но я уверен в том, что это достаточно умные люди. Ну мы щас говорим о средней температуре по больнице. Никакой конкретики и сути. Что-то там было, а что было - фиг знает. Ну сам понимаешь, ничего сказать не могу тут. Могу погадать, разве что, на кофе :) зыНа форумах коммьюнити встречались такие же случаи, но без ответа. Хибернейт — это очень большой и очень черный ящик. А, как известно, надежность систем уменьшается с возрастанием их сложности. Ну кто ж тебя так хибером напугал, зы? ;) Не бойся ты так. Всё там стабильно работает, данная ORM не первый год замужем. зыфантазирую о чем? уточни Обо всём, что я зацитировал. зы1) зачем писать свой балансировщик для монстра, если можно просто поднять скорость выкинув монстра? все дело в конкретной проблеме. Тем более что ты говоришь об этом, как будто описанная тобой задача - как два пальца обоссать. 2) да, кэшировать в БД, чтобы быстрее делать выборки из БД — это самое оно. 1. А в чем сложность его написать? Можешь вообще в отдельном облаке хостить свои кеши. 2. Не для больших наборов, только для общего хранения. С сессией тоже так сделать можно, не написав строчки кода. 3. Кстати, чем не нравится вариант кеширования на каждой ноде в кластере? Вообще ни строчки кода. зыЯ не знаю, может под .net его как-то упростили или недоделали, что ты в нем так уверен, он ведь из явы пришел. Ну и не нравятся аргументы — пожалуйста, кушай наздоровье, я ж не настаиваю Ну если не знаешь, зачем в спич полез? ) зыбожеж ты мой, зачем ты приплел сюда OLAP и полностекст? я тут 11871560 привел конкретный пример. Как зачем, ты ж сам первый начал. авторпревосходно, но это же вставка чистого SQL без проверок в compile time :) не нужно себе противоречить, и раз уж допускаешь исключения, то допускай их везде, в том числе на самом высоком уровне — в подходе. Ты же сам захотел динамику - поэтому без проверки. Типизированной динамики не бывает ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 00:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУСистема вида корпоративного документооборота + биллинговые педали со всевозможными вытекающими. Как правило, в биллинге обычно оракуль, в документообороте сиквел или оракуль. Опять будешь говорить - ситуация надуманная? Данила, я скажу то, что говорил с самого начала — ситуация конкретная, кушай ORM наздоровье. Следующие 5 цитат сразу скипну, потому что они не добавляют ничего нового, та же самая жвачка. МСУНу кто ж тебя так хибером напугал, зы? ;) Не бойся ты так. я просто боюсь сложных вещей, если я вижу что-то сложное, мне сразу кажется, что это можно сделать проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 01:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыя просто боюсь сложных вещей, если я вижу что-то сложное, мне сразу кажется, что это можно сделать проще. Реально, кроме шуток, скачай себе последний хибер, открой пару блогов для стартапа и создай тестовый проект на чистом hbm. Проникнись хибером пару тройку дней. Обещаю, тебе очень понравится этот инструмент. Потом копни глубже, покури разные там флюенты, HILO, сложные мапы типа hierarchy mapping, сложные детачи и критерии, кастомные subquery с кастомными трансформаторами и иже. Хибер - это вещь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 01:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, это мишура, фантики, доп.опции для авто. Обычно хочется всего и сразу, просто потому что оно есть и доступно. перефразируя 11872177 на тебя. Перед тобой ставят абстрактный вопрос — лучше использовать ORM или работать напрямую? Правильный ответ — "не знаю", потому что у абстрактного вопроса задача так же абстрактна. Но ты подсознательно формулируешь для себя новый вопрос "нравится ли мне работать напрямую? — нет. Нравится ли мне ORM? — да", и отвечаешь, что нужно использовать ORM полюбому, хотя уже исходный вопрос был заменен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 01:33 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зыМСУ, это мишура, фантики, доп.опции для авто. Обычно хочется всего и сразу, просто потому что оно есть и доступно. В том-то и дело, что ORM - это всё и сразу. Но дело твоё. зылучше использовать ORM или работать напрямую? Правильный ответ — "не знаю", потому что у абстрактного вопроса задача так же абстрактна. Но ты подсознательно формулируешь для себя новый вопрос "нравится ли мне работать напрямую? — нет. Нравится ли мне ORM? — да", и отвечаешь, что нужно использовать ORM полюбому, хотя уже исходный вопрос был заменен. Да, нужно использовать ORM полюбому. Только так. Даже для тех же мемкешей есть свои порты в виде отдельного провайдера. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 01:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
зы Но ты подсознательно формулируешь для себя новый вопрос "нравится ли мне работать напрямую? — нет. Нравится ли мне ORM? — да", и отвечаешь, что нужно использовать ORM полюбому, хотя уже исходный вопрос был заменен. А другого ответа быть не может. Поколение Пепси выбирает ORM, тк sql не знают и знать не хотят. Поэтому на голубом глазу показывают совершенно уродский запрос и при всем желании ничего другого сделать не смогут. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 12:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosПарамоша, в ВИПРОС вся эта фигня генерируется и кешируется при изменении чего нить кеш проверяется на валидность и приводится в нужный вид если возможно или метится как говно (это по части СКЛ запросов = виртуальные типы) потом проверяются методы использующие данный тип и т.д. В отличие от вас я вижу это уже в процессе набора кода ) ViPRosа воще все делатеся наоборот - из метаданных генерируются БД и запросы(виртуальные типы - вью) EF Code First - просто и чисто. Понять так и не хотим что таблица это уже типизированная сущность, но ее типы мы просто переводим в - c#, можно и на оборот, в зависимости была у нас готовая база или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 12:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa Поколение Пепси выбирает ORM, тк sql не знают и знать не хотят. Изучение ORM как раз нужно начинать с SQL, чтобы понять что происходит и зачем. В программах с чувствительной точностью и корректировкой в реальном времени переходят на машинный код, и здесь в узких местах переход на SQL никто не запрещает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 13:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонViPRosПарамоша, в ВИПРОС вся эта фигня генерируется и кешируется при изменении чего нить кеш проверяется на валидность и приводится в нужный вид если возможно или метится как говно (это по части СКЛ запросов = виртуальные типы) потом проверяются методы использующие данный тип и т.д. В отличие от вас я вижу это уже в процессе набора кода ) ViPRosа воще все делатеся наоборот - из метаданных генерируются БД и запросы(виртуальные типы - вью) EF Code First - просто и чисто. Понять так и не хотим что таблица это уже типизированная сущность, но ее типы мы просто переводим в - c#, можно и на оборот, в зависимости была у нас готовая база или нет. Просто и чисто не было и быть не может, тк объекты и нормализованные таблицы - две большие разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 13:33 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaтк объекты и нормализованные таблицы - две большие разницы. Это одна сущность, с которой удобней работать используя .NET фремворк + C# а не извращатся с хранимками, затем кидать данные в жалкий датасет и снова преобразовывать типы для правильных вычислений уже в приложении. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 14:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонSeVaтк объекты и нормализованные таблицы - две большие разницы. Это одна сущность, с которой удобней работать используя .NET фремворк + C# а не извращатся с хранимками, затем кидать данные в жалкий датасет и снова преобразовывать типы для правильных вычислений уже в приложении. Бред ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 14:33 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaПарамонпропущено... Это одна сущность, с которой удобней работать используя .NET фремворк + C# а не извращатся с хранимками, затем кидать данные в жалкий датасет и снова преобразовывать типы для правильных вычислений уже в приложении. Бред Согласен, С..а. Извращение с хранимками и датасетами полный бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 21:03 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Под бредом Сева подразумевал поток мыслей гражданина, это же очевидно. Поддакиваешь тому, что сам придумал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 21:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Не аргументированный ответ (мычание) в стиле Севы - жалкий немощный пук в кустах, а не постановка речи. P.S. А в чём сознание гражданина не кореллирует с действительностью? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 22:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
в стереотипах. я на протяжении трех страниц пытался донести неокрепшим дегенеративным умам ничтожность хода их мыслей, но, к сожалению, переоценил свои силы. за сим раскланиваюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 22:18 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Стереотипы часто стираются, особенно у неокрепших. Я на протяжении более десятка страниц пытался донести неокрепшим дегенеративным умам ничтожность хода их мыслей, но, к сожалению, переоценил свои силы. Но не всё потеряно, буду дальше вживлять разум в их мертвый мозг. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 22:24 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУНо не всё потеряно, буду дальше вживлять разум в их мертвый мозг. Напрасное занятие, у некоторых в процессе размораживания мозга, происходит закипание фикалий ) В их конторах, где сидит пара ящеров, и пилит один проект на пятилетку, никто и никогда не притронится к технологии моложе 40 лет, ибо если не осилят (а шанс не велик), то всей командой на сбор бутылок у метро ) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2012, 23:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
выявились 4 группы 1. понимающие суть и плюющие на фантики 2. непонимающие суть но ослепленные мишурой 3. МСУ 4. 2 которые имеют шанс стать 1 (лелоуч) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 00:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosвыявились 4 группы 1. понимающие суть и плюющие на фантики 2. непонимающие суть но ослепленные мишурой 3. МСУ 4. 2 которые имеют шанс стать 1 (лелоуч) Я бы поделил так: 1. Сторонники ORM. 2. Сторонники SQL. 3. ViPRos. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 00:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Випрос на этот раз близок к истине как никогда ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 01:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ПарамонВ их конторах, где сидит пара ящеров, и пилит один проект на пятилетку, никто и никогда не притронится к технологии моложе 40 лет Всё так, согласен. Lelouch1. Сторонники ORM. 2. Сторонники SQL. 3. ViPRos. У третьего пункта даже название соответствующее :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 07:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ViPRosвыявились 4 группы 1. понимающие суть и плюющие на фантики Не ясно, кого можно отнести к этой группе, понимающие - понимают что SQL тоже фантик, а не первородное чудо, и в свое время в него тоже кидали весомые аргументы, типа - "хрень", но вроде прижился. И да, количество фантиков растет, пропорционально сложности приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 11:49 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Три богатыря - старая гвардия (ящеры, предсмертники), не желающие новомодных "фантиков" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 11:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Всё не читал. Выводы сделал: 1. LINQ - технология настоящего и будущего. Это строгая типизация и прочие удобства С# + производительность SQL. 2. SQL - для оптимизации. 3. LINQ - не ОРМ. 4. ОРМ не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 15:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей, определитесь, о каком "LINQ" идёт увещевание. А то каша масляная... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 16:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУАлексей, определитесь, о каком "LINQ" идёт увещевание. А то каша масляная...LINQ2SQL разумеется... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 16:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
1. C# - технология настоящего и будущего. Это строгая типизация и прочие удобства С# + производительность параллелей. 2. Параллели - для оптимизации. 3. C# - не ЯООП. 4. ЯООП не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2012, 20:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
по моему тут просто холивар с переходом на личности. эт печально, если люди опускают до такого уровня да будь ты трижды мега гуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2012, 09:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaА другого ответа быть не может. Поколение Пепси выбирает ORM, тк sql не знают и знать не хотят. Поэтому на голубом глазу показывают совершенно уродский запрос и при всем желании ничего другого сделать не смогут.Не бывает уродских SQL-запросов. Бывают уродские планы выполнения. Оптимизатору пох на красоту SQL... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2012, 12:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ1. C# - технология настоящего и будущего. Это строгая типизация и прочие удобства С# + производительность параллелей. 2. Параллели - для оптимизации. 3. C# - не ЯООП. 4. ЯООП не нужен. ЯООП - это чё? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2012, 12:04 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей К ЯООП - это чё? Языческая организация освобождения Палестины ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2012, 12:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Нужна помощь вашего клуба по сабжу (ОРМ Хибер). - есть длинная бизнес транзакция на клиенте (напр. Визард) - Hibernate работает на коротких Session-Per-Request - Получается желательно Session-Per-View (десктоп) - Без ОРМ, в СУБД, это решается элементарно уровнем изоляции READ_COMMITED. - Как расширить транзакцию с ОРМ шире одного реквеста? - Или как в ОРМ хранить состояние \ Снимок БД? ТЗ http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=909575&msg=11905049 теория темы http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1 практический код решения на Java http://www.sql.ru/forum/actualthread.aspx?tid=909083&pg=1 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 10:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Нужна помощь вашего клуба по сабжу (ОРМ Хибер). - есть длинная бизнес транзакция на клиенте (напр. Визард) - Hibernate работает на коротких Session-Per-Request - Получается желательно Session-Per-View (десктоп) - Без ОРМ, в СУБД, это решается элементарно уровнем изоляции READ_COMMITED. - Как расширить транзакцию с ОРМ шире одного реквеста? - Или как в ОРМ хранить состояние \ Снимок БД? ТЗ http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=909575&msg=11905049 теория темы http://www.sql.ru/forum/actualthread.aspx?tid=909575&pg=1 практический код решения на Java http://www.sql.ru/forum/actualthread.aspx?tid=909083&pg=1 svenon, так красиво и по хамски пел про AppSever, а на деле предлагает какой-то маразм с выборками кэша hibernate. Решение только средствами ORM c длинными и прочими транзакциями, на мой взгляд, - это вариант через одно место. Нужен десктоп или это чистый web? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 13:06 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa, нужен чистый веб. Десктоп нет проблем с длинными, т.к. там нет реквеста вообще ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 14:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
посмотрел, все ОРМ'ы требуют своё закрытие на конец HTTP запроса (myBatis тоже). Хотя на деле всё IT поёт за rich ГУИ на веб ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 14:05 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123, Мб я что то не так понял, но на EF можно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Длинная транзакция, изоляция измененных данных... Вроде то что вы искали(правда не на хибере, но вы же уже про все ORM говорить стали...) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123- есть длинная бизнес транзакция на клиенте (напр. Визард)Если это самоцель - ничего путного не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Что мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей К, визард или вкладки в веб самоцель? - вы не видели в веб визардов? Пошаговых операций? AJAX? - это вопрос к заказчику ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера? - накопить как? В клиенте в куки? - весь объект или только ID? - в ТЗ есть допусловия на перезапрос к этим сырым данным. В десктопе это обычное плёвое дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, ммм. Так я не вкурю. Я не знаю его архитектуру. Но он (EF) ведь к серверному ORM не имеет отношение ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Lelouch, ммм. Так я не вкурю. Я не знаю его архитектуру. Но он (EF) ведь к серверному ORM не имеет отношение ;) Что есть серверная ORM? oO P.S. Вариант с помощью CommitableTransaction: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
По-моему даже google такого термина не знает... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:49 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, проблема в технической стороне. Хибер это умеет? Как это у него решается? Можно ли запретить у него сброс в БД (flush) и делать запросы к его кэшу не сбрасывая до последнего длинного бизнес-коммита. Вроде хибер одинаков с Java. Как решается проблема потокового HTTP запроса и НЕ потокозащищённости Хибера ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:57 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Алексей К, визард или вкладки в веб самоцель? - вы не видели в веб визардов? Пошаговых операций? AJAX? - это вопрос к заказчикуТут вопрос про длинную транзакцию в БД, вызванную, как мне показалось, архитектурой тех самых вкладок (их независимость и т. п.) С обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит, а тут ещё и Веб. Petro123Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера? - накопить как? В клиенте в куки? - весь объект или только ID? - в ТЗ есть допусловия на перезапрос к этим сырым данным. В десктопе это обычное плёвое дело.Наверное как-то можно не перегружать веб-страницу на протяжении всего времени жизни мастера. Обмениваться данными между страницами мастера с помощью JavaScript. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchЧто есть серверная ORM? oO термин спорный, но.... в коде нет VIEW и public Form1() ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 15:59 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КС обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит вы не правы. Всё замечательно. Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:01 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КНаверное как-то можно не перегружать веб-страницу на протяжении всего времени жизни мастера. Обмениваться данными между страницами мастера с помощью JavaScript. обмен не проблема по AJAX асинхронно. Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5. Он раньше 5 раз коммитил и сбрасывал в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:04 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Или организовывать на сервере поддержку бизнес-сессий с хранением промежуточных данных, механизмом "убивания" подвисших сессий и т. п. зы: Веб для бизнеса не нужен. Представлен типичный пример гемора на пустом месте. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:04 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123, Мои комментарии относятся к: Petro123посмотрел, все ОРМ'ы требуют своё закрытие на конец HTTP запроса (myBatis тоже). Я об этом кстати написал: Lelouch(правда не на хибере, но вы же уже про все ORM говорить стали ...) С хибером никогда не сталкивался, а java меня волнует в данный момент чуть более чем никак. P.S. Имхо NHibernate должен поддерживать MSDTC (CommitableTransaction к нему относится). Что есть в java подобного - я не в курсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:06 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123обмен не проблема по AJAX асинхронно. Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5. Он раньше 5 раз коммитил и сбрасывал в БДВы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123LelouchЧто есть серверная ORM? oO термин спорный, но.... в коде нет VIEW и public Form1() Я вам должен 3х звенку для 5минутного примера городить?) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, т.е на входе АппСервер или Вебсервер есть В ПОТОКЕ функция реквест (HTTP запрос). Обычный веб - выстрелил и забыл. Мне нужно чтобы хибер был синглетоном и помнил состояние. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Алексей КС обычным-то десктопом длиная транзакция в БД ни к чему хорошему не приводит вы не правы. Всё замечательно. Код: c# 1. 2. 3. 4. 5.
Может быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, А что хелловорлды сейчас за большее время пишутся? Не умеете, так и скажите. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:10 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchИмхо NHibernate должен поддерживать MSDTC (CommitableTransaction к нему относится). про это спасибо. Бум ждать инфу именно про хибер, т.к. много общего именно в нём. Спс. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:10 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КPetro123обмен не проблема по AJAX асинхронно. Проблема, что на 5 погрузок по AJAX и 6-ой HTTP-POST серевер-хибер забыл про первые 5. Он раньше 5 раз коммитил и сбрасывал в БДВы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера. AJAX не перегружает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Мне нужно чтобы хибер был синглетоном и помнил состояние.Перед этим надо убедиться в невозможности накопления данных на клиенте яваскриптом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:11 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КPetro123Мне нужно чтобы хибер был синглетоном и помнил состояние.Перед этим надо убедиться в невозможности накопления данных на клиенте яваскриптом. ну как он накопит? Есть3 вкладки с кнопками: - Персона - Заказы - Адреса Там куча данных по подгрузке страничной. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:13 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeLelouch, А что хелловорлды сейчас за большее время пишутся? Не умеете, так и скажите. :( Я жду вашего примера, посмотреть как вы умеете ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Алексей Кпропущено... Вы меня не поняли. Цель - не перегружать веб -страницу при переключении между страницами мастера. AJAX не перегружаетНу раз так - что мешает обмениваться данными между страницами на клиенте? Правда, может оказаться что сделать поддержку бизнес-сессий на сервере проще. Тут надо сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:14 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей Кбизнес-сессий на сервере проще. Тут надо сравнивать. то то и оно :) Нужна бизнес-сессия для длинной бизнес-транзакции (шире одного реквеста). Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123ну как он накопит? Есть3 вкладки с кнопками: - Персона - Заказы - Адреса Там куча данных по подгрузке страничной.Ну Вам виднее. Если на клиенте сделать трудно/невозможно - надо делать бизнес-сессии на сервере. Вариантов вроде как больше нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:18 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Ормы заточены на один реквестТут я не соглашусь. Вы можете открывать/закрывать сессию в ОРМ когда и где захотите. Сделайте статический словарь с сессиями типа: Код: c# 1. 2. 3. 4.
Я с хибером не работал, может там уже есть что-то готовое для этого. А если нет - самому написать вроде как не проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123 Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ. Да, это именно так. Но таким образом заточены не только ОРМы, а вообще весь вэб. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей К... А не проще в http сессии хранить объект контекста? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:29 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей К, покопаю, но это вроде равноценно что открыть в синглетоне на все потоки? Там контейнер для массовости запускает Java класс в потоках. Поэтому хибер пишут надо в старте потока\реквест открыть и в конце\реквест закрыть. Замкнутый круг. 2 транзакции и 2 сессии ХИБЕРА тогда могут пересечься. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:31 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchАлексей К... А не проще в http сессии хранить объект контекста? проще, только везде читаю что для ОРМ ссылки нельзя. Это ведь и есть менеджер реквестов для веб-сессии ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:33 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Алексей Кпропущено... Перед этим надо убедиться в невозможности накопления данных на клиенте яваскриптом. ну как он накопит? Есть3 вкладки с кнопками: - Персона - Заказы - Адреса Там куча данных по подгрузке страничной. Есть другой вариант - один бизнес-объект Персона, который содержит деталировки: Заказы, Адреса и большую кучу всего остального. Этот БО должен быть сериализуем, чтобы была возможность держать его в кэше сессии,вытаскивать детишек по требованию, и сохранять все изменения при вызове только одного метода - Save. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:33 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergePetro123 Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ. Да, это именно так. Но таким образом заточены не только ОРМы, а вообще весь вэб. да . Но ведь (матом) корпоратив EE идёт в веб. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:34 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Lelouchпропущено... А не проще в http сессии хранить объект контекста? проще, только везде читаю что для ОРМ ссылки нельзя . Это ведь и есть менеджер реквестов для веб-сессии Поясните... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaЕсть другой вариант - один бизнес-объект Персона, который содержит деталировки: Заказы, Адреса и большую кучу всего остального. Этот БО должен быть сериализуем, чтобы была возможность держать его в кэше сессии,вытаскивать детишек по требованию, и сохранять все изменения при вызове только одного метода - Save. +1 Так и Должно делаться в веб, но заказчик не шарит и хочет конструктор вкладок, а транзакция OK Отмена для всех сразу. На десктоп это можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouch, Начало сессии - 1 запрос = в Java создался класс Session. Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами. Везде читаю, что хибер-сессию надо закрыть на конец запроса. Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:40 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123SeVaЕсть другой вариант - один бизнес-объект Персона, который содержит деталировки: Заказы, Адреса и большую кучу всего остального. Этот БО должен быть сериализуем, чтобы была возможность держать его в кэше сессии,вытаскивать детишек по требованию, и сохранять все изменения при вызове только одного метода - Save. +1 Так и Должно делаться в веб, но заказчик не шарит и хочет конструктор вкладок, а транзакция OK Отмена для всех сразу. На десктоп это можно. А какая разница десктоп или вэб? Есть БО c возможность сохранения и отмены, а где он находится нет никакой разницы. Не знаю как в вашей унылой java, а в с# есть готовые фреймворки с готовым функционалом. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
т.е. туда можно ложить чисто данные, потом доставать и типа мержить и ложить в ОРМ обратно. Неудобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Lelouch, Начало сессии - 1 запрос = в Java создался класс Session. Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами. Везде читаю, что хибер-сессию надо закрыть на конец запроса. Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1. http сессия у вас живет 1 запрос? Если нет, то почему хибер-сессия сама закроется? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaНе знаю как в вашей унылой java, а в с# есть готовые фреймворки с готовым функционалом. возможно это так кажется. бум ждать спецов по хиберу или jdbcTemplate (это на Java без орм) Вот так делается в Java, но мне ооочень не нравится... http://www.k-press.ru/cs/2009/3/ts/ts.asp ------ Вынужден отлучиться. Но с ночи буду мониторить тему регулярно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Lelouch, Начало сессии - 1 запрос = в Java создался класс Session. Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами. Везде читаю, что хибер-сессию надо закрыть на конец запроса. Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1. Ваши ORM - путь в никуда ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:44 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Lelouchhttp сессия у вас живет 1 запрос? Если нет, то почему хибер-сессия сама закроется? возможно в контейнере сервлетов. Он создаёт поток и запускает класс Java. Написано в доках - надо закрыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:45 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa, ответь по той ссылке вверху. Ухожу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaPetro123Lelouch, Начало сессии - 1 запрос = в Java создался класс Session. Он как раз для корзин покупателя и т.д. Туда можно ложить то, что сохранить между запросами. Везде читаю, что хибер-сессию надо закрыть на конец запроса. Т.е. даже если положим туда, то он при закрытии сбросит в БД и зафиксирует запрос 1. Ваши ORM - путь в никуда И SQL - лишь остановка на этом пути ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 16:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVa...Ваши ORM - путь в никуда И наши. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Алексей К, покопаю, но это вроде равноценно что открыть в синглетоне на все потоки? Там контейнер для массовости запускает Java класс в потоках. Поэтому хибер пишут надо в старте потока\реквест открыть и в конце\реквест закрыть . Замкнутый круг. 2 транзакции и 2 сессии ХИБЕРА тогда могут пересечься."Надо" и "можно" - разные вещи. :-) Просто пишут про наиболее распространённый сценарий. Если хибер позволяет обращаться к сессии последовательно из разных потоков (т. е. в один момент времени с сессией работает только один поток) - вроде должно получиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:01 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123т.е. туда можно ложить чисто данные, потом доставать и типа мержить и ложить в ОРМ обратно. Неудобно. Нет. Никаких данных и БД нет. А есть бизнес-объекты. Person.Load()->Person.Address.Load()-> Редактируем -> Person.Serialize() -> Сохранить в кэше -> Переход на другую страницу -> Достаем из кэша -> Person.Deserialize() -> Person.Comments.Load() -> Редактируем -> Person.Save() (все упало в БД) или Person.Undo(). Второй вариант - хранить diffgram'ы, по которым можно сделать все необходимые телодвижения. Чтобы сделать все единообразным я бы использовал паттерн репозиторий, это позволит абстрагироваться от деталей ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:01 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Ну и не забыть организовать синхронизацию при работе с самим Dictionary. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:02 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaНет. Никаких данных и БД нет. А есть бизнес-объекты. Person.Load()->Person.Address.Load()-> Редактируем -> Person.Serialize() -> Сохранить в кэше -> Переход на другую страницу -> Достаем из кэша -> Person.Deserialize() -> Person.Comments.Load() -> Редактируем -> Person.Save() (все упало в БД) или Person.Undo(). Второй вариант - хранить diffgram'ы, по которым можно сделать все необходимые телодвижения. Чтобы сделать все единообразным я бы использовал паттерн репозиторий, это позволит абстрагироваться от деталейЭто всё понятно. Есть 100500 способов организации кэша. Хибер - один из них. Вопрос - как организовать доступ к кэшу из разных HTTP-реквестов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:04 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КSeVaНет. Никаких данных и БД нет. А есть бизнес-объекты. Person.Load()->Person.Address.Load()-> Редактируем -> Person.Serialize() -> Сохранить в кэше -> Переход на другую страницу -> Достаем из кэша -> Person.Deserialize() -> Person.Comments.Load() -> Редактируем -> Person.Save() (все упало в БД) или Person.Undo(). Второй вариант - хранить diffgram'ы, по которым можно сделать все необходимые телодвижения. Чтобы сделать все единообразным я бы использовал паттерн репозиторий, это позволит абстрагироваться от деталейЭто всё понятно. Есть 100500 способов организации кэша. Хибер - один из них. Вопрос - как организовать доступ к кэшу из разных HTTP-реквестов. Я не спец в этой web'ской полове, но сессии с нужной идентификацией - это не проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:13 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Похоже, для господ джавистов составные БО - полное откровение. Если его нет, то есть еще вариант - CQRS & Event Sourcing. Описывать полностью не буду, большие подозрения, что это будет таже серия ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 17:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Алексей КЧто мешает накопить данные на клиенте и отправить их в одной транзакции в конце работы мастера? - накопить как? В клиенте в куки? Сессия? Вьюстейт? Табличка БД с привязкой по гуиду? window.localStorage? window.sessionStorage? Куки? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:13 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Вполне можно на самой страничке накопить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:17 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Нужна бизнес-сессия для длинной бизнес-транзакции (шире одного реквеста). Для длительных операций - асинхронно отправляем транзакцию на сервер и возвращаем страницу: http://api.jquery.com/jQuery.ajax/ asyncBoolean Default: true By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active. В чём сложность? Petro123 Ормы заточены на один реквест - пришли парам, сделал HTML, выплюнул и ЗАБЫЛ. Так мог сказать только дегенерат, который не понимает, что ORM и реквест - монописуально-фиолетово-некоррелируемые вещи. Еще раз в закрепление - мастера и прочая шелуха в вебе реализуется за два чиха. Проблема, раздутая на пустом месте с пузырями и откровенными глупостями. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:20 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeВполне можно на самой страничке накопить. +1 Я вообще не понял проблемы. Petro123 городит какую-то хрень :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, Не говори так. Человек, по моей подсказке, из явы (там вообще только один форум, почему-то. Не могу понять почему так сделано) отпостил сюда. А Вы сразу - про какую-то хрень. Сами хрень никогда не писали? Может ли кто похвастаться таким богатым количеством банов, как Вы? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:35 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Лучше написать в форум Asp.Net. Тут вопрос скорее по web чем про ОРМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:38 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КЛучше написать в форум Asp.Net. Тут вопрос скорее по web чем про ОРМ. Это почему? И на вэбе и не на вэбе можно писать как на ОРМ, так и не на ОРМ. Вы не знали этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 19:58 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, Я не в обиде.:) Сессия хибера на реквест. Так у него в доке. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 21:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123МСУ, Я не в обиде.:) Это радует :) Petro123Сессия хибера на реквест. Так у него в доке. 1. А что если у нас не сайт? Десктоп, безсессионный веб-сервис. Откуда браться сессии? 2. А что, если я сессию в ASP.NET сайте положу в Cache или в Application? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:00 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
3. Так или иначе, что конкретно мешает сделать мастер или что там у Вас? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:01 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, я добрался до компа - счас быстро на всё отвечу. - я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету. Как быть? - вопрос Очень конкретный из ТЗ по ссылке. Не хочется заказчика посылать по дальше, т.к. надо учесть веб-http ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:36 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ3. Так или иначе, что конкретно мешает сделать мастер или что там у Вас? нет - у вас тут есть портированный хибер = NHibernate? - я предпологаю, что методы схожи - как вы делаете длинные транзакции. На Java их очень не любят и открещиваются ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, если у ОРМ есть 2 кэша, то можно ли выключить синхронизацию его и сделать "снимок". Т.е. писать в него CRUD а потом разом на 5 реквест либо в БД либо стереть с доски? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:39 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
в Java нижний уровень прихода POST это - аппсервер на 80 порту - получил запрос - если их много, то В ПОТОКЕ запускает сервлет (Java код) - там в начале Хибер.Опен и в конце Хибер.Сессия.Закрыть Как это у Вас? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:42 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУОткуда браться сессии? это сессия Хибера, а не HTTP. Я тоже был злой что они назвали одинаково :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:43 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУДля длительных операций - асинхронно отправляем транзакцию на сервер и возвращаем страницу: http://api.jquery.com/jQuery.ajax/ да. у меня на сайте это так и работает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:45 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
спс. Хочу найти точки соприкосновения Java \ Net. Хотя это "параллельные вселенные" ______________________________________________ "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. AutoPOI.ru — ГИС-технологии для Oracle ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 22:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123спс. Хочу найти точки соприкосновения Java \ Net. Хотя это "параллельные вселенные" Странные вещи говорите... . Кстати, сишарп (если вы про дотнет) также далёк от темы форума "ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM", как и ява. Вы в курсе, что ещё некоторое время назад был в моде J# ? А лет 7 назад браузеры (в т.ч. ИЕ) поставлялись вместе с JVM и своего рода JRE? Это было до тех пор, пока сун (тогда ещё сун, а не орасл) не разосралась со всем миром. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 23:25 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету. Как быть? Написать хранимую процедуру и намапить её в схему. Использовать и радоваться. И веб тут не при чем. Petro123как вы делаете длинные транзакции. На Java их очень не любят и открещиваются Ничего ужасного - вызываете асинхронно серверный метод, не дожидаясь результата, отдаёте страничку обратно клиенту. Когда метод отрабатывает - ловите факт отработки в клиентском или серверном колбэке. Всё. Что может быть проще? Petro123МСУ, если у ОРМ есть 2 кэша, то можно ли выключить синхронизацию его и сделать "снимок". Т.е. писать в него CRUD а потом разом на 5 реквест либо в БД либо стереть с доски? По-русски, чё Вам нужно? А то получается Вы не в теме, пытаетесь спедалировать задачу, но выходит у Вас весьма криво. В результате - не можете объяснить по-человечески. Petro123МСУОткуда браться сессии? это сессия Хибера, а не HTTP. Я тоже был злой что они назвали одинаково :) Так я про асповую сессию и говорю, а не хиберовую. Причем тут "сессия хибера на реквест"? Я могут сессию хибера в асповую сессию положить, в кеш, в аппликейшен. При чем тут реквест-то? Во-вторых, во всех доках пишут, что хиберовая сессия должна быть как можно короче: поработали с БД и прибили. Поэтому пусть на реквест, в чем проблема-то? Нужно еще будет - еще раз создадим хиберовую сессию. А вот фабрику ISessionFactory нужно глобально кешить. От неё и порождать хиберовые сессии. Petro123МСУДля длительных операций - асинхронно отправляем транзакцию на сервер и возвращаем страницу: http://api.jquery.com/jQuery.ajax/ да. у меня на сайте это так и работает Ну так а в чём пыль-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2012, 23:42 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSergeАлексей КЛучше написать в форум Asp.Net. Тут вопрос скорее по web чем про ОРМ. Это почему? И на вэбе и не на вэбе можно писать как на ОРМ, так и не на ОРМ. Вы не знали этого?Ну вопрос-то про веб а не про ОРМ. :-) Petro123- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету.Вроде как на десктопе уровней изоляции тоже нет. Они в БД и прочих хранилищах, поддерживающих транзакции. Не знаю как в явах и прочих, но в дотнетах есть довольно удобный ThreadStatic-контекст (класс TransactionScope ), позволяющий управлять транзакциями. А поскольку это контекст - ему пофиг через что Вы идёте в БД - через ОРМ или "врукопашную". При описании TransactionScope можно явно указать уровень изоляции (по дефолту - Serializable). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 06:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
ShSerge, ну почему, есть некоторые вещи мемебера "зы" которые я поддерживаю Можно и так сказать: "нафига мне ОРМ": - придётся вынести БЛ из БД на аппсервер в ОРМ и один из недостатков выше я написал - не всегда нужно маппить в классы, т.к. ГУИ бывает заточено на биндинг датасетов. и т.д. Я просто столкнулся с конкретной задаче. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 07:23 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
основной вопрос - знает тут кто NHibernate или будем про теорию? Я не против и про теорию. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 07:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей КВроде как на десктопе уровней изоляции тоже нет. Они в БД и прочих хранилищах, поддерживающих транзакции. Не знаю как в явах и прочих, но в дотнетах есть довольно удобный ThreadStatic-контекст (класс TransactionScope ), позволяющий управлять транзакциями. А поскольку это контекст - ему пофиг через что Вы идёте в БД - через ОРМ или "врукопашную". При описании TransactionScope можно явно указать уровень изоляции (по дефолту - Serializable). я вижу только Вы меня поняли Т.е. по простому вы через этот контекст ходите? Или тут не программисты больше? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 07:37 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
если чисто по сабжу, то 2 необходимых условия ОРМ перед SQL: - необходимо бизнес-логика (БЛ) писать через ООП\Класы - клиентской части тоже нужен ООП\Классы (а не Контрол - Биндинг - DataSet) IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 07:41 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУPetro123- я с десктопа пришёл. Там есть Уровень изоляции, которого в ОРМ нету. Как быть? Написать хранимую процедуру и намапить её в схему. ==== я вынес всю БЛ в ОРМ. Мешать ХП с БЛ в ОРМ не очень хорошо. Petro123как вы делаете длинные транзакции. На Java их очень не любят и открещиваются Ничего ужасного - вызываете асинхронно серверный метод, ====== который идёт за данными в ОРМ? не дожидаясь результата, отдаёте страничку обратно клиенту. Когда метод отрабатывает - ловите факт отработки в клиентском или серверном колбэке. Всё. Что может быть проще? ===== это вы не о длинных, а об асинхронности. Не по теме. Petro123МСУ, если у ОРМ есть 2 кэша, то можно ли выключить синхронизацию его и сделать "снимок". Т.е. писать в него CRUD а потом разом на 5 реквест либо в БД либо стереть с доски? По-русски, чё Вам нужно? ===== ну, вот уже пробую 3 раунда. Прогресс есть. ТЗ выше по ссылке от заказчика. Petro123пропущено... это сессия Хибера, а не HTTP. Я тоже был злой что они назвали одинаково :) Так я про асповую сессию и говорю, а не хиберовую. ========== наконец то. Вот про это подробнее. Я так понял вы сессию HTTP называете асповой :) Причем тут "сессия хибера на реквест"? Я могут сессию хибера в асповую сессию положить ===== замечательно. У нас говорят, что нельзя. Т.к. сложный объект не сериализуемый. , в кеш, в аппликейшен. При чем тут реквест-то? Во-вторых, во всех доках пишут, что хиберовая сессия должна быть как можно короче: поработали с БД и прибили. Поэтому пусть на реквест, в чем проблема-то? ==== давайте не разбрасываться. Можем мы положить \ удлинить хиберовскую положив в асповскую? Нужно еще будет - еще раз создадим хиберовую сессию. ====== поздно. Ещё раз, значит у прошлой был коммит. А вот фабрику ISessionFactory нужно глобально кешить. От неё и порождать хиберовые сессии. Petro123пропущено... да. у меня на сайте это так и работает Ну так а в чём пыль-то? ===== пока пытаюсь совместить термины. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 07:54 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Алексей К TransactionScope ), позволяющий управлять транзакциями. очень классная штука. В Java метод (по ссылке выше в конце) намного сложнее и мне не нравится. Конечно для моей текущей задачи это оверхед, но на будущее спс. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 08:08 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123если чисто по сабжу, то 2 необходимых условия ОРМ перед SQL: - необходимо бизнес-логика (БЛ) писать через ООП\Класы - клиентской части тоже нужен ООП\Классы (а не Контрол - Биндинг - DataSet) IMHO ORM - тупой DAL и только. В нормально спроектированных бизнес-объектах он может быть лубым, а вы пытаетесь из ORM слепить пулю, на которую он совершенно не расчитан. Кроме геммороя вы ничего не получите. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 10:53 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaORM - тупой DAL и только. В нормально спроектированных бизнес-объектах он может быть лубым, а вы пытаетесь из ORM слепить пулю, на которую он совершенно не расчитан. Кроме геммороя вы ничего не получите.Если LINQ2SQL считать ОРМом - то это далеко не "тупой DAL". В нём прекрасно описывается логика, которая "раньше" описывалась в SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 12:21 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
SeVaPetro123если чисто по сабжу, то 2 необходимых условия ОРМ перед SQL: - необходимо бизнес-логика (БЛ) писать через ООП\Класы - клиентской части тоже нужен ООП\Классы (а не Контрол - Биндинг - DataSet) IMHO ORM - тупой DAL и только. В нормально спроектированных бизнес-объектах он может быть лубым, а вы пытаетесь из ORM слепить пулю, на которую он совершенно не расчитан. Кроме геммороя вы ничего не получите. я уже не так категоричен как раньше. Для задач корпоратива на ГУИ-веб - возможно тупой. А для публичных сайтов - пойдёт. Везде ньансы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 12:26 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123 я вынес всю БЛ в ОРМ. Мешать ХП с БЛ в ОРМ не очень хорошо. Это очень плохо, выносить бизнес в ORM :) Логику нужно выносить в Logic Layer. А там уже можно и "умные" хп поюзать, если сильно хочется. Хибер отлично дружит с хп. Petro123который идёт за данными в ОРМ? Да. Petro123это вы не о длинных, а об асинхронности. Не по теме. Как может быть это не по теме, если Вы сами сказали, что $.ajax async как-раз и юзаете. Мигрень? Petro123ну, вот уже пробую 3 раунда. Прогресс есть. ТЗ выше по ссылке от заказчика. Да нафига мне Ваш тз, Вы человеческим языком объясните. Petro123наконец то. Вот про это подробнее. Я так понял вы сессию HTTP называете асповой :) Ну пипец... Да. Petro123замечательно. У нас говорят, что нельзя. Т.к. сложный объект не сериализуемый. Хорошо, а в Application пробовали? Ключ должен быть с привязкой к юзеру, разумеется: Application["ID" + UserName]. Во-вторых, зачем хиберовую сессию куда-то прятать? Асинхронно пнули серверный метод, попали под отдельно выделенный тредпулом поток, в нем создалась хиберовая сессия, прошла длительная операция. Всё. Зачем сессию хибера куда-то сохранять? Petro123давайте не разбрасываться. Можем мы положить \ удлинить хиберовскую положив в асповскую? В Application точно можно. Во-вторых, это бред. Неверна постановка задачи - хибер сессию не нужно ни куда кешировать. Petro123поздно. Ещё раз, значит у прошлой был коммит. Причем тут коммит прошлой? Petro123пока пытаюсь совместить термины. Вы задачу лучше обрисуйте. По пунктам. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 18:23 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУВы задачу лучше обрисуйте. По пунктам. ну давай попробуем с клиента приходит 3 вызова в любой очерёдности Код: plaintext 1. 2. 3.
последний приходит в конце НА СЕРВЕРЕ один сервлет на все вызовы-реквест в потоке ============ Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Это из доки по хиберу - короткие транзакции. Открыл, HTML выплюнул - закрыл. Если это понятно, продолжим. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 22:46 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Корзину покупателя в веб как делают? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 22:47 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123Корзину покупателя в веб как делают? Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 22:52 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchPetro123Корзину покупателя в веб как делают? Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc. именно. Даже больше. Первые корзины хранили цену и код товара в JS на клиенте. НО выше пример с БЛ десктопа сложнее. Выстрелил и забыл (Веб) никому счас не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:07 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
1. Что мешает накапливать данные на странице (вариантов масса, хоть в js массиве синхронизируемся, хоть даже в name формы, а про сессии, куки и иже уж молчу). А потом всё это слить на сервер. 2. Корзина - проще пареной репы. Можно на куках, можно на профилях. Гоу ту асп.нет форум, короче. Я устал толкать кирпичую стену. Объяснять джависту элементарные асповые вещи под соусом "я не буду это есть" - не моё. Если хотите разобраться, ваяйте тестовый сайт на хибере, закидывайте в асп.нет форум, задавайте адекватно вопрос. Там помогу. А тут гонять сопли по десятому разу уже надоело. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:09 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
LelouchPetro123Корзину покупателя в веб как делают? Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc. Корзина на сессии? :) Где взять такой травы? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:12 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, так и скажи. Я пойму - асповый форум. У нас то он один. Всё равно спасибо. Было познавательно. Не всё ж в своём соку вариться. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:15 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Petro123, не, ну без обид. Какой-то разговор глухого с немым получается... Явист жарит моск дотнетчику. Достало, епт. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:22 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУ, абсолютно без. Я тоже вашего брата мало мало... ShSerge приглашал когда, я сказал - слишком разные мы :) Тему я всю прочёл. 30% не понял, 70 понял, 10% твоих доводов фигня, 90 правда :) Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:31 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
Петро, бросайте гавножабу, курите человеческий оспонет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.01.2012, 23:49 |
|
ORM vs sql
|
|||
---|---|---|---|
#18+
МСУLelouchпропущено... Имхо хранят данные в сессии без всяких там записей в хибере/бд/etc. Корзина на сессии? :) Где взять такой травы? Никогда их не писал, и в ближайший год не буду точно, профиль конторы не тот ) Сие было всего лишь скромное мнение ) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2012, 00:06 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1350478]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
437ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 535ms |
0 / 0 |