【发布时间】:2018-07-03 07:34:16
【问题描述】:
[预]
我不得不说我是一个笨拙的新手,我试图将重要的谜题与 DDD、TDD、MVVM 和 EFCore 等关键细节放在一起。我有大约 10 年以完全错误的方式开发 Windows 窗体的经验,在我加入 Plurasight 之后,我了解到我刚刚失去了过去的 10 年,这真的很可悲:)。
[问题描述]
我有一个应用程序,我想使用过去 6 个月在 Pluralsight 上学到的最新和最棒的技术从头开始重写,但问题是这些新知识阻止了我,因为只是我我害怕我会再次做错......(我知道这很愚蠢,但它就是这样)。
所以回到我的问题,我有一个很大的问题域,以及记录良好的业务逻辑,我必须将其提交给代码。我知道我的起点是设计数据层,出于这些目的,我想使用实体框架核心(我看过 Julie Lerman 的 Pluralsight 课程,我认为她很了不起,并激励我使用 EFCore 作为我的应用程序的 ORM)。但同时经验泄露产生的问题比我在 Pluralsight 中学到的要多,我会尽量把它们都写出来(请不要太苛责我)
看起来我的解决方案中需要 2 个甚至更多的数据模型项目,这就是为什么我有多种文档集类型的原因,每种类型都包含多个用于生成唯一的参考书文件名和数据表。但是对我来说看起来很奇怪有3个数据模型项目,例如MyApp.PackType1.DataModel,MyApp.PackType2.DataModel,每个项目都会预装EFCore,每个项目都会根据定义的数据上下文生成自己的数据库由英孚。是不是很冗长或者这是正确的方式?
我不明白如何将这些多个数据模型项目(包括共享内核)加入一个不错的模型中
我不明白设计数据类的最佳方法是什么?它们应该只是 POCO 还是我可以将它们设计为具有私有 var 和公共属性的漂亮类?这里有哪些最佳实践?
另外我不明白在此基础上使用 MVVM 模式的最佳实践是什么,在这种情况下使用 MVVM 是否适用?
我应该将我的测试保存在 MyApp.PackType1.DataModel.Tests 等单独的项目中,还是将它们保存在同一个项目中? 此致, 马克斯!
附言
为不明确的定义和问题道歉,英语不是我的母语。
【问题讨论】:
-
一些文本格式怎么样。
-
"我怕我又做错了";不要害怕错误,为他们计划。寻找容易删除错误的编码模式和习惯。
标签: mvvm tdd domain-driven-design entity-framework-core