powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Есть ли смысл начниать новый проект на базе ORM?
117 сообщений из 117, показаны все 5 страниц
Есть ли смысл начниать новый проект на базе ORM?
    #39421533
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Я какое-то время изучала существующие объектные СУБД, и заодно объектно-реляционные "прослойки".
Очень привлекательно опереировать объектами вместо барахтанья в SQL.

Выяснилось, что и для Delphi они тоже есть (и уже давно) : DORM? tiOPF, hcOPF...
Демки понятные, хотя и порой немного страшные.

Начинаю новый проект (учет заявок и контроль их выполнения для систем комплектования заказов, иключительно десктопный вариант), хотелось бы узнать мнение профессионалов: стоит ли связываться с ORM? В качестве СУБД хранения наверное, выберу FireBird 2.1.

Расскажите о своем опыте использования ORM, какую именно систему порекомендуете.

С уважением, Афалина.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421539
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Зачем ORM ? Чистый SQL гораздо проще и эффективнее.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421540
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддерживаю предыдущего оратора.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421550
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тащить микрософтовский велосипед в чуждую ему инфраструктуру?
зачем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421552
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecatorЗачем ORM ? Чистый SQL гораздо проще и эффективнее.
Согласна, эффективнее.
Тем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.
И, мне кажется, обычно не очень хорошо, когда в приложении используется больше одного языка программирования.

Java-разработчики чаще используют ORM.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421558
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Афалина!
You wrote on 17 марта 2017 г. 14:41:38:

Афалина> Java-разработчики чаще используют ORM.чем армяне! (с)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421559
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящийтащить микрософтовский велосипед в чуждую ему инфраструктуру?
зачем?

Почему "микрософтовский"? Не поняла, извините.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421560
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя ус отклеился
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421562
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаТем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.Не используйте сложных, тяжеловестных SQL запросов и писать станет гораздо проще.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421565
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
rgreatАфалинаТем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.Не используйте сложных, тяжеловестных SQL запросов и писать станет гораздо проще.

подозреваю, что у ТС знания SQL только самые начальные, поэтому хочется странного
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421569
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreatАфалинаТем не менее, на "чистом SQL" (как и на "чистом асемблере") писать тяжелее.Не используйте сложных, тяжеловестных SQL запросов и писать станет гораздо проще.

Запросы пишутся исходя из решаемых задач.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421571
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Афалина,

"Исходите" проще.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421578
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, rgreat:

- расскажите, пожалуйста, о своем опыте использования ORM + Delphi.

Какие именно использовали, какие подводные камни попались, из-за чего сейчас относитесь к ним негативно.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421583
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql это dsl и стоящие за ними субд десятилетиями выдрючивали чтоб эффективно выполнять комплексные операции над множествами записей

использовать развитые субд как тупорылые хранилища данных чтобы извлекать их оттуда и манипулировать вовне в построчном slow-by-slow стиле иногда конечно может и имеет смысл но возможно лишь чуть чаще чем никогда
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421596
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не использовал, но читаю про TMS Aurelius (есть цикл статей и дока но офиц сайте)
есть также Devart EntityDAC

сдается, что FireBird для ORM не самая подходящая СУБД
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421598
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и базы надо проектировать тогда по другому
а не как в институте учили, (по крайней мере меня)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421607
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаКакие именно использовали, какие подводные камни попались, из-за чего сейчас относитесь к ним негативно.SAP, Вектор-М.

Двумя словами: Адовые монстры, все подробности реализации задачи в которых не знает вообще никто.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421609
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeyM123...
сдается, что FireBird для ORM не самая подходящая СУБД

Есть данные, что FireBird "по скорости", на базах с простой струтурой (то есть таких, которые генерируются ORM) в сходном аппаратном окружении, может и обойти другие СУБД.

Или вы говорите не о скорости?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421610
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь идет не напрямую о ОРМ, конечно, а о её реализации там.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421617
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreatАфалинаКакие именно использовали, какие подводные камни попались, из-за чего сейчас относитесь к ним негативно.SAP, Вектор-М.

Двумя словами: Адовые монстры, все подробности реализации задачи в которых не знает вообще никто.

Извините, я именно про ORM для Delphi спрашивала. У вас есть опыт работы с ними?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421621
AlexeyM123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаAlexeyM123...
сдается, что FireBird для ORM не самая подходящая СУБД

Есть данные, что FireBird "по скорости", на базах с простой струтурой (то есть таких, которые генерируются ORM) в сходном аппаратном окружении, может и обойти другие СУБД.

Или вы говорите не о скорости?

"простой структурой" ?
почитайте например Len Silverston
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421623
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу: Террасофт CRM. Для общего впечатления можно поискать в ютубе. Много наглядных уроков.
Очень успешный проект и с правильной реализацией.
Одна беда - он сильно платный.

