2009-08-08 29 views
4

我在繼承的工作中有一個相當大的項目。這是一個ASP.NET 2005網站項目和兩個用於數據訪問和一些業務邏輯的C#庫項目。代碼實際上運行6個不同的數據庫驅動的網站它根據檢查URL的邏輯顯示每個站點的不同圖像和文本,並使用一系列Web.config值和switch語句。從一個ASP.NET代碼庫運行多個站點並轉移到ASP.NET MVC

我們現在有幾個新網站將遵循與這6個相同的模式和框架,因此管理層決定我們不應該重新發明輪子,我們應該繼續擴展現有代碼。儘管我從他們的角度理解了這個決定,但想到用更多的Web.config值甚至更多的switch語句擴展這些代碼感覺不對。似乎應該有一種更好的方式來管理這種特殊的複雜形式,但我沒有辦法處理更好的方式。

與此同時,我一直在尋找一個開始學習ASP.NET MVC的項目,我一直傾向於在自己的時間重新開發這個項目,因爲它很複雜,但需求是在代碼中。我期望獲得將它移到MVC中的3件事:1)能夠測試應用程序及其所有版本,以及我甚至不知道存在的所有黑暗角落,2)希望找到一種方法來製作在單個代碼庫上管理大約12個站點,管理和3)學習MVC。

東拉西扯了一下之後,這裏有一些具體的問題:

威爾MVC居然給我更好的方法來管理1個代碼庫問題12個網站?沒有對MVC的深入瞭解,我有點難以分辨。

有沒有辦法,我可以申請(任一的WebForms或MVC),它適用於有相似內容和結構,並從相同的代碼庫運行類似網站一個模板圖案或框架?

難道還有比檢查URL來決定正在查看的網站,什麼圖像和文本應顯示爲每個站點更好的辦法?

謝謝你的時間。我很欣賞它!

回答

1

ASP.Net MVC可能在這裏有一些真正的優勢。你不會再手動檢查URL,因爲MVC的路由功能會爲你做 - 所以從某種意義上說,這是一種「更好的方式」。這裏有一些優勢:

  1. URL路由區分是被服務的站點,並且可以輕鬆地提高「哪個網站我在」參數將自動傳給每個控制器(隨後,每個View)如果你正確地構建你的路線。

  2. 網址路由是雙向的,因此您可以爲所有網站定義單個視圖,從而生成適當的圖像和腳本引用到您需要的任何網站目錄,這相對比較簡單。

  3. 局部視圖會在特定的網站內容,以切換角落情況下,模板不完全是爲每個站點相同的好方法。

只要每個站點的邏輯合理相似,ASP.Net MVC 1.0就可以處理這個問題。如果您需要每個站點的不同控制器邏輯,即將推出的ASP版本。Net MVC有一個「區域」的概念,它允許你在同一個應用程序中實現不同的站點,這些站點都有自己的控制器,模型和視圖目錄 - 但是它們的路線是不同的。

1

MVC實際上會爲我提供更好的方法來管理12個站點的1個代碼庫問題嗎?

老實說:我不會走這條路。 ASP.NET足夠強大,可以擁有多租戶系統。有些東西有助於在ASP.NET MVC中構建多租戶應用程序。您有IoC用於更改應用程序之間的業務規則,並且您可以選擇動態選擇要呈現的視圖。 你有能力。

這就是所有偉大的:在這裏讀到它 link so

但還是:這是實現這樣的系統中的enourmous努力。 ASP.NET非常棒(你現在有了路由!),如果你有一個正在運行的系統,那麼更好地投入你的時間來改善它。

+0

只要能夠給這個架構一個名字,多租戶,是一個巨大的幫助。謝謝! – Mattio 2009-08-09 12:55:04

相關問題