2011-03-25 77 views
2

我想獲得關於託管目前ASP應用程序的ASP.Net部分的最佳方法的建議。在現有應用程序中集成ASP.Net和('經典')ASP

我們有一個用('classic')ASP編寫的大型複雜應用程序。

它的一部分需要重寫(遺憾的是重寫它的所有內容是不切實際的),我們將使用ASP.Net。

(原來的應用程序,使得在所有沒有明確使用Session對象)


這在我看來,有兩種方法繼續進行這一託管。

選項1:創建一個新的虛擬目錄,服務應用程序的新重建部分從那裏 - 連接背部和ASP和ASP.Net之間必要的轉發

選項2:保持內現有的虛擬目錄並保持當前ASP目錄


顯然選項1是「更清潔」的子目錄內的整個ASP.Net應用程序,我有輕微偏愛可以這樣做。

但是從源代碼管理和安裝的角度來看,選項2可能更簡單。

  • 在源代碼管理中,您只有一個「trunk」,當需要更改時,它將被檢出。
  • 安裝時(由Inno Installer的多個位置的任意技術人員完成),技術人員只需選擇一個虛擬目錄,然後全部進入該目錄。

我很想從誰做了選項1選項2人聽到(或者一些其他的方式?)。

也有興趣聽到我忽略了哪種方法是否存在問題。

+0

我認爲'主辦'標籤不應該在那裏這個問題。相反,你可以爲'source-control'或'svn'添加一個標籤 – 2011-03-25 04:19:58

回答

2

很久以前(大約3年前)我做了一個類似的項目,客戶端有一個經典的ASP站點,他們想在ASP.NET中開發新的功能。我遵循方法二,在根中創建另一個VD,將所有文件放在那裏。從源代碼管理的角度來看,這些優勢顯而易見。然而,我不得不在我的設置中添加額外的步驟來爲我的子VD設置ASP.NET版本以使其工作。另外分享會議是另一個問題,我相信你沒有像你所描述的那樣有問題。

1

我做到了左右逢源:

選項2:我有傳統的ASP應用程序,並使用相同的虛擬目錄,一切工作正常在ASP.NET 2.0中添加新的頁面,但你需要傳遞會話信息,我記得我爲此使用了QueryString,你可以看看How to Share Session State Between Classic ASP and ASP.NET。如果你不使用會話,那就更簡單了。選項1:在同一個ASP應用程序中,我使用主應用程序的菜單中的鏈接調用ASP.NET應用程序(另一個虛擬目錄)。但在這種情況下,它在邏輯上是分開的部分。在這種情況下,我也通過QueryString傳遞了會話信息。

因此,總而言之,我認爲這一切都取決於這部分的接近邏輯與主應用的邏輯連接。

對於選項1,調試很容易。 如果選項2,則可以逐頁替換。

1

從編碼的角度來看沒有嚴重的影響。差異主要是審美。我傾向於選項#2。它允許我選擇爲asp.net代碼提供不同的IIS配置 - 以防將來需要它。