我是一名软件开发人员,但始终致力于“小型”项目/解决方案。
现在,我试图自己从头创建一个应用程序,只是为了与新开发保持联系并学习新知识。我正在尝试使用以前从未使用过的所有东西。
所以基本上这意味着我正在使用EF core 2.1和SQL Server开发一个c#应用程序。
我已经在线阅读了很多文章,并且已经学到了很多。但是我仍然感到困惑,因为每天我都会使用另一种方法找到一篇新文章。
我希望得到其他一些开发人员对到目前为止所获得的意见。
首先,我习惯了WinForms,因此现在我将其用作UI。只是因为我可以很快得到结果。之后,我将尝试使用ASP.NET Core。
我还希望能够使用其他UI,并且仍然能够使用我的解决方案的其余部分。
我的解决方案中有几个项目:
1.数据:EF上下文,DbSet,迁移
2.模型:在EF上下文中使用的EF模型(仅是POCO)
3. DTO:向UI公开的对象(同样,类和属性,仅此而已)
4.映射器:“ DTO到模型”和“模型到DTO”
5.服务:使用上述所有内容的静态类和静态方法/函数,包含逻辑。例如,GetCustomer使用EF上下文类读取数据库,获取模型,将其映射到DTO并返回它。
6. UI:绑定到DTO对象,并为每个用户“操作”使用服务。
简而言之,就是这样。但是我在正确的轨道上吗?
我已经阅读了很多有关IoC的文章,但我还没有读到,但是据我了解,这与上面的“无关”。
我确实有一个特定的问题:在WinForms中,使用IDataErrorInfo接口进行了验证,对于绑定,我需要INotifyPropertyChanged逻辑。这属于哪里?我会在DTO中说,但有些人则说DTO“没有”任何逻辑。
很长的“问题”对不起,但是请您务必确保我正确理解所有这些信息。
答案 0 :(得分:0)
DTO通常不用于演示。它旨在发送原始数据,因此它们通常是愚蠢的对象,并且基本上只是一堆属性设置器和获取器。 打算将视图模型发送到视图,并且视图模型也将数据发送回控制器。 ViewModel有时负责表示逻辑。