Еще можно посмотреть на ISCRA.RU.

Других более-менее функциональных ORM пожалуй не назову. Ибо много унылых.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421636
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSV,

спасибо.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421639
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421642
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
АфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки?
Зачем ?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421652
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecatorАфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки?
Зачем ?
Спасибо, я вас поняла.



Может, кто-то другой использовал?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421689
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаВ качестве СУБД хранения наверное, выберу FireBird 2.1.Не круто.
Начинайте уже на 1.0 или хотя б 1.5, раз мертвячину любите.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421692
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаПолучается, что зесь практически никто не использовал в своих Delphi-проектах ORM-фреймворки?Готовое редко используют. Свои пишут. :)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421715
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockАфалинаВ качестве СУБД хранения наверное, выберу FireBird 2.1.Не круто.
Начинайте уже на 1.0 или хотя б 1.5, раз мертвячину любите.
Как раз "круто". :)

Есть серьезные причины, никак не связанные с данной темой.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421868
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаЕсть серьезные причины, никак не связанные с данной темой.Я и не сомневался.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421887
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Афалина,

Мне нравится Laravel. Правда это не Delphi. :-)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421897
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаJava-разработчики чаще используют ORM.
Я бы не рекомендовал равняться на Java-разработчиков в этой части.
Такая срань, простите за мой хранцусский, получается.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421902
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421904
Бьютифер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый дельфовый ОРМ - DataAbstract от RemObjects. Пользовал, доволен.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421911
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonПричина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.Ну понятно.
А новый, как и отдельный сервер для базы заранее даже не проектируется.
Стоит ли начинать.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421917
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockmakhaonПричина обычно проста и прозаична. На этом же компе крутится какой-то кривософт, который на новых версиях fb просто не работает.Ну понятно.
А новый, как и отдельный сервер для базы заранее даже не проектируется.
Стоит ли начинать.
Дорогие телепаты! :)

Если вы хотите знать, как одновременно использовать несколько серверов FireBird - прочтите об этом: http://www.ibase.ru/inst_manual/
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421919
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БьютиферСамый дельфовый ОРМ - DataAbstract от RemObjects. Пользовал, доволен.

Очень инетересно.

Расскажите, пожалуйста (насколько это возможно) - для какой прикладной области решалась задача, какие планировались нагрузки и объемы данных. Ну и вообще - как все шло и чем все закончилось.

Спасибо.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421929
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаЕсли вы хотите знать, как одновременно использовать несколько серверов FireBirdНу тогда причина начинать новый проект на мертвой версии СУБД - действительно серьезная. На спор на много денег, например)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421945
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто скажите что вам не интересно изучать SQL но хочется работать с БД.

Используя орм вы заранее отказываетесь от плюшек БД. Каких-то специальных конструкций и т.п.
К примеру преславутый entity framework для .Net не умеет использовать рекурсивные cte в mssql. И тогда начинается солянка, часть в функциях, часть в хп, часть в клиентском коде.

Может в каком нибудь проекте уровня "Мне тут программка надо накладные считать", сказал Вася Иванов владелец ларька и у него из БД только Access и тот ломаный, может и покатит. Тем более если другой владелец ларька Петя Петров имеет только Excel, такой же ломаный, тоже хочет такую программку.

Я бы сказал, что в Delphi ORM не распространены. Большинство толковых разработчков Delphi хорошо владеют SQL чтобы писать быстрые запросы.

Наши разработчики использующие C/AL и .Net (в обоих свои ОРМ) понятия не имеют как работает MSSQL и постоянно у них в воздухе висит вопрос, а почему на 3-ех терабайтной БД все тупит и тормозит и иногда возникают неожиданные артефакты в данных (непонимание изолированности транзакций) и то, что с данными в SQL надо работать как с множеством, и не итеративно. Там действует совершенно другая алгебра. В то время как службы написанные Delphi разработчиками работают уже лет 5 и никто не вспоминает про них, хотя они также активно работают с БД.

Но если вы твердо уверенны в использовании какой-нибудь ОРМ в своем проекте, то посмотрите в сторону DevArt. У них сильные компоненты работы с БД. Я думаю и EntityDAC тоже будет хороша.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421969
Афалина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как везде, советы дают те, кто никогда не использовал.
...
Спасибо всем.

Хороших выходных.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421974
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АфалинаКак везде, советы дают те, кто никогда не использовал.
к примеру.
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 нафиг не нужны.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421979
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавлю, что ORM до сих пор имеют популярность, но сфера их применения достаточно мутная, и статистики как таковой нет (я не видел).
Как правило, ORM генерирует весьма универсальные запросы к СУБД, в результате чего получается полное дерьмо, т.к. "универсального оптимизатора" не существует, и запросы нужно дотачивать для конкретной СУБД. Классическим примером является Hibernate.
В итоге. Либо люди используют какой-то внешний ORM, и мучаются, или используют собственный ORM, который кроме них нафиг никому не нужен.

