2010-10-21 282 views
1

我開始一個新項目,簡單來說,它將有一個基於asp.net mvc 2,一個業務層和一個數據訪問層的UI層。簡單的3層設計。mutlitenant asp.net mvc 2 - 域到區域路線

UI層雖然會爲客戶端定製,例如,菜單沿着頂部,或者向左或者可以是不同的靜態頁面等。 所有的核心功能在多個客戶端中是相同的,但是一些客戶端可能具有更多或更少的功能。

我想在單個asp.net mvc項目中使用區域來分隔客戶端。所以當我添加客戶端時,我會添加區域 - 這是一個好方法嗎?如果我遵循這種方法,我可以共享控制器嗎?但讓控制器路由到該區域內的正確視圖?

另外,如果我將我的網站部署到mynewsite.com - 每個區域都可以通過mynewsite.com/area1,mynewsite.com/area2等訪問。但是,如果客戶想要自己的域名,那麼實現這一目標的最佳方式是什麼?因此,www.clientdomain.com - > mynewsite.com/area1和clientdomain.com/products/list與mynewsite.com/area1/products/list相同 - 我必須通過服務器上的HTTP Url路由處理此問題?

希望我已經解釋了我的情況好!非常感謝任何反饋。

+0

我發現這篇文章(http://dotnetslackers.com/articles/aspnet/storing-asp-net-mvc-controllers-views-in-separate-assemblies.aspx),它看起來幫助我與一個將單獨的客戶端視圖放入另一個程序集的方式。這對我而言可能適用於每個客戶端的自定義UI。 – jryan 2010-10-21 10:37:16

回答

0

僅供參考 - 我最終決定不使用區域,並且使用自定義視圖引擎簡化了客戶端配置組件,我將它們放在一起以交換每個客戶端的視圖(使用域名和/或用戶登錄時)。這些視圖目前保存在客戶端特定的文件夾中,我只將需要更改的客戶端視圖放到這些文件夾中,如果視圖引擎在客戶端特定的文件夾中找不到視圖,它將恢復爲默認視圖,即非常正常的情況下,90%的客戶端特定更改都是用CSS完成的。

+0

關於你如何實現這一目標的更多細節?一些代碼也許? – 2012-03-21 00:00:41