EF Code First,Model First或Db First?对于许多不断变化的中型应用程序

时间:2013-07-27 13:55:37

标签: asp.net-mvc-4 database-design ef-code-first entity-framework-5 ef-database-first

我们将使用MVC 4和EF 5为私营公司开发一个中大型定制网络应用程序。

该业务领域的早期分析和以前的经验表明,它将拥有150多个表/实体,因为我们的客户不是软件工程师,我们知道我们的数据模型将在项目进度中多次改变

现在,根据以下内容,我的问题是哪种方法对我们更好:

1)由于会发生许多变化,因此更新数据模型和数据存储的工作量减少了。

2)创建数据存储所需的时间更少,并有助于更快地推进项目。

注意:此应用适用于大量数据(某些实体为10k,100k对象)。但是,它将很少(有时可能没有)并发请求和在线用户。

提前致谢

3 个答案:

答案 0 :(得分:6)

我认为这个词是

  

因为我们的客户不是软件工程师而且我们知道我们的   数据模型会多次改变

是现实,但不是数据模型多次改变的全部原因!

BTW一些​​建议可能会有所帮助 将业务分析视为关键点并继续进行业务分析
越来越多的分析投资将降低开发和变更管理的成本 让一位具有才华的分析师作为客户办公室的代表 有一个特定的客户代表负责分析和开发团队。 记录客户的业务流程,与客户讨论。记录谈判结果 设计和变更管理
从不单独设计数据库。头脑风暴团队成员,邀请客户代表,邀请业务分析师,在设计团队中拥有DBA,具有变更经理角色。
技术
看看技术趋势(可能使用基于文档的数据库会有所帮助)
拥有灵活的框架和架构,为商业软件生产服务,而不是相反! 将会有变化......准备好了
变化将会到来,所有上述努力都旨在优化解决方案,以便在变更发生时降低成本,它们不会阻止变更 您需要有一个可接受的机制来向客户开账单 ITIL's服务级别管理,SLA和OLA将成为指导。

所以问题的答案是:
1)以上所有内容都有助于解决问题。首先使用模板方法继续进行交互式分析,然后进行下一次设计并在迭代中进行开发。长度将来,他们将花费 2)取决于技术和框架,将有工具(我不知道EF)只是不坚持特定的平台或库。

希望这有帮助。

答案 1 :(得分:1)

我建议您使用 CodeFirst 结构。因为你的类很清楚,主要是你在业务逻辑中使用很多类。

答案 2 :(得分:0)

请查看thisthisthis