Вот такая беда с ORM. В частности
http://use-the-index-luke.com/blog/2013-04/the-two-top-performance-problems-caused-by-ORM-tools
и многое другое.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421987
Бьютифер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Простой пример: большая система. поменяли структуру базы.
Вопрос: как узнать, что все запросы остались рабочими без ОРМ?

Ответ без ОРМ: ???
Ответ с ОРМ: проект достаточно просто перекомпилировать.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421996
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бьютиферkdv,

Простой пример: большая система. поменяли структуру базы.
Вопрос: как узнать, что все запросы остались рабочими без ОРМ?

Ответ без ОРМ: ???
Ответ с ОРМ: проект достаточно просто перекомпилировать.

Вернее, с ОРМ - проект просто достаточно попытаться перекомпилировать.
Ну, по крайней мере, станет понятно, где изменилась структура.
Это да.
...
А без ОРМ - либо с помощью запуска набора тестов (ну мы же тесты все время пишем, по ходу расширения системы, да?) :)
Либо с помощью разных приемов, которых у каждого разработчика/руководителя проекта со временем набирается достаточно, чтобы выжить, обычно эти приемы просты, утомительны и всем известны.

Вообще, маленькие модификации вписываются обычно хорошо, а большие не вписываются нигде. И просто сообщениями об ошибках в компайл-тайме вы не обойдетесь, главная проблема - в логике. А тут ни "классические" приложения, ни ОРМ-базед не спасают.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39421997
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бьютиферkdv,

Простой пример: большая система. поменяли структуру базы.
Вопрос: как узнать, что все запросы остались рабочими без ОРМ?

Ответ без ОРМ: ???
Ответ с ОРМ: проект достаточно просто перекомпилировать.
Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы.
Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422000
Товарищ старшина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteБьютиферkdv,

Простой пример: большая система. поменяли структуру базы.
Вопрос: как узнать, что все запросы остались рабочими без ОРМ?

Ответ без ОРМ: ???
Ответ с ОРМ: проект достаточно просто перекомпилировать.
Вы что-то путаете.Если меняют структуру БД, то в этом случае надо заново перемапливать объекты, а где гарантия что отношение объектов останется прежним или орм построит верные запросы.
Если вы про замену БД, то это надуманная проблема. Ни разу не видел, чтобы вбуханные миллионы в сервера, ПО, так легко меняли к примеру с mssql на oracle.

Имхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы.
Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422007
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ старшина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, но когда дошел до оконных функций с кадрированием - сдался.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422011
Бьютифер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ старшинаИмхо, речь - об изменении объектной бизнес - модели. На основе измененной бизнес-модели ОРМ генерирует DDL - скрипт, модифицирующий структуру базы.
Именно в таком порядке. Хотя, слышал, что есть ORM "наоборот" - генерирует объектную модель на основе структуры базы. Но речь, имхо, не о реверс-генерации.ОРМ работает в обе стороны: Code First и Database First. В обоих случаях обновление бизнес-модели происходит либо:
1. Правятся классы в приложении - генерируется DDL на изменение БД.
2. Правятся таблицы БД - объектная модель пересоздается по клику мышки автоматом.

ОРМ дает качественный CRUD код и легко обновляется при изменении бизнес-модели. Если нужно замутить вещи посложнее, то тут мужно менять подход. Вместо написания 4-х метровых sql-ей нужно сделать декомпозицию и заменить один монолит на несколько более мелких операторов и в коде их соединить. Так даже понятнее читается, чем портянка на 4-метра и для серввера БД, кстате тоже. Ну или на крайний случай замапить ОРМ на серверную вьюшку или процедуру.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422020
Бьютифер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteОдин из примеров моей практики, ребята из .Net команды запустили некое обновление БД (тестовое) переводящее ее из состояния А в Б. При этом сделали это через ORM, т.к. их знаний SQL хватало только на select from. На все ушло около 2 часов. update delete alter и т.п. Проблема стала в том, что окно на обновление исключительно не более 15 минут. После чего, я потратив 30 минут на изучение что надо изменить и получить, написал за 10 минут скрипт, который перевел БД из состояния А в Б за 1 минуту. Теория множеств победила Теорию итераций.Ясен пончик код миграции ОРМ нужно проверять глазами и править если нужно. Только в этом случае код будет на языке приложения, а не DDL. Сначало непривычно так делать после десятилетий пользования SQL, но потом осознаешь, что вроде оно так и надо.

ПС.
Некоторые до сих пор и на гитаре играют без нот. Так даже лучше ))
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422037
Бьютифер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДА без ОРМ - либо с помощью запуска набора тестов (ну мы же тесты все время пишем, по ходу расширения системы, да?) :)
Либо с помощью разных приемов, которых у каждого разработчика/руководителя проекта со временем набирается достаточно, чтобы выжить, обычно эти приемы просты, утомительны и всем известны.от же-ж жжет напалмом. уважаю. какие приемы? кому известны?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422075
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытались в свое время использовать ORM от DevExpress (не на Delphi, правда). Остались стойкие отрицательные впечатления, потому что автоматически сгенерированные запросы были, мягко говоря, неоптимальны.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422086
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiПытались в свое время использовать ORM от DevExpress (не на Delphi, правда). Остались стойкие отрицательные впечатления, потому что автоматически сгенерированные запросы были, мягко говоря, неоптимальны.
Тоже могу сказать и про entity :) проценку всеравно сделали в ХП, ну не может орм сгенерировать запрос к 1 тб за 400 мс и проценить 250 позиций

Автор же спрашивает имеет ли смысл начинать новый проект с ОРМ и если да, то какой.

Ответ: Имеет, если приложение останется на любительском уровне и не будет требовать высоких мощностей. Если из приложения планируется развить мощную высокопроизводительную ERP, то не имеет.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422350
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteОтвет: Имеет, если приложение останется на любительском уровне и не будет требовать высоких мощностей. Если из приложения планируется развить мощную высокопроизводительную ERP, то не имеет.Не могу согласиться. На ОРМе удобнее, быстрее, делать и дешевле сопровождать именно навороченные структуры и логику. Понятно, что она будет проигрывать в чистой производительности, хотя тут тоже зависит от архитектурных решений. Можно вынести самые затратные процедуры на уровень SQL сервера. В любом случае, всё зависит от конкретной задачи. Не всегда огромным задачам нужно огромное быстродействие.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422374
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю что в контексте обсуждения ОРМ забыта одна значительная функция, обуславливающая распространенное использования этого понятия в большинстве PHP - подобных языков программирования. А именно - кэширование данных запроса, что является значительным послаблением для БД при большом количестве одинаковых запросов.

В дельфи такой функционал не только не актуален, но и не нужен. Благодаря чему разработчики могут снизить сложность своей программы избавляясь от лишнего кода. Потому что у использования ОРМ есть хитрый недостаток - увеличение сложности отладки. Если для связки SQL+Delphi достаточно знать основы этих двух языков, то для связки SQL-ORM-DELPHI уже нужно знать не только SQL+Delphi на уровне, достаточном для понимания машинерии ОРМ, но и саму специфику ОРМ.

Вот, кстати, отличный пример:
Бьютиферзамапить ОРМ на серверную вьюшку или процедуру
Во сколько раз возрастет сложность решения при таком подходе? А если часть логики из ОРМ еще и вынесена на клиент?

Понятно, что пока программа пишется, выше указанных проблем нет. Проблема отладки возникнет когда программа перейдет в стадию активной поддержки.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422386
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stanilar,

мне кажется, что наоборот - ORM пытается скрыть "детали реализации", т.е. сделать невидимый persistent storage в СУБД. А это годится разве что для хранения каких-то мелких данных, типа клиентских настроек, и прочих "телефонных книг". В реале - чем сложнее модель данных в СУБД, тем сложнее запросы, и тем сильнее они требуют оптимизации и корректного написания.
К примеру, мы консультируем по проблемам производительности, и как минимум 60% - это кривое управление транзакциями и хреновые запросы к СУБД. Без ORM. А уж с ORM эта беда возрастает многократно.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422403
ксоникс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMHO, ORM изначально придуманы для CRUD и именно в этом они хороши. Получить ОДИН объект по ID или набору критериев поиска, автоматически заполнить контролы на форме, проверить, изменил ли что в них пользователь, валидировать введенные данные, сохранить обратно - от этой рутины они избавляют. Если ORM справляется с объектами сложной структуры (хранящимися в нескольких связанных таблицах) типа документа с табличными частями и кучей лукап-комбобоксов (с выбором значений из справочников) - то это приличная автоматизация муторного труда программиста.

Для реализации табличной формы типа списка документов с набором фильтров сверху ORM уже как бы не очень и нужен. Так как набор данных - read-only. Об отчетах и т.п. даже не говорю.

А вот когда программист решает делать процедуры обработки данных с помощью ORM (ибо есть такой соблазн) с запросом сразу кучи бизнес-объектов и перебором их в цикле - тут вполне можно ждать тормозов, может быть, даже сбоев и, как итог, недовольства и гонений на никудышную ORM.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422705
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv

Под стадией "активной поддержки" мною понимается, например, та ситуация, когда к разработчику подходит бухгалтер и спрашивает почему в одном окне программы счет на одну копейку больше чем надо, а в другом - меньше. Именно в такие моменты и проявляется вся кривизна любых решений.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39422712
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stanilar,

