Rob*_*vey 2 orm domain-driven-design entity-framework linq-to-sql
我想知道从关系式,基于表格的设计到面向对象的基于实体的设计的转变如何影响开发人员编写下一波应用程序的思维模式.
鉴于围绕实体框架和Linq to SQL的辩论的性质,考虑实体驱动的设计还为时过早吗?
我们是否培养了不了解关系数据库设计和开发基本原理的新一代开发人员,因为他们将通过实体框架等工具来屏蔽他们?实体框架是否真的足够聪明,可以为他们做出这些类型的设计决策?
嗯,难以回答imho的问题.
我认为像"实体框架"这样的工具不会导致一代开发人员不了解关系数据库设计的原则.首先,面向对象的设计已经很长一段时间了,人们一直在寻找解决方案来弥合OO和RDBMS之间的差距.
我没有看到你所谓的"实体驱动设计"(我宁愿称之为域驱动设计),取代关系数据库设计.事实上,对我来说,这两件事将继续相互存在,因为这两种技术都是-IMHO-他们试图解决的问题的最佳解决方案: - OO是模拟数据+行为的完美方式 - 关系模型是有效存储数据并在其上运行查询的完美方式.
如果您希望以域驱动的方式成功创建应用程序(使用像NHibernate或实体框架这样的O/R映射器),那么您 - 开发人员 - 仍然需要对关系如何有基本的了解和知识.模特的作品.事实上,尽管通过O/R映射器,您仍在与关系数据库进行通信.如果您想要一个性能良好的应用程序,您必须知道基于关系数据库的设置,例如; 执行SELECT n + 1查询等不是一个好主意...
事实上,我正在使用O/R映射器(NHibernate)一年(专业),我已经玩了几年,但我仍然喜欢手工创建我的关系数据模型.我没有通过我编写的类通过我的O/R映射器生成我的数据库模型,因为我想控制它.
如此简短的回答:我认为,如果开发人员想要成功使用O/R工具,仍然需要了解关系模型.