使用OR-Mapper有意义吗?
我在Stack Overflow上提出这个问题,因为这是我知道的最好的地方,可以找到愿意给予帮助和建议的聪明开发者。
我的推理如下:
1.) SQL应该放在哪里?
a.) 在我参与过的每个专业项目中,数据安全性是一个关键要求。存储过程提供了一个自然的通道,用于控制访问和审计。
b.) 生产中的应用程序问题通常可以在表格和存储过程之间解决,而无需发布新版本。
2.) 我如何控制生成的SQL?我信任解析树来生成高效的SQL。我对在SQL Server和Oracle中优化SQL有很多经验,但如果我再也不必这样做,我也不会感到失望。 :)
3.) 如果我从存储过程获取数据,使用OR-Mapper有什么意义?
我使用了存储库模式和自己开发的通用数据访问层。如果需要缓存集合,我就会缓存它。我还有使用EF进行小型CRUD应用程序和帮助调优NHibernate应用程序的经验。所以我有点偏见,但愿意学习。
在过去的几年中,我们听到了很多值得尊敬的开发人员倡导使用特定的ORM(Entity-Framework、NHibernate等...)。
有人能告诉我,为什么在主流开发的大型项目中应该使用ORM?
编辑:http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html 似乎对这个话题进行了深入的讨论,但是已经过时了。
另一个编辑: 每个人似乎都同意存储过程应该用于重型企业应用程序,因为它们的性能优势和将编程逻辑添加到数据附近的能力。
我看到支持OR Mapper最强烈的论点是开发人员的生产力。
我怀疑ORM运动的一个主要推动因素是开发人员偏好保持持久性不可知(除缓存之外,不关心数据是在内存中还是在数据库中)。
ORM似乎是本地和小型Web应用程序的出色时间节省工具。
也许我看到的最好的建议来自client09:使用ORM设置,但在数据库密集型任务(即当ORM似乎不足时)中使用存储过程。
我在Stack Overflow上提出这个问题,因为这是我知道的最好的地方,可以找到愿意给予帮助和建议的聪明开发者。
我的推理如下:
1.) SQL应该放在哪里?
a.) 在我参与过的每个专业项目中,数据安全性是一个关键要求。存储过程提供了一个自然的通道,用于控制访问和审计。
b.) 生产中的应用程序问题通常可以在表格和存储过程之间解决,而无需发布新版本。
2.) 我如何控制生成的SQL?我信任解析树来生成高效的SQL。我对在SQL Server和Oracle中优化SQL有很多经验,但如果我再也不必这样做,我也不会感到失望。 :)
3.) 如果我从存储过程获取数据,使用OR-Mapper有什么意义?
我使用了存储库模式和自己开发的通用数据访问层。如果需要缓存集合,我就会缓存它。我还有使用EF进行小型CRUD应用程序和帮助调优NHibernate应用程序的经验。所以我有点偏见,但愿意学习。
在过去的几年中,我们听到了很多值得尊敬的开发人员倡导使用特定的ORM(Entity-Framework、NHibernate等...)。
有人能告诉我,为什么在主流开发的大型项目中应该使用ORM?
编辑:http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html 似乎对这个话题进行了深入的讨论,但是已经过时了。
另一个编辑: 每个人似乎都同意存储过程应该用于重型企业应用程序,因为它们的性能优势和将编程逻辑添加到数据附近的能力。
我看到支持OR Mapper最强烈的论点是开发人员的生产力。
我怀疑ORM运动的一个主要推动因素是开发人员偏好保持持久性不可知(除缓存之外,不关心数据是在内存中还是在数据库中)。
ORM似乎是本地和小型Web应用程序的出色时间节省工具。
也许我看到的最好的建议来自client09:使用ORM设置,但在数据库密集型任务(即当ORM似乎不足时)中使用存储过程。