繁体   English   中英

在大型ASP.net MVC应用程序中共享/扩展控制器

[英]Sharing / Extending Controllers in large ASP.net MVC application

我正在开发一个相当大的应用程序。

它基本上是一个电子商务应用程序 - 与论坛等其他“功能”...

“后台”应用程序将被称为“Wokingham”

我现在拥有的是这样的:
(我们有一个基于树名的命名约定)

MyCompany.Honeysuckle
包含论坛的模型和数据访问(IRepository等...)的项目

MyCompany.Willow
产品的型号和数据访问,产品搜索等......

MyCompany.Poplar
订单的型号/数据访问/服务等..

MyCompany.Juniper
顾客

以上所有都是类库,它们编译成common / bin / dir

Wokingham(管理员后端系统,如上所述)将与“公共”Web应用程序共享一些功能 -

例如 - 在论坛(MyCompany.Honeysuckle)中 - 公共应用程序将能够添加新问题。 Wokingham也提供此功能。

我的问题是涉及MVC应用程序的控制器。
将有(至少)2个ASP.NET MVC应用程序 -
一个单独的“沃金厄姆”

我应该有MyCompany.Honeysuckle.Controllers项目吗? 公共UI项目和Wokingham共享。

或者 - 是否应该有上面提到的MyCompany.Honeysuckle.Controllers ,但是.Wokingham项目扩展控制器以执行其他所需的功能?

我将两个控制器分开,一个用于前端操作,一个用于管理端。 棘手的问题是在哪里放置共享操作。

简短的方法 :如果管理员用户想要创建新的论坛帖子,你可以重定向/打开新窗口吗? 这样可以节省大量时间,也是常见做法。

好的方法 :如果有两个页面做同样的事情是必要的,那么我将使用单独的控制器操作和视图,但共享CRUD服务(模型层)。 这项工作主要是为了创造不同的观点。

一般来说,您希望保持控制器操作尽可能简单,因为它们只是Web请求的终点。 并且通过麻烦来抽象两个稍微不同的控制器操作之间的相似性是过度的。

编辑:删除无关的建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM