Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 大型ASP.net MVC应用程序中的控制器共享/扩展_C#_Asp.net Mvc_Asp.net Mvc 2 - Fatal编程技术网

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

C# 大型ASP.net MVC应用程序中的控制器共享/扩展,c#,asp.net-mvc,asp.net-mvc-2,C#,Asp.net Mvc,Asp.net Mvc 2,我正在开发一个相当大的应用程序 它基本上是一个电子商务应用程序-与其他“功能”,如论坛等 “后台”应用程序将被称为“Wokingham” 我现在拥有的是这样的东西: (我们有一个基于树名的命名约定) 我公司金银花 包含论坛的模型和数据访问(IRepository等…)的项目 MyCompany.Willow 产品模型和数据访问、产品搜索等 MyCompany.杨树 模型/数据访问/服务等。。订购 MyCompany.Juniper 顾客 以上所有这些都是类库,可以编译成公共/bin/dir Wo

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

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

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

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

我公司金银花
包含论坛的模型和数据访问(IRepository等…)的项目

MyCompany.Willow
产品模型和数据访问、产品搜索等

MyCompany.杨树
模型/数据访问/服务等。。订购

MyCompany.Juniper
顾客

以上所有这些都是类库,可以编译成公共/bin/dir

Wokingham(上面提到的管理后端系统)将与“公共”web应用程序共享一些功能-

例如,在论坛(MyCompany.忍冬)中,公共应用程序将能够添加新问题。 沃金汉也提供此功能

我的问题是当涉及到MVC应用程序的控制器时。
将有(至少)2个ASP.NET MVC应用程序-
“沃金汉”的另一首歌

我应该有一个MyCompany.忍冬控制器项目吗?公共用户界面项目和沃金汉共享

或-
是否应该有上面提到的MyCompany.Honeysuchle.Controller,但是.Wokingham项目扩展了控制器以执行所需的附加功能?

我将分离两个控制器,一个用于前端操作,另一个用于管理端。棘手的问题是将共享操作放在何处

捷径:如果管理员用户想要创建新论坛帖子,您能否重定向/打开新窗口?这将为您节省大量时间,并且是常见的做法

很长的路:如果有必要让两个页面做相同的事情,那么我将使用单独的控制器操作和视图,但共享CRUD服务(模型层)。工作主要是创建不同的视图

一般来说,您希望控制器操作尽可能简单,因为它们只是web请求的端点。费尽周折去提取两个稍有不同的控制器操作之间的相似性未免太过分了


编辑:删除不相关的建议。

+1因为我想看到一些关于这方面的讨论。两个MVC应用程序-出于安全考虑,“公共”应用程序将是一台服务器(服务器场),“沃金汉”应用程序将在内部服务器上Sok,删除了不相关的建议。但其余部分仍然适用,我希望对你有用。