ээээ. до сих пор не забуду, как на Кондровском бумажном комбинате в 1991 году внедряли бухгалтерию на MUMPS (ДИАМС 3.1). И бухи нас спросили - а чего это вы так КТУ считаете? Ну, мы им объяснили (при этом я офигел, что они в подсчете КТУ были ни в зуб ногой), после чего я ради прикола написал 4 дополнительных алгоритма подсчета, на выбор.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423005
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Citeиспользовать бд уровня mssql или oracle как хранилища, не используя их возможности. это кощунствоX-CiteТеория множеств победила Теорию итерацийгде-то я это уже видал
а, да тут же 20306230
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423061
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerX-CiteОтвет: Имеет, если приложение останется на любительском уровне и не будет требовать высоких мощностей. Если из приложения планируется развить мощную высокопроизводительную ERP, то не имеет.Не могу согласиться. На ОРМе удобнее, быстрее, делать и дешевле сопровождать именно навороченные структуры и логику. Понятно, что она будет проигрывать в чистой производительности, хотя тут тоже зависит от архитектурных решений. Можно вынести самые затратные процедуры на уровень SQL сервера. В любом случае, всё зависит от конкретной задачи. Не всегда огромным задачам нужно огромное быстродействие.+500. Хороший ОРМ + юзание логики на сервере: отличное решение даже для сложных учетных задач. А если задача еще и постоянно эволюционирует, то ОРМ гораздо лучшее решение, чем хардкод.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423094
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ксониксавтоматически заполнить контролы на форме, проверить, изменил ли что в них пользователь, валидировать введенные данные, сохранить обратно - от этой рутины они избавляютну подобный базовый функционал и просто датасет + дб-аварщина обеспечивают
ксониксПолучить ОДИН объект по ID или набору критериев поискада и по критерию загрузить что требуется большого труда обычно не составляет
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423670
Роман Янковский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовали RemObjects DataAbstract, потом пересели на самописный ORM. В целом не критично, но с ORM приятнее как-то. При работе с SQL куча строковых констант размазанная повсюду угнетает. С ORM можно хотя бы в какой-то мере переложить работу на компилятор.

Ну а писать код вроде
Код: pascal
1.
MyObject := ORM.LoadObject<TMyObject>(ObjectID);

или
Код: pascal
1.
MyObject.Param := 123; ORM.Save(MyObject);

одна радость.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423673
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман ЯнковскийMyObject.Param := 123; ORM.Save(MyObject);
Это не орм. Обычный объектный подход.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423680
Бьютифер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще из ОРМ-ких классов генерить json-ы i xml-и - просто песня. Никакого кода почти не нужно. И как это сделать без ОРМ? Свои велосипеды-сериализаторы изобретать?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423697
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БьютиферСвои велосипеды-сериализаторы изобретать?Да, пишешь один раз функцию которая получает на вход несколько датасетов со связями в виде настроенных полей master-detail (или мб связи отдельным параметром-структурой) и выдает в ответ json включающий встроенные объекты.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423820
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БьютиферА еще из ОРМ-ких классов генерить json-ы i xml-и - просто песня. Никакого кода почти не нужно. И как это сделать без ОРМ? Свои велосипеды-сериализаторы изобретать?

А ты их генеришь ради генерения или под заранее заданную схему ? В последнем случае я сильно сомневаюсь что "никакого кода почти не нужно", а в первом случае сильно сомневаюсь в нужности такого xml или json
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39423863
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БьютиферА еще из ОРМ-ких классов генерить json-ы i xml-и - просто песня. Никакого кода почти не нужно. И как это сделать без ОРМ? Свои велосипеды-сериализаторы изобретать?
А что сложного в генерении json-ов и xml-ов? Для этого ОРМ совсем не нужен. Все велосипеды давно уже изобретены.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424267
Роман Янковский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiРоман ЯнковскийMyObject.Param := 123; ORM.Save(MyObject);
Это не орм. Обычный объектный подход.

А мужики-то и не знали. Оказывается объектный подход без всяких ORM умеет объект в БД сохранять раскладывая по табличкам с учетом всех его связей.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424273
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман Янковский,

Именно. См. шаблон ActiveRecord .
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424308
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiшаблон ActiveRecord
= частный случай ORM
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424315
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev,

С таким подходом и датасеты с селектами -- частный случай :-) ОРМ для меня -- это автоматизация и генерация. А когда запросы надо ручками писать -- это уже не ORM.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424415
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, вот вам свежая демонстрация свежей ORM под делфи от TMS -- Aurelius:

YouTube Video
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424416
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
JaDiКстати, вот вам свежая демонстрация свежей ORM под делфи от TMS -- Aurelius:

