簡體   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