我正在开发一个敏捷的MVC3项目,它开始变得相当大,特别是我的管理部分,用户可以设置很多配置等。这是我的第一个MVC3项目,所以我只是好奇,当它使用区域有意义吗?
像一个特定部门(如管理层)的控制器在决定将其分解成一个区域并为个人管理操作创建控制器之前应该多大?
另外,当使用区域时,我应该重构使用区域的一切,还是仅仅需要一个区域的区域?
解决方法
有开发商有如何组织这个意见,但我的意见如下:
控制器只应负责与视图进行交互。也就是说,实例化和填充模型对象,从业务对象或数据访问层检索数据,响应来自页面的任何请求(表单提交,AJAX请求,动态资源创建方法/类的接口(如创建CAPTCHAs或其他动态图像))等。如果你坚持这个哲学,他们的大小和复杂性不应超过你的意见。
区域我倾向于使用区域将应用程序分解为子应用程序。例如,一个网站可能会有一个讨论论坛,产品目录,公司信息,支持数据库等,这些都是单独的领域:
/areas/forum/... /areas/product/... /areas/company/... /areas/support/...
然后,在每个区域,你可能有
/areas/support/{views|controllers} /areas/support/search/ /areas/support/contact/ /areas/support/knowledgebase/
等等
就像Webforms网站中每个文件夹都代表网站不同的“区域”一样,区域提供了另一个级别的组织,可以将相关的控制器,视图等保持在一个共同的位置,并且应该以类似的方式使用。