На моей работе мы в основном выполняем линейку бизнес-приложений - контрактную работу.
Для этого вида бизнеса я большой поклонник ORM. Около четырех лет назад (когда инструменты ORM были менее зрелыми) мы изучали CSLA и разработали наш собственный упрощенный инструмент ORM, который мы используем в большинстве наших приложений, включая некоторые системы корпоративного класса, имеющие более 100 таблиц.
По нашим оценкам, этот подход (который, конечно, включает в себя много генерации кода) позволяет сэкономить до 30% времени в наших проектах. Серьезно, это смешно.
Существует небольшой компромисс между производительностью, но он несущественен, если вы хорошо разбираетесь в разработке программного обеспечения. Всегда есть исключения, требующие гибкости.
Например, пакетные операции с чрезвычайно высокой интенсивностью данных все еще должны обрабатываться в специализированных процессах, если это возможно. Вы, вероятно, не хотите отправлять 100 000 огромных записей по проводам, если бы вы могли сделать это прямо в базе данных.
Это тип проблемы, с которой сталкиваются разработчики-новички, используют ли они ORM или нет. Им просто нужно увидеть результаты, и если они компетентны, они получат это.
Что мы видели в наших веб-приложениях, так это то, что обычно самые трудные для устранения узких мест в производительности больше не связаны с базой данных, даже с ORM. Скорее, они находятся на переднем крае (в браузере) из-за пропускной способности, AJAX-издержек и т. Д. Даже серверы баз данных среднего уровня в наши дни невероятно мощны.
Конечно, другие магазины, работающие на более крупных системах с высоким спросом, могут иметь другой опыт. :)