我有点害怕问这个问题,因为它可能会引发一场宗教战争,所以我想非常清楚我在寻找什么。我正在寻找您为什么会或已经以某种方式跳跃的原因,以及要添加到我列表中的项目。我正在寻找大票,大爆炸物品。此外,如果它们确实相关,则可能是特定于产品的项目。在这一点上,我正在尝试评估 ORM 与手动,而不是产品 A 与产品 B。
ORM的优势
- 快速编码和低维护(在某些/大多数情况下) - “免费”的附加功能(无需开发人员的努力)
手工编码的优势
- 更高效(在运行时,也许不是在开发时?) - 更少的复杂层 - 大多数 ORMS 似乎都在为仅限于存储过程而苦苦挣扎
为了全面披露,我真的不喜欢在我认为合适的情况下对我无法直接修改的数据库执行代码的“东西”的想法,但我可以看到 ORM 潜在的大量开发时间优势。
它可能也值得注意我在一个.Net世界
[编辑](Using an ORM or plain SQL?中的问题似乎回答了许多问题并强化了关于性能的观点)
所以,稍微改变我的问题
有没有人在早期使用 ORM 构建应用程序,然后逐渐用手工编码的 DAL 代替?这种方法的缺陷是什么?
[进一步编辑——现在解决问题的核心]让一个网站能够对我的数据库执行任何 SQL 是可怕的。如果所有访问都是通过 sprocs 进行的,那么我的数据库将处于良好、安全、舒适的隔离状态。仅使用 sprocs 可以消除很多(如果不是全部)SQL 注入攻击向量。对此有何评论?