YouTube Video
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39424420
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

Что помешало настроить датасет, чтобы он брал данные частями? См. fetch option.

Из документации , как получить открытый на сервере курсор и фетчить из него данные на клиент по мере необходимости:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
var
  Cursor: ICriteriaCursor;
begin
  Cursor := Manager.Find<TPerson>.Open;
  AureliusDataset1.SetSourceCursor(Cursor);
  // Or just this single line version:
  AureliusDataset1.SetSourceCursor(Manager.Find<TPerson>.Open)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455427
ajijohn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, пожалуйста, для чего люди используют ORM, EntityDac в частности? Я вот пытаюсь его потестить и прихожу к выводу, что он нужен только для того, чтобы не писать запросы в delphi.
Сколько себя помню, то все запросы у меня оформлены в виде хранимых процедур и выполняются на сервере. Я может не с той стороны смотрю на использование ORM. Какие вообще преимущества от его использования?

Заранее спасибо, за ответы.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455446
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ajijohn,

Мода и понты. ИМХО.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455660
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ajijohn,

Идет работа сразу с бизнес-объектами, а не с таблицами/базой. По сути -- более высокий уровень абстракции (по аналогии -- пишем на объектном языке типа делфи вместо ассемблера).
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455662
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ajijohnПодскажите, пожалуйста, для чего люди используют ORM, EntityDac в частности? Я вот пытаюсь его потестить и прихожу к выводу, что он нужен только для того, чтобы не писать запросы в delphi.
Сколько себя помню, то все запросы у меня оформлены в виде хранимых процедур и выполняются на сервере. Я может не с той стороны смотрю на использование ORM. Какие вообще преимущества от его использования?

Заранее спасибо, за ответы.
Можно не учить SQL, но работать с БД. Большинство так и делают. У нас ВСЯ команда .NET разработчиков знают SQL на уровне только простого SELECT FROM. Все что дальше покрыто мраком для них.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455696
ajijohn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сколько я успел понять, EntityDac генерит запросы и выполняет их а-ля query, которые существенно проигрывают по производительности хранимым процедурам. Естественно, речь идет не выборке из одной таблицы с 1к записей.
Пытался найти хоть какую-то информацию об использовании хранимых процедур в EntityDac, но есть очень древняя инфа о том, они не поддерживаются.
Да и отладкой там как-то не все гладко получается:) Я сейчас говорю про конкретный случай - использование EntityDac.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455697
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Много лет уже не пишу на Delphi, вполне могу не знать многого.

Но я в принципе не понимаю, как в языке без Garbage Collector можно использовать ORM.

Ну правда. Полноценный ORM - это не просто маппер датасета в коллекцию объектов. Это ещё и ленивая подгрузка, подтягивание зависимостей (и циклических в том числе), кэширование с тучей стратегий...

В своё время пытался понарисовать абстракций поверх датасетов, но постоянный AV охладил пыл. Скажете, что 'ниасилил'? Возможно. Но не могу понять, как же без Garbage Collector...
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455706
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Меня еще смущает то, как там строится план выполнения запросов.
Я в свое время написал компонент, в котором в качестве свойств используются ссылки на хранимые процедуры, которые и вызываются определенных условиях и меня это вполне устраивает.
Вот думаю стоит ли это поменять на EntityDac, но пока больших плюсов что-то не вижу, тем более что работать с таблицами напрямую меня еще в детстве отучили.
Да и при таком раскладе получается, что вся логика будет в софте, что не есть гуд.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455716
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ajijohnНа сколько я успел понять, EntityDac генерит запросы и выполняет их а-ля query, которые существенно проигрывают по производительности хранимым процедурам. Естественно, речь идет не выборке из одной таблицы с 1к записей.
Пытался найти хоть какую-то информацию об использовании хранимых процедур в EntityDac, но есть очень древняя инфа о том, они не поддерживаются.
Да и отладкой там как-то не все гладко получается:) Я сейчас говорю про конкретный случай - использование EntityDac.
Всё прекрасно работает. И прямые запросы, и даже процедуры:
https://www.devart.com/entitydac/docs/?sql_executing.htm
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455742
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
JaDiВсё прекрасно работает. И прямые запросы, и даже процедуры:
https://www.devart.com/entitydac/docs/?sql_executing.htm
Работать то работает, но как с помощь хранимой процедуры вернуть табличное значение?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455833
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJi,

