2013-07-13 54 views
0

美好的一天,asp.net多個網站/方面mvc

我目前正在開發一個asp.net mvc 4網站。

到目前爲止,我已經做了一個前端網站,當用戶訪問我的網址時,系統會提示用戶。現在,我想創建一個後端,某些用戶可以登錄並訪問各種功能,設置,選項等。

現在理想情況下,您將在Visual Studio中的兩個不同項目中製作前端和後端。但是現在我怎麼將它們連接起來呢?例如,如果我已經在後端登錄,那麼前端應該仍然知道我已經登錄。所以實質上它必須仍然是一個站點。我只想在不同的項目中有不同的組件/方面。

我想這樣做的原因是爲了在VS中組織項目並嘗試儘可能地對其進行調整。

我可以這樣做嗎?

+0

你可以擴展你的問題 - 特別是兩個項目之間的區別。這是一個單一的網站,你也正在創建一個管理區域,或一個共同的管理區域爲多個網站?爲什麼你想要或需要將它們放在單獨的項目中? – pwdst

+0

這是一個單一的網站,我想添加一個管理區域。我想讓他們分開的項目的原因是組織和分離文件。管理部分有不同的主題,HTML CSS,模型等,所以它是有意義的孤立它。此外,當網站增加並增加功能時,該項目將變得非常混亂和混亂。我不希望兩個網站的課程和文件都混在一起。他們還需要不同的系統設置等。 – Zapnologica

回答

1

儘管最有可能將這些項目創建爲具有通用身份驗證令牌的單獨項目(我可以想到至少有一種方法 - 儘管這是做法很糟糕),但根據您的要求,我強烈建議單個項目與管理區域分開(和命名空間)關閉您的模型,視圖和管理員功能的控制器。

雖然你沒有指定要使用哪一個ASP.NET MVC的版本,Areas已經由於兩個版本是可利用內MVC。

這將允許您的管理相關視圖,控制器,模型和其他類在邏輯上組合在項目結構的/ Areas/Admin下(如果您想隱藏東西,它可以將大部分時間都摺疊)也可以將任何類命名爲SiteProject.Admin.Class,這將使它們與主站點中的類保持獨立。

如果您想讓它們在不同的(引用的)項目中,然後將它們作爲AdminProject.Class引用到項目中,這在概念上是完全不同的。該區域有自己的路由定義,使您可以靈活地處理與主站點不同的路由,以及其自己的Web.config,從而允許額外或更改設置。

使用區域的好處是,你不必做任何額外的工作圍繞身份驗證,可以將項目部署作爲一個單一的實體,您不必擔心路由項目之間的請求(我設想一個子域將是在單獨的項目模型中分離請求的最直接的方式)。如果你想保持相同的外觀和感覺,任何共享的視圖或分支也可以在管理區使用(儘管你可以使用完全不同的佈局,如果你想),你將能夠引用靜態資源(比如作爲圖像,腳本和樣式表)使用應用程序相對URL(tilda - 「〜/ Content/styles.css」)。像Session這樣的特定應用程序也可以提供給你,這可能是非常重要的(儘管當然可以爲使用諸如SqlSessionProvider之類的多個應用程序建立一個公共會話存儲)。

如果您有Pluralsight訂閱K Scott Allen討論了他的MVC2課程ASP.NET MVC 2.0 Fundamentals(雖然他的視圖顯然不使用Razor語法,這些章節中的其他內容仍然相關)中的區域。

如果您希望在不同的項目中擁有您的業務實體和邏輯,那麼這對於未來的可重用性來說既合適又值得鼓勵,但在這種情況下,我認爲將相關項目放在一起以保持更合理事幹乾脆簡單。

+0

謝謝你。這聽起來像地區正是我正在尋找。 – Zapnologica