[上一页]
我不得不说,我是个虚拟的新手,他正在尝试将重要的难题与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,并且每个项目都会根据定义的数据上下文生成自己的数据库由EF。是不是很多余,或者这是正确的方法?
我不知道如何将这些多个数据模型项目(包括共享内核)加入一个不错的模型中
我不知道设计数据类的最佳方法是什么?它们应该只是POCO,还是我可以将它们设计为具有私有变量和公共属性的漂亮类?这里的最佳做法是什么?
我也不了解在此之上使用MVVM模式的最佳实践是什么,在这种情况下使用MVVM是否完全适用?
我应该将测试保存在单独的项目中,例如MyApp.PackType1.DataModel.Tests,还是将它们保存在同一项目中? 最好的祝福, 马克!
P.S。
对定义和问题不清楚表示歉意,英语不是我的母语。
答案 0 :(得分:0)
回答您的问题非常复杂,因为您已经询问了很多细节,但是我将提供一个简短的答案,希望对您有所帮助。
您只能为您的实体(DDD)建立一个模型,并在您的最终级项目(Web API或UI)中从该模型创建子模型
读取点#1
您必须创建一个代表数据库的实体层项目,然后才能为特定方案创建DTO。
从我的角度来看,请使用Angular,但您可以使用其他UI框架,例如React或VueJs,但我更喜欢使用Angular来构建UI界面并从客户端使用.NET Core Web API
为您的Web API项目创建单元测试和集成测试,作为附加功能,您可以在内存提供程序中使用Db进行测试
该指南可能有用:https://www.codeproject.com/Articles/1160586/Entity-Framework-Core-for-Enterprise
致谢
答案 1 :(得分:0)
该CodeProject文章会派上用场。