Прямо так и возвращается, через курсор:
http://forums.devart.com/viewtopic.php?p=113822#p113822
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455896
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы я делал проект типа веб-сервиса то возможно и использовал бы ORM. А в случае обычного VCL приложения смысла не вижу, зачем усолжнять то что отлажено и отполировано годами человекочасов.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455914
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по тому что Вы пишете с знаниями в этой области у Вас не очень. Уверяю Вас, первый блин в этой области у Вас будет комом, на чём бы Вы не начали писать. Потратите только деньги и время. Потому берити готовую ERP и допиливайте под свои нужды. Там практически всё есть что нужно для Вашей задачи и уже более менее оптимально написано. Если не хотите тратиться на что то вроде AP+ (мне нравится, русского наверное нет) то посмотрите в сторону open source Metasfresh ERP (тоже неплоха но надо разбираться, русский не проверял но даже если нет можно перевести за пару дней). Связываться с тяжеловесами типа SAP не рекомендую, скорее всего не потянете по деньгам, а если и денег достаточно то не факт что спецов найдёте которые могут что то стоящее сделать, что работает быстро и удобно в использовании.
Короче не начинайте изобретать велосипед, на уровне Ваших задач давно уже всё есть и отлажено. Просто учитесь искать и не жмитесь на расходы по изучению.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455921
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
JaDiAJi,

Прямо так и возвращается, через курсор:
http://forums.devart.com/viewtopic.php?p=113822#p113822
Тут не используются хранимые процедуры
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455944
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в догонку 4 Open Source ERP
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455949
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диез,

авторВ своё время пытался понарисовать абстракций поверх датасетов, но постоянный AV охладил пыл

Нужно ли их постоянно создавать и разрушать? Я у себя в одном из проектов использую пулл датасетов. Удобно, нужен - взял - поюзал. Не нужно - вернул в пул. Всё чисто, аккуратно и просто, пул - ну может 20 строк кода.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455952
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас ответили из Metasfresh, русский язык уже есть
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455953
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJi,

Используется. Хранимые процедуры вызываются стандартным методом в обычном sql-query вида: begin procname(); end; -- например, для оракла.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455955
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoСейчас ответили из Metasfresh, русский язык уже есть
сорри, я их неправильно понял, среда мультиязычная , русский могут быстро добавить если будет интерес
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455961
Троицкий А
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как и любой инструмент, надо уметь использовать и понимать где его целесообразно применить.
Честно говоря надоедает рутина. Вот надо себе прикручивать в программу БД (для хранения настроек, результатов расчетов и т.д.).
Надо создавать таблицы, кидать dataset-ы писать "...Field.AsFloat := ...", Edit, Post.Кучу элементарных запросов "select * from..."
Потом, проект развивается, структура данных изменяется (как правило надо добавлять новые поля). Опять лезь в DataSet и т.д.
Уже раздражает. Хочется жизнь упростить. А если нужен будет сложный (эффективный) запрос, уж как нибудь осилю :)
Так что для себя решил в новом проекте начать использовать
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39455964
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написали что сейчас обновляют прайс лист (это не значит что платить обязательно, система бесплатна если сам во всём разбираешься, за поддержку 24€ в месяз за пользователя). Каждый месяц можно отказаться)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456007
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
JaDiAJi,

Используется. Хранимые процедуры вызываются стандартным методом в обычном sql-query вида: begin procname(); end; -- например, для оракла.
Просто я видимо привык, использовать хранимые процедуры c помощью специализированных компонентов, у которых в свойствах просто нужно прописать имя процедуры
Но вот никак не отпускает меня мысль, что обновление и добавление данных в таблицу напрямую - это не есть хорошо.
Ну и плюс при использовании процедур EntityDac ну никак не поймет где и что обновлять нужно, а значит кардинально ничего и не поменяется, просто добавится лишняя прослойка.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456032
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем плохо работать напрямую с таблицей, при условии что все запросы заранее отлажены на тестовом полигоне?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456047
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Как минимум - это небезопасно. Пользователю нужно будет давать права на добавление, изменение, удаление данных из таблицы.

Если, например, нужно обновить несколько таблиц в результате действий пользователя, то в случае с хранимыми процедурами вся логика будет на сервере, а при использовании ORM нужно будет всю логику реализовывать в софте.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456066
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AJi,

У нас пользователь напрямую бд не видит. Работает через веб сервисы.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456070
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в сервисах уже выполняяються запросы к таблицам. Причем сам текст запросов лежит в БД.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456071
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatЧем плохо работать напрямую с таблицей, при условии что все запросы заранее отлажены на тестовом полигоне?Это реальный вопрос или стёб ?
Просто "в лоб" записывать значение в таблицу крайне нежелательно, т.к. это может серьезно нарушить бизнес логику (не говоря уже о халатности или злом умысле).
Примеры, надеюсь не нужны ?
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456082
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVЭто реальный вопрос или стёб ?
Реальный.
Просто "в лоб" записывать значение в таблицу крайне нежелательно, т.к. это может серьезно нарушить бизнес логику (не говоря уже о халатности или злом умысле).
Примеры, надеюсь не нужны ?Давай пример как нарушить логику, если произвольные запросы запрещены, и права у юзеров только на определенные запросы к вебсервису.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456086
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Lsv!
You wrote on 19 мая 2017 г. 13:15:03:

