Я немного боюсь задать этот вопрос, так как это может привести к религиозной войне, поэтому я хочу быть действительно ясным в том, что я ищу. Я ищу причину (-ы), по которой вы бы прыгнули в ту или иную сторону, а также элементы, которые можно добавить в мои списки. Я ищу большой билет, большой взрыв. Кроме того, предметы, специфичные для продукта, может быть, если они действительно актуальны. На данный момент я пытаюсь оценить ORM vs Manual, а не продукт A против продукта B.
Преимущества ORM
- Quick to code and low maintenance (in some/most scenarios)
- Additional features for "free" (no developer effort)
Преимущества ручного кодирования
- More Efficient (at runtime, maybe not at dev time?)
- Less layers of complexity
- Most ORMS seem to struggle with being retricted to sprocs only
В интересах полного раскрытия, мне действительно не нравится идея «чего-то», выполняющего код для моей базы данных, которую я не могу напрямую изменить, если сочту нужным, но могу видеть потенциально масштабное время разработки ORM.
Наверное, также стоит отметить, что я нахожусь в мире .Net
[править]
(вопрос на Использование ORM или простого SQL? , кажется, отвечает на многие вопросы и усиливает точку зрения на производительность)
Итак, чтобы немного изменить мой вопрос
Кто-нибудь создал приложение, использующее ORM на ранних стадиях, а затем постепенно заменил на DAL с ручным кодированием? Какие были подводные камни такого подхода?
[Дальнейшее редактирование - теперь суть проблемы]
Наличие веб-сайта, способного выполнить любой SQL для моей базы данных, пугает. Если весь доступ осуществляется через sprocs, моя база данных живет в хорошей, безопасной и удобной изоляции. Использование исключительно sprocs удаляет многие, если не все векторы атаки SQL-инъекций. Любые комментарии по этому поводу?