使用ProDinner作为参考架构

时间:2014-03-18 09:40:23

标签: asp.net asp.net-mvc-5 prodinner

我一直在寻找Pro Dinner解决方案作为我正在进行的项目的参考,我认为它很适合..但我不太了解项目结构......从我可以看到你将有三个代表单个实体的对象

  • 核心 - 用于存储库和服务的poco实体和接口
  • 数据 - 数据访问层,包含存储库实现,EF5 Code First 映射和DbContext
  • WebUI - 用于映射的所有ViewModel和Mapper类 实体到输入(ViewModel)和向后,mvc控制器,视图,图像, 脚本和一些引导代码

所以从我所看到的,你说你有一个人类......你会有......

Core中的Person实体,Data中的Person实体和WebUI中的PersonViewModel ..

这是对的吗?我错过了什么吗?

让Core只包含一个Person实体会更好吗?

如果有人有其他建议请告诉我:)

感谢。

1 个答案:

答案 0 :(得分:4)

我已经快速下载了ProDinner,以了解源代码及其架构。

我没有详细查看所有内容,也没有运行应用程序。

从事物的外观和回答你的问题,我的理解是你只需要在核心内创建一个Person实体。

您不必在数据层中创建Person实体您必须在DbSet<Person>内添加DbContext(恰好住在数据层内。)

对于ViewModel,了解ViewModel应该是UI的表示非常重要。

例如,假设您的Person实体有25个属性。这是否意味着您的视图会自动显示(或使用)这25个属性?

如果答案是肯定的,那么您可以直接向Person实体强烈输入您的视图创建PersonViewModel并将Poco中的25个属性复制到PersonViewModel中。反过来,使您的View强烈键入此PersonViewModel。

另一方面,如果您的View计划仅显示(或使用)25个属性中的10个属性,则创建PersonViewModel并仅创建这10个属性。

正如我之前所说,ViewModel应该是您的UI(View)的表示,因此知道您的View将显示/使用10个属性,拥有25个属性的PersonViewModel是没有意义的。

并非每个人或团队都喜欢直接向Poco强烈输入View,但请记住它会起作用。这个选择取决于您(或您的团队)。

希望这有助于澄清。