2008-10-01 45 views
5

我們有一個現有的經典ASP內聯網,由數百頁組成。它的目錄結構看起來像這樣...經典ASP內聯網和新ASP.NET應用程序

/root 
    app_1 
    app_2 
    ... 
    img 
    js 
    style 

很明顯,app_1等在實際目錄結構中有更好的名稱。

儘管許多應用程序具有不同的行爲,但它們都是同一個Intranet的一部分,因此通過/ style包含樣式表,通過/ img包含樣式表和通過/ js包含客戶端腳本來共享通用外觀。

當我想在ASP.NET中添加一個Intranet應用程序時,麻煩(至少對我來說)來了。

最後,我想這樣的結構:

/root 
    app_1 
    app_2 
    dotnetapp_1 
    dotnetapp_2 
    ... 
    img 
    js 
    style 

在我看來,那ASP.NET「應用程序」喜歡把自己的從周圍的一切獨立的(這可能只是我的理解他們是如何)。你在Visual Studio中創建一個新的「項目」,就像你有一個新的「根」在我想要使用的實際的根之下。就像這個新的應用程序是一個獨立的,具有自己的圖像和風格以及什麼的應用程序。但是,我希望它成爲現有Intranet的子部分。

最終,我希望能夠將我的整個經典ASP Intranet作爲「根」,並擁有仍然可以訪問/ style和/ img的ASP.NET「子應用程序」,我想ASP.NET對於「將有/ masterpages。

我以前試過這個,但我認爲VS窒息了幾百個經典ASP頁面,當我將現有的Intranet根目錄作爲ASP.NET項目根目錄時,它添加到「項目」中(通過File- > Open-> Web Site)。我很高興編輯使用VS 2008 SP1的現有經典ASP Intranet(我目前使用優秀的Notepad++),因爲我想用VS獲得更多的信息,但我想這不是絕對必要的。

我也嘗試將每個新的ASP.NET應用程序作爲一個應用程序來處理,使/ dotnetapp_1目錄成爲應用程序的「根」(同樣,通過VS2008中的File-> Open-> Web Site) 。然而,當我嘗試引用/ masterpages時,VS會抱怨,因爲它「屬於另一個應用程序」。我認爲我通過在每個ASP.NET目錄內添加一個虛擬目錄來指責它,這個虛擬目錄「指向」根目錄/主頁面,但我不確定當我這樣做時,VS能夠愉快地提供所見即所得編輯,而不是製作副本在我添加到Intranet的每個ASP.NET應用程序中的主頁面。我也很有可能訪問.NET MVC框架,所以請提供任何有關該框架的答案。我希望「項目」對於MVC來說不是很重要,而只是一堆文件創建了一個對整個(即內聯網)有貢獻的應用程序。

所以,問題是:如何最好地將ASP.NET應用程序添加到現有的經典ASP Intranet(我不關心經典ASP和ASP.NET之間會話共享的技術問題,只有目錄和項目的結構佈局),並且能夠在Visual Studio 2008 SP1中編輯這些單獨的應用程序,並且通過常見的Intranet外觀和感覺使這些應用程序「相關」

  • 請不要只發布答案「使用MasterPages」。我感謝MasterPages。NET的方法共享相同的應用程序中的相關頁面之間的樣式(更可能)。我明白了。我在尋找的是將ASP.NET應用程序儘可能順利地添加到現有Intranet中的最佳方法,這使得編輯每個應用程序變得簡單,並且每個應用程序可以共享(如果可能)Intranet常見樣式。

回答

2

一個解決方案是使用IIS管理器來配置網站(由Visual Studio爲您的ASP.NET應用程序創建),併爲每個常用文件夾添加一個虛擬目錄,以便(通過'虛擬'性質的虛擬目錄),他們將出現在與你的ASP.NET應用程序相同的根文件夾中。

/root 
    app_1 
    app_2 
    dotnetapp_1 
    <virtual>img 
    <virtual>js 
    ... 
    img 
    js 
    style 

你或許可以腳本IIS或者如果你需要這樣做批量修改一個XML文件,我敢肯定,必須有一個更優雅的方式做同樣的事情,不需要得多鼠標工作!

+0

正如我的問題所述,這是我過去在每個ASP中使用虛擬目錄的方法.NET應用程序目錄引用/ masterpages。凌亂,更不用說有點討厭每次都必須這樣做。我也認爲VS也不是100%高興。也許這是_is_解決方案? – Sprogz 2008-10-01 13:18:59

2

由於ASP.NET現在是Microsoft標準網絡開發平臺您可能更適合從一個全新的ASP.NET網站開始,並將現有的ASP頁面和文件夾導入其中。一旦你建立並運行了,在ASP.NET中添加新的功能將會很快。

Microsoft知道有些客戶會混合傳統的ASP和ASP.NET一段時間,他們通過使經典的ASP頁面在ASP.NET網站內工作來適應這種需求。你試圖做的是與此相反(讓ASP.NET在ASP中工作,sorta),並且你已經遇到了困難。

+1

謝謝。所以,使用VS2008我可以做一些像「創建新網站」一樣的東西,並創建一個基本的.NET文件結構。那麼怎樣才能「添加」我現有的經典ASP,以便這些文件可以在VS中編輯,但不包含在盛大的「編譯網站項目」中,還可以添加新的ASP.NET子應用程序。 – Sprogz 2008-10-01 13:24:07

0

難道你不能將asp.net網站作爲虛擬目錄運行嗎?

www.site.com/dotnetapp/ 

其中dotnetapp是一個完全獨立的虛擬目錄?

0

夫婦不同的方式去了解這一點:

  1. 如果您列出的文件夾結構所需的Web文件夾結構,那麼您的任何ASP.NET應用程序可以直接引用/root/js/whatever.js或../js/whatever.js,它會到達您已經擁有的文件夾。這是已經提到的虛擬目錄解決方案的替代方案。這是一個相當混亂的解決方案,我在當前工作中繼承的一些項目都是這樣做的。
  2. 在之前的工作中,我管理了一個混合的經典ASP/ASP.NET應用程序幾年,並且通過在根上創建了一個ASP.NET Web應用程序並將所有的ASP頁面移動到其中。你想做的任何「子應用程序」應該只是這個單個項目中的文件夾。 [ASP頁面在VS2008中沒有顏色編碼了,但這真的很煩人。]