什么时候应该在Asp.net MVC(设计问题)中创建新的Controller类? [英] When should I create new Controller class in Asp.net MVC (Design Question)?
问题描述
- 控制器是应用层(在DDD中)
在我提出问题之前, / li>
- 它控制应用程序流程。
- 保持薄薄
- 它控制工作单位(又称事务)
我的问题是什么时候应该创建新的Controller类?。我将在 NerdDinner 中以DinnerController为例。
- 是否为 Dinner Module 的控制器? (是模块吗?IMO,对于模块来说太小了)
- 如果是,应该为每个模块创建控制器?控制器会变胖吗?
- 如果不是,何时应该创建新的控制器?
我个人更喜欢根据用例创建Controller类。例如,CreateDinnerControllelr,EditDinnerController,ListDinnerController,SearchDinnerController等。但是有一些缺点IMO例如
- 有时它违反了DRY原则(它可能需要在两个位置创建相同的ViewModel,例如创建和编辑可能有DinnerViewModel)
- 需要明确定义路由? (我仍然喜欢路线,如 /晚餐/创作, /晚餐/编辑/ 1 )
提前感谢
在ASP.net MVC和rails工作后,我认为Controller应该创建资源(在REST 样式应用程序中)。
Before I ask the question, here is my understanding about Controller in MVC pattern.
- Controller is Application Layer (in DDD)
- It controls Application flow.
- It is kept thin
- It controls unit of work (a.k.a Transaction)
My question is "when should I create new Controller class?". I'll take an example as DinnerController in NerdDinner.
- Is it the controller for Dinner Module? (Is it module? IMO, it is too small for module)
- If it is, should I create controller for each module? And will the controller become fat?
- If it is not, when should I create new controller?
I personally prefer to create Controller class per use case. For example, CreateDinnerControllelr, EditDinnerController, ListDinnerController, SearchDinnerController, etc. But there are a few drawbacks IMO such as
- Sometimes, it violates DRY principle (it might need to create the same ViewModel in two place, e.g. Create and Edit might have DinnerViewModel)
- Need to explicitly define routing? (I still perfer route like /Dinner/Create, /Dinner/Edit/1)
Thanks in advance.
After working on ASP.net MVC and rails, I think Controller should create per Resource (in the REST style application).
这篇关于什么时候应该在Asp.net MVC(设计问题)中创建新的Controller类?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!