免責聲明這是從我的頭頂,我從來沒有這樣做,可能是沒譜的方式:
的初步審查之後,我想你已經3個交替討論如下:
- 合併成一個應用程序,
- 有一個應用程序,應用程序根,另一個爲「子」應用
- 複製合併成編譯後一個應用程序(這可能不是正錫布爾赫丁)
1)合併成1個應用程序爲您提供了以下好處,比較簡單,你需要修改的Global.asax - 設置你的MVC路線,國際奧委會等 - 的HttpApplication,會話和安全(假設形式基於)將會正常工作。
有一個有點「輕微」的問題,那就是共享tempData,如果你可以在你的頁面上實例化一個SessionStateTempDataProvider(Init加載,卸載以保存類似於視圖狀態),那麼你應該能夠創建,似乎找到了博客,但幾個月前認爲它是Steve Sanderson。
您的單元測試/代碼覆蓋率將很難跟蹤,您可能需要考慮如何管理它,這是一個完全不同的討論。
2)使用此選項,您可以將應用程序與新的繼承問題完全分開。如果您的應用程序使用它,HttpApplication。*可能會導致問題,因爲它們會引用不同的文件夾,上下文等,但忽略那些說明您很高興它們是不同的應用程序
下一個大問題是讓Sessions正常工作,現在這可能證明是非常棘手的,如果session處於正常狀態,那麼每個應用程序將不會看到其他應用程序會話,但是如果您使用SQL或自定義緩存服務器進行會話狀態,則應該能夠「破解」過程或引用/配置,並在應用程序之間共享會話狀態 - 最糟糕的情況是,您需要編寫自己的會話提供程序,(我從來沒有寫過一個,所以不知道這將是多麼困難,或者它是否可行)。
下一個問題是表單身份驗證,您可以執行標準單一登錄並確保MachineKey驗證和解密密鑰在配置中相同。臨時數據將與選項1相同。對我來說,這聽起來像太多的事情要改變,可行... ...
3)假設你把你的asp.net網站,並添加引用MVC和在默認的全球ASAX添加路由等應用程序仍然應該建立乾淨,但扔路由錯誤尋找/控制器/動作時/ id類型的路由,所以你可能需要檢查這個。
假設工作的,你可以「潛在」做兩個應用程序的XCOPY合併(即從MVC應用程序中的所有文件複製到asp.net應用程序前展開)。我知道你可以通過創建一個合併了兩個應用程序的大項目來實現這一點,但這種方式在構建過程的後期階段將代碼合併在一起。 (簽字的議會,想起來很麻煩)。再次,你需要在臨時數據發佈工作...
我還沒有觸及URL重寫等許多方面,你可能需要考慮,並請注意,與每種方法明顯的缺點您可能需要考慮。
綜上所述我認爲你最大的問題將是一個HttpApplication,從MVC端會話和TempData的,觀看來自asp.net端的狀態。網址重寫,認證應該更容易。
而正如阿甘正在說的那樣,「那是我的想法」。
你試圖將應用程序轉換集體到ASP.NET MVC或只是在時間MVC將一塊「擁抱和擴展」的舊的應用程序? – 2010-05-06 16:12:03
「擁抱與延伸」可能最能描述我所追求的。例如,我們在/ forum文件夾中有一個ASP論壇。我想在MVC項目中創建一個名爲「forum」的區域,並從ASP網站中刪除相同的文件夾,並讓MVC論壇接管。有了這樣大小的網站,一次只能做到這一點。 – 2010-05-06 16:15:08