Lao*_*jin 3 model-view-controller asp.net-mvc layer asp.net-mvc-3
我是ASP.NET MVC的新手,并继承了一个使用该技术的项目.
这样的Web项目包含三个文件夹:Views,Controllers和Model.据我了解,该模型实际上包含您的域/业务逻辑,并由您的控制器调用.控制器本身充当视图和模型之间的委托者.
现在,在典型的分层体系结构中,任何项目中都不应该引用Web/UI项目.
我发现这很令人困惑:
- > UI包含模型,在理想的世界中 - 基于"域驱动设计"原则.
- > UI(Services和DataAccess)顶部的图层无法引用UI
如果他们不了解您的模型,您如何编写高效的服务和数据访问层?
我在这里错过了什么?Web.Model是否与"DDD"不同,我是否还应该有一个单独的BL项目?如果是这种情况,那么什么是Web.Model应该包含什么?
Dim*_*rov 10
我将模型视为一个概念.您可以拥有一个完全独立的项目,其中包含您的域(您的实体,服务等),并在您的"UI"项目中引用它.在这种情况下,这将是您的"模型".这就是我通常所做的事情.在我的Models文件夹中,我保留了"ViewModels",我将其用于绑定/验证(用于UI).例如,如果我有一个Employee但我不想使用它的所有属性(或者那个不同的属性),我将EmployeeViewModel按照我想要的方式创建一个调整,我将添加验证(如果需要)和我会将它传递给我的视图.
这绝不是"正确的方式"/"唯一的方式",但它过去对我有用,我想我会分享(同样,我在解释中也很糟糕,所以我真的希望这篇文章是有道理的,如果它没有或需要澄清 - 请让我知道).
| 归档时间: |
|
| 查看次数: |
883 次 |
| 最近记录: |