在我的学徒期间,我曾经在一些较小的项目中使用NHibernate,这些项目大多由我自己编码和设计。现在,在开始一些更大的项目之前,讨论如何设计数据访问以及是否使用ORM层。由于我仍处于学徒阶段,并且仍然认为自己是企业编程的初学者,因此我没有真正试图推动我的观点,即使用对象关系映射器可以极大地简化开发。开发团队中的其他程序员比我经验丰富得多,所以我想我只能听从他们的意见。:-)
然而,我并不完全理解不使用NHibernate或类似项目的两个主要原因:
- 可以使用SQL查询构建自己的数据访问对象,并将这些查询从Microsoft SQL Server Management Studio复制出来。
- 调试ORM可能很困难。
当然,我可以使用大量的SELECT
等构建自己的数据访问层,但是在这里,我错过了自动连接、延迟加载代理类以及如果表格添加新列或列重命名时的更低维护工作量的优势。(更新众多的SELECT
、INSERT
和UPDATE
查询与更新映射配置以及可能重构业务类和DTO之间的区别。)
此外,使用NHibernate,如果您不太了解该框架,可能会遇到意想不到的问题。例如,在Table.hbm.xml中设置字符串长度以进行自动验证。然而,我也可以想象在基于“简单”SqlConnection查询的数据访问层中出现类似的错误。
最后,上述论点是否真的是不利用ORM进行非平凡数据库企业应用程序的好理由吗?他们/我可能错过了其他论点吗?
(我应该补充说明,我认为这是第一个需要团队合作的“大型”基于.NET/C#的应用程序。目前在这里还不存在如Stack Overflow上被视为相当正常的良好实践,例如单元测试或持续集成。)
我认为这可能是第一个需要团队协作的“大型”基于.NET/C#开发的应用程序。迄今为止,在这个项目中缺少如Stack Overflow上被认为是很正常的良好实践,例如单元测试或持续集成。请注意,原文中保留了HTML标签。