2010-11-22 55 views
3

我正在開發一個相當大的應用程序。在大型ASP.net MVC應用程序中共享/擴展控制器

它基本上是一個電子商務APP-與其他「功能」像論壇等...

的「後臺辦公室」應用程序將被稱爲「沃金厄姆」

我現在有是這樣的:
(我們有一個命名約定基礎上的樹木名稱)

MyCompany.Honeysuckle包含
項目對於論壇模型和數據訪問(IRepository等)

MyCompany.Willow
模型和產品數據訪問,產品搜索等..

MyCompany.Poplar
型號/數據接入/服務等的訂單量

MyCompany.Juniper
客戶

上述所有類庫,即編譯成一個共同的/ bin中/ DIR

沃金厄姆(管理員後臺系統,如上所述)將與「公共」的網絡共享一些功能APP-

對於例如 - 在論壇(MyCompany.Honeysuckle) - 公共應用程序將有能力添加一個新的問題。 此功能也可在Wokingham中使用。

我的問題是何時涉及到MVC應用程序的控制器。
將有(至少)2 ASP.NET MVC應用程序 -
另一個表示 「沃金厄姆」

我應該有一個MyCompany.Honeysuckle.Controllers項目?公共UI項目和Wokingham共享。?

或 - 如果有所述MyCompany.Honeysuckle.Controllers如上所述,但隨後的.Wokingham項目延伸控制器以執行額外的所需的功能?

+0

+1因爲我想看看關於此的一些討論。 – 2010-11-22 17:21:44

回答

2

我會分開兩個控制器,一個用於前端操作,另一個用於管理員端。棘手的問題是將共享操作放在哪裏。

短路:如果管理員用戶想要創建新的論壇帖子,您可以重定向/打開新窗口嗎?這會節省你很多時間,這是常見的做法。

長途:如果有兩個網頁做同樣的事情是必要的,那麼我會去單獨的控制器操作和視圖,但共享CRUD服務(模型層)。這項工作主要是爲了創造不同的觀點。

一般而言,您希望控制器操作儘可能簡單,因爲它們只是Web請求的終點。經歷兩個稍微不同的控制器操作之間的抽象相似之處的麻煩是過度的。

編輯:刪除不相關的建議。

+0

兩個MVC應用程序 - 由於安全性,「公共」應用程序將是一個服務器(農場)的「Wokingham」應用程序將在內部服務器 – Alex 2010-11-22 18:27:09

相關問題