|
|
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Я какое-то время изучала существующие объектные СУБД, и заодно объектно-реляционные "прослойки". Очень привлекательно опереировать объектами вместо барахтанья в SQL. Выяснилось, что и для Delphi они тоже есть (и уже давно) : DORM? tiOPF, hcOPF... Демки понятные, хотя и порой немного страшные. Начинаю новый проект (учет заявок и контроль их выполнения для систем комплектования заказов, иключительно десктопный вариант), хотелось бы узнать мнение профессионалов: стоит ли связываться с ORM? В качестве СУБД хранения наверное, выберу FireBird 2.1. Расскажите о своем опыте использования ORM, какую именно систему порекомендуете. С уважением, Афалина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:27:11 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Зачем ORM ? Чистый SQL гораздо проще и эффективнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:32:25 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Поддерживаю предыдущего оратора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:33:18 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
тащить микрософтовский велосипед в чуждую ему инфраструктуру? зачем? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:38:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
defecatorЗачем ORM ? Чистый SQL гораздо проще и эффективнее. Согласна, эффективнее. Тем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее. И, мне кажется, обычно не очень хорошо, когда в приложении используется больше одного языка программирования. Java-разработчики чаще используют ORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:40:14 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Hello, Афалина! You wrote on 17 марта 2017 г. 14:41:38: Афалина> Java-разработчики чаще используют ORM.чем армяне! (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:41:47 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийтащить микрософтовский велосипед в чуждую ему инфраструктуру? зачем? Почему "микрософтовский"? Не поняла, извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:42:15 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
у тебя ус отклеился Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:43:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаТем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.Не используйте сложных, тяжеловестных SQL запросов и писать станет гораздо проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:44:11 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
rgreatАфалинаТем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.Не используйте сложных, тяжеловестных SQL запросов и писать станет гораздо проще. подозреваю, что у ТС знания SQL только самые начальные, поэтому хочется странного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:46:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
rgreatАфалинаТем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.Не используйте сложных, тяжеловестных SQL запросов и писать станет гораздо проще. Запросы пишутся исходя из решаемых задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:47:53 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Афалина, "Исходите" проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:48:28 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
defecator, rgreat: - расскажите, пожалуйста, о своем опыте использования ORM + Delphi. Какие именно использовали, какие подводные камни попались, из-за чего сейчас относитесь к ним негативно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:54:08 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
sql это dsl и стоящие за ними субд десятилетиями выдрючивали чтоб эффективно выполнять комплексные операции над множествами записей использовать развитые субд как тупорылые хранилища данных чтобы извлекать их оттуда и манипулировать вовне в построчном slow-by-slow стиле иногда конечно может и имеет смысл но возможно лишь чуть чаще чем никогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 14:57:38 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Не использовал, но читаю про TMS Aurelius (есть цикл статей и дока но офиц сайте) есть также Devart EntityDAC сдается, что FireBird для ORM не самая подходящая СУБД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:02:30 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
да и базы надо проектировать тогда по другому а не как в институте учили, (по крайней мере меня) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:03:41 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаКакие именно использовали, какие подводные камни попались, из-за чего сейчас относитесь к ним негативно.SAP, Вектор-М. Двумя словами: Адовые монстры, все подробности реализации задачи в которых не знает вообще никто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:08:08 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
AlexeyM123... сдается, что FireBird для ORM не самая подходящая СУБД Есть данные, что FireBird "по скорости", на базах с простой струтурой (то есть таких, которые генерируются ORM) в сходном аппаратном окружении, может и обойти другие СУБД. Или вы говорите не о скорости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:09:26 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Речь идет не напрямую о ОРМ, конечно, а о её реализации там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:09:46 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
rgreatАфалинаКакие именно использовали, какие подводные камни попались, из-за чего сейчас относитесь к ним негативно.SAP, Вектор-М. Двумя словами: Адовые монстры, все подробности реализации задачи в которых не знает вообще никто. Извините, я именно про ORM для Delphi спрашивала. У вас есть опыт работы с ними? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:13:08 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаAlexeyM123... сдается, что FireBird для ORM не самая подходящая СУБД Есть данные, что FireBird "по скорости", на базах с простой струтурой (то есть таких, которые генерируются ORM) в сходном аппаратном окружении, может и обойти другие СУБД. Или вы говорите не о скорости? "простой структурой" ? почитайте например Len Silverston ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:14:22 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
По сабжу: Террасофт CRM. Для общего впечатления можно поискать в ютубе. Много наглядных уроков. Очень успешный проект и с правильной реализацией. Одна беда - он сильно платный. Еще можно посмотреть на ISCRA.RU. Других более-менее функциональных ORM пожалуй не назову. Ибо много унылых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:15:15 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
LSV, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:20:20 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Получается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:22:10 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки? Зачем ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:23:23 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
defecatorАфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки? Зачем ? Спасибо, я вас поняла. Может, кто-то другой использовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 15:30:01 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаВ качестве СУБД хранения наверное, выберу FireBird 2.1.Не круто. Начинайте уже на 1.0 или хотя б 1.5, раз мертвячину любите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 16:03:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки?Готовое редко используют. Свои пишут. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 16:05:26 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
YuRockАфалинаВ качестве СУБД хранения наверное, выберу FireBird 2.1.Не круто. Начинайте уже на 1.0 или хотя б 1.5, раз мертвячину любите. Как раз "круто". :) Есть серьезные причины, никак не связанные с данной темой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 16:19:44 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаЕсть серьезные причины, никак не связанные с данной темой.Я и не сомневался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 19:20:43 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Афалина, Мне нравится Laravel. Правда это не Delphi. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:05:30 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаJava-разработчики чаще используют ORM. Я бы не рекомендовал равняться на Java-разработчиков в этой части. Такая срань, простите за мой хранцусский, получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:23:14 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Причина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:39:17 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Самый дельфовый ОРМ - DataAbstract от RemObjects. Пользовал, доволен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:44:27 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
makhaonПричина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.Ну понятно. А новый, как и отдельный сервер для базы заранее даже не проектируется. Стоит ли начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 20:54:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
YuRockmakhaonПричина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.Ну понятно. А новый, как и отдельный сервер для базы заранее даже не проектируется. Стоит ли начинать. Дорогие телепаты! :) Если вы хотите знать, как одновременно использовать несколько серверов FireBird - прочтите об этом: http://www.ibase.ru/inst_manual/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 21:13:50 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
БьютиферСамый дельфовый ОРМ - DataAbstract от RemObjects. Пользовал, доволен. Очень инетересно. Расскажите, пожалуйста (насколько это возможно) - для какой прикладной области решалась задача, какие планировались нагрузки и объемы данных. Ну и вообще - как все шло и чем все закончилось. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 21:15:46 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаЕсли вы хотите знать, как одновременно использовать несколько серверов FireBirdНу тогда причина начинать новый проект на мертвой версии СУБД - действительно серьезная. На спор на много денег, например) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 22:02:18 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Просто скажите что вам не интересно изучать SQL но хочется работать с БД. Используя орм вы заранее отказываетесь от плюшек БД. Каких-то специальных конструкций и т.п. К примеру преславутый entity framework для .Net не умеет использовать рекурсивные cte в mssql. И тогда начинается солянка, часть в функциях, часть в хп, часть в клиентском коде. Может в каком нибудь проекте уровня "Мне тут программка надо накладные считать", сказал Вася Иванов владелец ларька и у него из БД только Access и тот ломаный, может и покатит. Тем более если другой владелец ларька Петя Петров имеет только Excel, такой же ломаный, тоже хочет такую программку. Я бы сказал, что в Delphi ORM не распространены. Большинство толковых разработчков Delphi хорошо владеют SQL чтобы писать быстрые запросы. Наши разработчики использующие C/AL и .Net (в обоих свои ОРМ) понятия не имеют как работает MSSQL и постоянно у них в воздухе висит вопрос, а почему на 3-ех терабайтной БД все тупит и тормозит и иногда возникают неожиданные артефакты в данных (непонимание изолированности транзакций) и то, что с данными в SQL надо работать как с множеством, и не итеративно. Там действует совершенно другая алгебра. В то время как службы написанные Delphi разработчиками работают уже лет 5 и никто не вспоминает про них, хотя они также активно работают с БД. Но если вы твердо уверенны в использовании какой-нибудь ОРМ в своем проекте, то посмотрите в сторону DevArt. У них сильные компоненты работы с БД. Я думаю и EntityDAC тоже будет хороша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 22:39:06 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Как везде, советы дают те, кто никогда не использовал. ... Спасибо всем. Хороших выходных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2017, 23:52:13 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
АфалинаКак везде, советы дают те, кто никогда не использовал. к примеру. Bold for Delphi - появился еще в Delphi 7, поставлялся в комплекте Delphi 7 Architect, но в России популярности так и не снискал. Борланд заявлял о сотне тысяч использующих этот ORM. Потом, Bold перекочевал в какой-то другой ORM, который был сделан в Delphi 2005, но базировался он в основном на .Net. Я уже забыл, как эта хрень называлась, но помню что были видео, как 14-летняя девочка писала приложения на этой системе простым мышетыканьем. Однако, оказалось, что для многопользовательских систем это все не годится. Только для однопользовательских. В 2007 году Borland понял, что этот ORM не имеет популярности, и .Net тоже говно, и вообще забил на .Net болт (включая ORM). В результате, с ORM в поставке Delphi было покончено. С тех пор ORM для Дельфи пишут только энтузиасты, и в основном пишут для себя (для своих решений). Попытки распространять такие решения, увы, проваливаются еще с начала 2000. Никому эти "чужие" ORM нафиг не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 00:10:50 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
добавлю, что ORM до сих пор имеют популярность, но сфера их применения достаточно мутная, и статистики как таковой нет (я не видел). Как правило, ORM генерирует весьма универсальные запросы к СУБД, в результате чего получается полное дерьмо, т.к. "универсального оптимизатора" не существует, и запросы нужно дотачивать для конкретной СУБД. Классическим примером является Hibernate. В итоге. Либо люди используют какой-то внешний ORM, и мучаются, или используют собственный ORM, который кроме них нафиг никому не нужен. Вот такая беда с ORM. В частности http://use-the-index-luke.com/blog/2013-04/the-two-top-performance-problems-caused-by-ORM-tools и многое другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 00:17:24 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
kdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 00:50:36 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Бьютиферkdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. Вернее, с ОРМ - проект просто достаточно попытаться перекомпилировать. Ну, по крайней мере, станет понятно, где изменилась структура. Это да. ... А без ОРМ - либо с помощью запуска набора тестов (ну мы же тесты все время пишем, по ходу расширения системы, да?) :) Либо с помощью разных приемов, которых у каждого разработчика/руководителя проекта со временем набирается достаточно, чтобы выжить, обычно эти приемы просты, утомительны и всем известны. Вообще, маленькие модификации вписываются обычно хорошо, а большие не вписываются нигде. И просто сообщениями об ошибках в компайл-тайме вы не обойдетесь, главная проблема - в логике. А тут ни "классические" приложения, ни ОРМ-базед не спасают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:01:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Бьютиферkdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы. Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:04:38 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
X-CiteБьютиферkdv, Простой пример: большая система. поменяли структуру базы. Вопрос: как узнать, что все запросы остались рабочими без ОРМ? Ответ без ОРМ: ??? Ответ с ОРМ: проект достаточно просто перекомпилировать. Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы. Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle. Имхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы. Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:11:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Товарищ старшинаX-Citeпропущено... Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы. Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle. Имхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы. Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации. Если речь о БД только как о хранилище данных, то да, конечно, орм как нельзя кстати подходит: написал, сдал, забыл. Вот только использовать бд уровня mssql или oracle как хранилища, не используя их возможности. это кощунство. P.S. моя сфера БД исключительно промышленного уровня и мне тяжело мыслить на уровне приложений для домашних настолок. Возможно там использование орм окупит затраты на поддержку. потому что применять не осознанные DDL скрипты, где только одна таблица может весить 200 Гб печально. Один из примеров моей практики, ребята из .Net команды запустили некое обновление БД (тестовое) переводящее ее из состояния А в Б. При этом сделали это через ORM, т.к. их знаний SQL хватало только на select from. На все ушло около 2 часов. update delete alter и т.п. Проблема стала в том, что окно на обновление исключительно не более 15 минут. После чего, я потратив 30 минут на изучение что надо изменить и получить, написал за 10 минут скрипт, который перевел БД из состояния А в Б за 1 минуту. Теория множеств победила Теорию итераций. Беда в том, что современные кодеры, совершенно не понимают как работает это там внутри. Одно время я даже пробовал сам написать ормку заточенную под mssql, но когда дошел до оконных функций с кадрированием - сдался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 01:47:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Товарищ старшинаИмхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы. Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации.ОРМ работает в обе стороны: Code First и Database First. В обоих случаях обновление бизнес-модели происходит либо: 1. Правятся классы в приложении - генерируется DDL на изменение БД. 2. Правятся таблицы БД - объектная модель пересоздается по клику мышки автоматом. ОРМ дает качественный CRUD код и легко обновляется при изменении бизнес-модели. Если нужно замутить вещи посложнее, то тут мужно менять подход. Вместо написания 4-х метровых sql-ей нужно сделать декомпозицию и заменить один монолит на несколько более мелких операторов и в коде их соединить. Так даже понятнее читается, чем портянка на 4-метра и для серввера БД, кстате тоже. Ну или на крайний случай замапить ОРМ на серверную вьюшку или процедуру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 02:03:26 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
X-CiteОдин из примеров моей практики, ребята из .Net команды запустили некое обновление БД (тестовое) переводящее ее из состояния А в Б. При этом сделали это через ORM, т.к. их знаний SQL хватало только на select from. На все ушло около 2 часов. update delete alter и т.п. Проблема стала в том, что окно на обновление исключительно не более 15 минут. После чего, я потратив 30 минут на изучение что надо изменить и получить, написал за 10 минут скрипт, который перевел БД из состояния А в Б за 1 минуту. Теория множеств победила Теорию итераций.Ясен пончик код миграции ОРМ нужно проверять глазами и править если нужно. Только в этом случае код будет на языке приложения, а не DDL. Сначало непривычно так делать после десятилетий пользования SQL, но потом осознаешь, что вроде оно так и надо. ПС. Некоторые до сих пор и на гитаре играют без нот. Так даже лучше )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 02:24:24 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
чччДА без ОРМ - либо с помощью запуска набора тестов (ну мы же тесты все время пишем, по ходу расширения системы, да?) :) Либо с помощью разных приемов, которых у каждого разработчика/руководителя проекта со временем набирается достаточно, чтобы выжить, обычно эти приемы просты, утомительны и всем известны.от же-ж жжет напалмом. уважаю. какие приемы? кому известны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 06:03:03 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Пытались в свое время использовать ORM от DevExpress (не на Delphi, правда). Остались стойкие отрицательные впечатления, потому что автоматически сгенерированные запросы были, мягко говоря, неоптимальны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 10:59:48 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
schiПытались в свое время использовать ORM от DevExpress (не на Delphi, правда). Остались стойкие отрицательные впечатления, потому что автоматически сгенерированные запросы были, мягко говоря, неоптимальны. Тоже могу сказать и про entity :) проценку всеравно сделали в ХП, ну не может орм сгенерировать запрос к 1 тб за 400 мс и проценить 250 позиций Автор же спрашивает имеет ли смысл начинать новый проект с ОРМ и если да, то какой. Ответ: Имеет, если приложение останется на любительском уровне и не будет требовать высоких мощностей. Если из приложения планируется развить мощную высокопроизводительную ERP, то не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2017, 11:34:47 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
X-CiteОтвет: Имеет, если приложение останется на любительском уровне и не будет требовать высоких мощностей. Если из приложения планируется развить мощную высокопроизводительную ERP, то не имеет.Не могу согласиться. На ОРМе удобнее, быстрее, делать и дешевле сопровождать именно навороченные структуры и логику. Понятно, что она будет проигрывать в чистой производительности, хотя тут тоже зависит от архитектурных решений. Можно вынести самые затратные процедуры на уровень SQL сервера. В любом случае, всё зависит от конкретной задачи. Не всегда огромным задачам нужно огромное быстродействие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 00:29:44 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Думаю что в контексте обсуждения ОРМ забыта одна значительная функция, обуславливающая распространенное использования этого понятия в большинстве PHP - подобных языков программирования. А именно - кэширование данных запроса, что является значительным послаблением для БД при большом количестве одинаковых запросов. В дельфи такой функционал не только не актуален, но и не нужен. Благодаря чему разработчики могут снизить сложность своей программы избавляясь от лишнего кода. Потому что у использования ОРМ есть хитрый недостаток - увеличение сложности отладки. Если для связки SQL+Delphi достаточно знать основы этих двух языков, то для связки SQL-ORM-DELPHI уже нужно знать не только SQL+Delphi на уровне, достаточном для понимания машинерии ОРМ, но и саму специфику ОРМ. Вот, кстати, отличный пример: Бьютиферзамапить ОРМ на серверную вьюшку или процедуру Во сколько раз возрастет сложность решения при таком подходе? А если часть логики из ОРМ еще и вынесена на клиент? Понятно, что пока программа пишется, выше указанных проблем нет. Проблема отладки возникнет когда программа перейдет в стадию активной поддержки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 02:35:06 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
stanilar, мне кажется, что наоборот - ORM пытается скрыть "детали реализации", т.е. сделать невидимый persistent storage в СУБД. А это годится разве что для хранения каких-то мелких данных, типа клиентских настроек, и прочих "телефонных книг". В реале - чем сложнее модель данных в СУБД, тем сложнее запросы, и тем сильнее они требуют оптимизации и корректного написания. К примеру, мы консультируем по проблемам производительности, и как минимум 60% - это кривое управление транзакциями и хреновые запросы к СУБД. Без ORM. А уж с ORM эта беда возрастает многократно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 06:15:07 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
IMHO, ORM изначально придуманы для CRUD и именно в этом они хороши. Получить ОДИН объект по ID или набору критериев поиска, автоматически заполнить контролы на форме, проверить, изменил ли что в них пользователь, валидировать введенные данные, сохранить обратно - от этой рутины они избавляют. Если ORM справляется с объектами сложной структуры (хранящимися в нескольких связанных таблицах) типа документа с табличными частями и кучей лукап-комбобоксов (с выбором значений из справочников) - то это приличная автоматизация муторного труда программиста. Для реализации табличной формы типа списка документов с набором фильтров сверху ORM уже как бы не очень и нужен. Так как набор данных - read-only. Об отчетах и т.п. даже не говорю. А вот когда программист решает делать процедуры обработки данных с помощью ORM (ибо есть такой соблазн) с запросом сразу кучи бизнес-объектов и перебором их в цикле - тут вполне можно ждать тормозов, может быть, даже сбоев и, как итог, недовольства и гонений на никудышную ORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 10:23:21 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
kdv Под стадией "активной поддержки" мною понимается, например, та ситуация, когда к разработчику подходит бухгалтер и спрашивает почему в одном окне программы счет на одну копейку больше чем надо, а в другом - меньше. Именно в такие моменты и проявляется вся кривизна любых решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 22:11:49 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
stanilar, ээээ. до сих пор не забуду, как на Кондровском бумажном комбинате в 1991 году внедряли бухгалтерию на MUMPS (ДИАМС 3.1). И бухи нас спросили - а чего это вы так КТУ считаете? Ну, мы им объяснили (при этом я офигел, что они в подсчете КТУ были ни в зуб ногой), после чего я ради прикола написал 4 дополнительных алгоритма подсчета, на выбор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 23:04:03 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
X-Citeиспользовать бд уровня mssql или oracle как хранилища, не используя их возможности. это кощунствоX-CiteТеория множеств победила Теорию итерацийгде-то я это уже видал а, да тут же 20306230 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2017, 11:51:13 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
white_niggerX-CiteОтвет: Имеет, если приложение останется на любительском уровне и не будет требовать высоких мощностей. Если из приложения планируется развить мощную высокопроизводительную ERP, то не имеет.Не могу согласиться. На ОРМе удобнее, быстрее, делать и дешевле сопровождать именно навороченные структуры и логику. Понятно, что она будет проигрывать в чистой производительности, хотя тут тоже зависит от архитектурных решений. Можно вынести самые затратные процедуры на уровень SQL сервера. В любом случае, всё зависит от конкретной задачи. Не всегда огромным задачам нужно огромное быстродействие.+500. Хороший ОРМ + юзание логики на сервере: отличное решение даже для сложных учетных задач. А если задача еще и постоянно эволюционирует, то ОРМ гораздо лучшее решение, чем хардкод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2017, 12:19:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
ксониксавтоматически заполнить контролы на форме, проверить, изменил ли что в них пользователь, валидировать введенные данные, сохранить обратно - от этой рутины они избавляютну подобный базовый функционал и просто датасет + дб-аварщина обеспечивают ксониксПолучить ОДИН объект по ID или набору критериев поискада и по критерию загрузить что требуется большого труда обычно не составляет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2017, 12:39:46 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Использовали RemObjects DataAbstract, потом пересели на самописный ORM. В целом не критично, но с ORM приятнее как-то. При работе с SQL куча строковых констант размазанная повсюду угнетает. С ORM можно хотя бы в какой-то мере переложить работу на компилятор. Ну а писать код вроде Код: pascal 1. или Код: pascal 1. одна радость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 00:26:18 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Роман ЯнковскийMyObject.Param := 123; ORM.Save(MyObject); Это не орм. Обычный объектный подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 00:58:27 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
А еще из ОРМ-ких классов генерить json-ы i xml-и - просто песня. Никакого кода почти не нужно. И как это сделать без ОРМ? Свои велосипеды-сериализаторы изобретать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 02:20:06 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
БьютиферСвои велосипеды-сериализаторы изобретать?Да, пишешь один раз функцию которая получает на вход несколько датасетов со связями в виде настроенных полей master-detail (или мб связи отдельным параметром-структурой) и выдает в ответ json включающий встроенные объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 06:41:45 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
БьютиферА еще из ОРМ-ких классов генерить json-ы i xml-и - просто песня. Никакого кода почти не нужно. И как это сделать без ОРМ? Свои велосипеды-сериализаторы изобретать? А ты их генеришь ради генерения или под заранее заданную схему ? В последнем случае я сильно сомневаюсь что "никакого кода почти не нужно", а в первом случае сильно сомневаюсь в нужности такого xml или json ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 10:45:33 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
БьютиферА еще из ОРМ-ких классов генерить json-ы i xml-и - просто песня. Никакого кода почти не нужно. И как это сделать без ОРМ? Свои велосипеды-сериализаторы изобретать? А что сложного в генерении json-ов и xml-ов? Для этого ОРМ совсем не нужен. Все велосипеды давно уже изобретены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 11:17:46 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiРоман ЯнковскийMyObject.Param := 123; ORM.Save(MyObject); Это не орм. Обычный объектный подход. А мужики-то и не знали. Оказывается объектный подход без всяких ORM умеет объект в БД сохранять раскладывая по табличкам с учетом всех его связей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 17:05:20 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 17:08:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiшаблон ActiveRecord = частный случай ORM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 17:53:04 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, С таким подходом и датасеты с селектами -- частный случай :-) ОРМ для меня -- это автоматизация и генерация. А когда запросы надо ручками писать -- это уже не ORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 18:04:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Кстати, вот вам свежая демонстрация свежей ORM под делфи от TMS -- Aurelius: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 22:04:49 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiКстати, вот вам свежая демонстрация свежей ORM под делфи от TMS -- Aurelius: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 22:10:32 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
defecator, Что помешало настроить датасет, чтобы он брал данные частями? См. fetch option. Из документации , как получить открытый на сервере курсор и фетчить из него данные на клиент по мере необходимости: Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2017, 22:26:16 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожалуйста, для чего люди используют ORM, EntityDac в частности? Я вот пытаюсь его потестить и прихожу к выводу, что он нужен только для того, чтобы не писать запросы в delphi. Сколько себя помню, то все запросы у меня оформлены в виде хранимых процедур и выполняются на сервере. Я может не с той стороны смотрю на использование ORM. Какие вообще преимущества от его использования? Заранее спасибо, за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 14:29:44 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
ajijohn, Мода и понты. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 14:52:41 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
ajijohn, Идет работа сразу с бизнес-объектами, а не с таблицами/базой. По сути -- более высокий уровень абстракции (по аналогии -- пишем на объектном языке типа делфи вместо ассемблера). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 20:27:01 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
ajijohnПодскажите, пожалуйста, для чего люди используют ORM, EntityDac в частности? Я вот пытаюсь его потестить и прихожу к выводу, что он нужен только для того, чтобы не писать запросы в delphi. Сколько себя помню, то все запросы у меня оформлены в виде хранимых процедур и выполняются на сервере. Я может не с той стороны смотрю на использование ORM. Какие вообще преимущества от его использования? Заранее спасибо, за ответы. Можно не учить SQL, но работать с БД. Большинство так и делают. У нас ВСЯ команда .NET разработчиков знают SQL на уровне только простого SELECT FROM. Все что дальше покрыто мраком для них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 20:38:33 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
На сколько я успел понять, EntityDac генерит запросы и выполняет их а-ля query, которые существенно проигрывают по производительности хранимым процедурам. Естественно, речь идет не выборке из одной таблицы с 1к записей. Пытался найти хоть какую-то информацию об использовании хранимых процедур в EntityDac, но есть очень древняя инфа о том, они не поддерживаются. Да и отладкой там как-то не все гладко получается:) Я сейчас говорю про конкретный случай - использование EntityDac. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 22:09:22 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Много лет уже не пишу на Delphi, вполне могу не знать многого. Но я в принципе не понимаю, как в языке без Garbage Collector можно использовать ORM. Ну правда. Полноценный ORM - это не просто маппер датасета в коллекцию объектов. Это ещё и ленивая подгрузка, подтягивание зависимостей (и циклических в том числе), кэширование с тучей стратегий... В своё время пытался понарисовать абстракций поверх датасетов, но постоянный AV охладил пыл. Скажете, что 'ниасилил'? Возможно. Но не могу понять, как же без Garbage Collector... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 22:09:59 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Меня еще смущает то, как там строится план выполнения запросов. Я в свое время написал компонент, в котором в качестве свойств используются ссылки на хранимые процедуры, которые и вызываются определенных условиях и меня это вполне устраивает. Вот думаю стоит ли это поменять на EntityDac, но пока больших плюсов что-то не вижу, тем более что работать с таблицами напрямую меня еще в детстве отучили. Да и при таком раскладе получается, что вся логика будет в софте, что не есть гуд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 22:28:41 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
ajijohnНа сколько я успел понять, EntityDac генерит запросы и выполняет их а-ля query, которые существенно проигрывают по производительности хранимым процедурам. Естественно, речь идет не выборке из одной таблицы с 1к записей. Пытался найти хоть какую-то информацию об использовании хранимых процедур в EntityDac, но есть очень древняя инфа о том, они не поддерживаются. Да и отладкой там как-то не все гладко получается:) Я сейчас говорю про конкретный случай - использование EntityDac. Всё прекрасно работает. И прямые запросы, и даже процедуры: https://www.devart.com/entitydac/docs/?sql_executing.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2017, 23:01:12 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiВсё прекрасно работает. И прямые запросы, и даже процедуры: https://www.devart.com/entitydac/docs/?sql_executing.htm Работать то работает, но как с помощь хранимой процедуры вернуть табличное значение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 00:24:45 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
AJi, Прямо так и возвращается, через курсор: http://forums.devart.com/viewtopic.php?p=113822#p113822 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 09:24:37 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Если бы я делал проект типа веб-сервиса то возможно и использовал бы ORM. А в случае обычного VCL приложения смысла не вижу, зачем усолжнять то что отлажено и отполировано годами человекочасов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 10:35:47 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Судя по тому что Вы пишете с знаниями в этой области у Вас не очень. Уверяю Вас, первый блин в этой области у Вас будет комом, на чём бы Вы не начали писать. Потратите только деньги и время. Потому берити готовую ERP и допиливайте под свои нужды. Там практически всё есть что нужно для Вашей задачи и уже более менее оптимально написано. Если не хотите тратиться на что то вроде AP+ (мне нравится, русского наверное нет) то посмотрите в сторону open source Metasfresh ERP (тоже неплоха но надо разбираться, русский не проверял но даже если нет можно перевести за пару дней). Связываться с тяжеловесами типа SAP не рекомендую, скорее всего не потянете по деньгам, а если и денег достаточно то не факт что спецов найдёте которые могут что то стоящее сделать, что работает быстро и удобно в использовании. Короче не начинайте изобретать велосипед, на уровне Ваших задач давно уже всё есть и отлажено. Просто учитесь искать и не жмитесь на расходы по изучению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 10:50:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiAJi, Прямо так и возвращается, через курсор: http://forums.devart.com/viewtopic.php?p=113822#p113822 Тут не используются хранимые процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 10:56:45 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
в догонку 4 Open Source ERP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:13:15 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Диез, авторВ своё время пытался понарисовать абстракций поверх датасетов, но постоянный AV охладил пыл Нужно ли их постоянно создавать и разрушать? Я у себя в одном из проектов использую пулл датасетов. Удобно, нужен - взял - поюзал. Не нужно - вернул в пул. Всё чисто, аккуратно и просто, пул - ну может 20 строк кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:16:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Сейчас ответили из Metasfresh, русский язык уже есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:17:51 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
AJi, Используется. Хранимые процедуры вызываются стандартным методом в обычном sql-query вида: begin procname(); end; -- например, для оракла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:18:59 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Mikhail TchervonenkoСейчас ответили из Metasfresh, русский язык уже есть сорри, я их неправильно понял, среда мультиязычная , русский могут быстро добавить если будет интерес ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:20:09 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Как и любой инструмент, надо уметь использовать и понимать где его целесообразно применить. Честно говоря надоедает рутина. Вот надо себе прикручивать в программу БД (для хранения настроек, результатов расчетов и т.д.). Надо создавать таблицы, кидать dataset-ы писать "...Field.AsFloat := ...", Edit, Post.Кучу элементарных запросов "select * from..." Потом, проект развивается, структура данных изменяется (как правило надо добавлять новые поля). Опять лезь в DataSet и т.д. Уже раздражает. Хочется жизнь упростить. А если нужен будет сложный (эффективный) запрос, уж как нибудь осилю :) Так что для себя решил в новом проекте начать использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:23:59 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
написали что сейчас обновляют прайс лист (это не значит что платить обязательно, система бесплатна если сам во всём разбираешься, за поддержку 24€ в месяз за пользователя). Каждый месяц можно отказаться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 11:25:24 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiAJi, Используется. Хранимые процедуры вызываются стандартным методом в обычном sql-query вида: begin procname(); end; -- например, для оракла. Просто я видимо привык, использовать хранимые процедуры c помощью специализированных компонентов, у которых в свойствах просто нужно прописать имя процедуры Но вот никак не отпускает меня мысль, что обновление и добавление данных в таблицу напрямую - это не есть хорошо. Ну и плюс при использовании процедур EntityDac ну никак не поймет где и что обновлять нужно, а значит кардинально ничего и не поменяется, просто добавится лишняя прослойка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 12:14:05 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Чем плохо работать напрямую с таблицей, при условии что все запросы заранее отлажены на тестовом полигоне? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 12:34:40 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Как минимум - это небезопасно. Пользователю нужно будет давать права на добавление, изменение, удаление данных из таблицы. Если, например, нужно обновить несколько таблиц в результате действий пользователя, то в случае с хранимыми процедурами вся логика будет на сервере, а при использовании ORM нужно будет всю логику реализовывать в софте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 12:45:59 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
AJi, У нас пользователь напрямую бд не видит. Работает через веб сервисы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:06:26 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
А в сервисах уже выполняяються запросы к таблицам. Причем сам текст запросов лежит в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:07:53 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
rgreatЧем плохо работать напрямую с таблицей, при условии что все запросы заранее отлажены на тестовом полигоне?Это реальный вопрос или стёб ? Просто "в лоб" записывать значение в таблицу крайне нежелательно, т.к. это может серьезно нарушить бизнес логику (не говоря уже о халатности или злом умысле). Примеры, надеюсь не нужны ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:08:25 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
LSVЭто реальный вопрос или стёб ? Реальный. Просто "в лоб" записывать значение в таблицу крайне нежелательно, т.к. это может серьезно нарушить бизнес логику (не говоря уже о халатности или злом умысле). Примеры, надеюсь не нужны ?Давай пример как нарушить логику, если произвольные запросы запрещены, и права у юзеров только на определенные запросы к вебсервису. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:15:47 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Hello, Lsv! You wrote on 19 мая 2017 г. 13:15:03: Lsv> Просто "в лоб" записывать значение в таблицу крайне нежелательно, т.к. это может серьезно нарушить бизнес логикуцЫрк. с конями. на дротЕ. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:16:43 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
LSV, запись в лоб в таблицу ничем не отличается от записи в лоб через процедуру -- в последнем случае лишь больше геморроя появляется для программиста по написанию лишней прослойки. Это для случаев, когда у нас простая система с записью/сохранением данных без всякой сложной логики и сторонними сервисами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:21:31 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDi, причем разницы нет даже на уровне прав доступа в общем случае (что для выполнения запроса из процедуры, что для выполнения запроса напрямую -- одни и те же права нужны будут). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:23:30 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
rgreatДавай пример как нарушить логику, если произвольные запросы запрещены, и права у юзеров только на определенные запросы к вебсервису. Ну вот о том и печь, что доступ есть не к таблице в БД, а запросам вебсервиса. Я же говорю о том, что EntityDac напрямую работает с таблицами и это мне не нравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:23:51 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiJaDi, причем разницы нет даже на уровне прав доступа в общем случае (что для выполнения запроса из процедуры, что для выполнения запроса напрямую -- одни и те же права нужны будут). Если дать доступ к процедуре, то доступ к таблице давать не нужно. По крайней мере это применимо для MS SQL сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:25:41 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Hello, Aji! You wrote on 19 мая 2017 г. 13:47:06: Aji> EntityDac напрямую работает с таблицами и это мне не нравится.любой DAC работает напрямую. потому что он DAC. а вот концепция ORM подразумевает работу с данными только через жопу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:48:40 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийа вот концепция ORM подразумевает работу с данными только через жопу. Очень емкое замечание:) И очень похожее не правду:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 13:51:21 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
JaDiзапись в лоб в таблицу ничем не отличается от записи в лоб через процедуру -- в последнем случае лишь больше геморроя появляется для программиста по написанию лишней прослойки. Это для случаев, когда у нас простая система с записью/сохранением данных без всякой сложной логики и сторонними сервисами. .... причем разницы нет даже на уровне прав доступа в общем случае (что для выполнения запроса из процедуры, что для выполнения запроса напрямую -- одни и те же права нужны будут)1. Будет отличаться тем, что в случае с ХП можно выполнить много проверок и сделать сколь угодно сложные действия в одной транзакции. И это никак не лишняя прослойка. Это мощная возможность. 2. Чушь. Права на ХП никак не связаны с правами на таблицу. И в ХП есть возможность делать только дозволенные действия. В отличии от прямого доступа к таблице, где ковыряй чо хош. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 14:20:58 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
По идее ORM возможно будет неплох когда тебе надо дать некий API сторонним разработчикам к своей БД. Выдал им ORM с классами работы с твоей БД и свободны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 14:22:11 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Вы слишком многого хотите -- ORM это генерация простых рутинных запросов по работе с данными, которые покрывает 90% всех потребностей типичного бизнес-приложения. Сложную логику оставляйте для процедур -- никто вам не запрещает их использовать вместе с ORM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 14:27:10 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Hello, Jadi! You wrote on 19 мая 2017 г. 15:53:30: Jadi> покрывает 90% всех потребностей типичного бизнес-приложения.уровня автоматизации пивного ларька. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 15:53:52 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий, Для тех, кто не умеет пользоваться представлениями (view) -- да, ORM дальше ларька использовать не смогут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 16:13:16 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Короче, тут каждый лучше других знает, что такое ORM, но в новом проекте никто использовать не собирается и завешенных проектов с ORM ни у кого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 16:16:10 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Любую АСУ можно построить без использования ORM, View и Stored Procedure. Хотя я ни в коем случае не говорю что они не нужны или бесполезны в общем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2017, 16:18:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Использовал ORM, но на Java (Hibernate). По мере использования и освоения ORM подхода (да, она требует времени на освоение и немалого) впечатления менялись: сперва восторг (хотя сперва на самом деле скептически отнесся), т.к. работать с готовой объектной моделью при написании бизнес-логики куда приятнее, чем постоянно что-то подгружать, конвертировать и т.п. Далее было понимание, что не все так радужно, есть немало проблем. Впрочем, большинство из них решались освоением нюансов этого самого Hibernate. В итоге: ORM вполне рабочий и полезный подход, но, конечно, надо учитывать потребности проекта. Владея этим подходом и хорошим фреймворком, его реализующим, можно гораздо быстрее получить рабочее решение, что для бизнеса, как правило, очень важно. Причем, вопреки распространенному мнению, производительности можно добиться весьма неплохой. ORM фреймворки обычно пишут люди, знающие SQL и общие принципы работы СУБД на таком уровне, на котором далеко не каждый программист знает. Плюс как правило из коробки идет кэширование. Но, по крайней мере в случае с Хибернейтом (а скорее всего не только с ним), для этого нужно знать как его правильно готовить, в т.ч. саму объектную модель. А это все куда больший объем информации, чем надо знать без ORM. К тому же, ORM не избавляет от необходимости как минимум кому-то в команде хорошо знать SQL и СУБД на хорошем уровне. В общем, если цель - знать поменьше, то ORM не лучший выбор. Для т.н. high-load проектов я бы тоже не стал использовать ORM. Не только потому, что выжать самые оптимальные запросы будет сложно, но и потому, что в таких проектах скорее всего будут еще кэши на key-value хранилищах и идиллии с объектной моделью все равно не получится. В остальных случаях как минимум стоит рассмотреть возможность использования ORM подхода. Другое дело, есть ли хорошие ORM фреймворки для Delphi. Тут не подскажу, хотя лично мне симпатичен mORMot, т.к. его разработчик зарекомендовал себя хорошо. Плюс в комплекте средства для создания REST API. По поводу "защиты" БД, торчащей в интернет, посредством оборачивания INSERT'ов и UPDATE'ов в хранимки - весьма сомнительная защита. Тут и в самих хранимках легко ошибиться, скажем, подставив аргумент в запрос и получив возможность SQL-инъекции (привет проблемы 10-летней давности). И права можно не верно задать. И просто на эксплойт нарваться, позволяющий лазить по БД куда вроде бы не положено. В общем, такой БД я бы никаких серьезных данных не доверил. Сервер БД должен быть доступен исключительно внутри сети бакенда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 03:26:42 |
|
||
|
Есть ли смысл начниать новый проект на базе ORM?
|
|||
|---|---|---|---|
|
#18+
Есть такой продукт, как PowerDesigner, который по концептуальной модели формирует кучу триггеров, индексов и констрейнов и прочего добра на уровне ДБ. Дать это написать программеру процедур это - адЪ. Прогер может и "пролюбить" кое что. Не вижу чем это чем лучше ОРМ. Пользовал и то и другое. В двух словах: процедуры - пролетают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2017, 04:16:33 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2042281]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
205ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
102ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 574ms |

| 0 / 0 |