Lsv> Просто "в лоб" записывать значение в таблицу крайне нежелательно, т.к. это может серьезно нарушить бизнес логикуцЫрк.
с конями.
на дротЕ.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456092
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV,

запись в лоб в таблицу ничем не отличается от записи в лоб через процедуру -- в последнем случае лишь больше геморроя появляется для программиста по написанию лишней прослойки. Это для случаев, когда у нас простая система с записью/сохранением данных без всякой сложной логики и сторонними сервисами.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456098
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

причем разницы нет даже на уровне прав доступа в общем случае (что для выполнения запроса из процедуры, что для выполнения запроса напрямую -- одни и те же права нужны будут).
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456099
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
rgreatДавай пример как нарушить логику, если произвольные запросы запрещены, и права у юзеров только на определенные запросы к вебсервису.
Ну вот о том и печь, что доступ есть не к таблице в БД, а запросам вебсервиса. Я же говорю о том, что EntityDac напрямую работает с таблицами и это мне не нравится.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456102
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
JaDiJaDi,

причем разницы нет даже на уровне прав доступа в общем случае (что для выполнения запроса из процедуры, что для выполнения запроса напрямую -- одни и те же права нужны будут).

Если дать доступ к процедуре, то доступ к таблице давать не нужно. По крайней мере это применимо для MS SQL сервера
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456119
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Aji!
You wrote on 19 мая 2017 г. 13:47:06:

Aji> EntityDac напрямую работает с таблицами и это мне не нравится.любой DAC работает напрямую.
потому что он DAC.
а вот концепция ORM подразумевает работу с данными только через жопу.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456123
AJi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AJi
Гость
Мимопроходящийа вот концепция ORM подразумевает работу с данными только через жопу.


Очень емкое замечание:) И очень похожее не правду:)
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456151
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiзапись в лоб в таблицу ничем не отличается от записи в лоб через процедуру -- в последнем случае лишь больше геморроя появляется для программиста по написанию лишней прослойки. Это для случаев, когда у нас простая система с записью/сохранением данных без всякой сложной логики и сторонними сервисами.
....
причем разницы нет даже на уровне прав доступа в общем случае (что для выполнения запроса из процедуры, что для выполнения запроса напрямую -- одни и те же права нужны будут)1. Будет отличаться тем, что в случае с ХП можно выполнить много проверок и сделать сколь угодно сложные действия в одной транзакции. И это никак не лишняя прослойка. Это мощная возможность.

2. Чушь. Права на ХП никак не связаны с правами на таблицу. И в ХП есть возможность делать только дозволенные действия. В отличии от прямого доступа к таблице, где ковыряй чо хош.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456152
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее ORM возможно будет неплох когда тебе надо дать некий API сторонним разработчикам к своей БД. Выдал им ORM с классами работы с твоей БД и свободны.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456161
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы слишком многого хотите -- ORM это генерация простых рутинных запросов по работе с данными, которые покрывает 90% всех потребностей типичного бизнес-приложения. Сложную логику оставляйте для процедур -- никто вам не запрещает их использовать вместе с ORM.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456269
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Jadi!
You wrote on 19 мая 2017 г. 15:53:30:

Jadi> покрывает 90% всех потребностей типичного бизнес-приложения.уровня автоматизации пивного ларька.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456284
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Для тех, кто не умеет пользоваться представлениями (view) -- да, ORM дальше ларька использовать не смогут.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456290
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, тут каждый лучше других знает, что такое ORM, но в новом проекте никто использовать не собирается и завешенных проектов с ORM ни у кого нет.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456292
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любую АСУ можно построить без использования ORM, View и Stored Procedure.

Хотя я ни в коем случае не говорю что они не нужны или бесполезны в общем случае.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456541
ARGB32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использовал 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-летней давности). И права можно не верно задать. И просто на эксплойт нарваться, позволяющий лазить по БД куда вроде бы не положено. В общем, такой БД я бы никаких серьезных данных не доверил.
Сервер БД должен быть доступен исключительно внутри сети бакенда.
...
Рейтинг: 0 / 0
Есть ли смысл начниать новый проект на базе ORM?
    #39456543
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой продукт, как PowerDesigner, который по концептуальной модели формирует кучу триггеров, индексов и констрейнов и прочего добра на уровне ДБ. Дать это написать программеру процедур это - адЪ. Прогер может и "пролюбить" кое что. Не вижу чем это чем лучше ОРМ. Пользовал и то и другое. В двух словах: процедуры - пролетают.
...
Рейтинг: 0 / 0
117 сообщений из 117, показаны все 5 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Есть ли смысл начниать новый проект на базе ORM?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]