2009-09-28 36 views
2

我有一個ASP.Net Web應用程序,部署到許多不同客戶的服務器並託管在IIS(6或7取決於站點)中。該系統基於一組相當複雜的ASP.Net(aspx)頁面。由於需求變化迅速,我們經常需要向系統添加表單。目前,我們使用一種相當笨拙的方式將表單添加到項目中,並將整個項目重新部署到客戶服務器。向現有已部署的ASP.Net Web應用程序添加ASP.Net表單

我期待構建一個機制,允許我們進入我們系統的配置屏幕,並調用託管在我們中央Web服務器上的Web服務,它將提供一個表單列表(可能以某種方式打包到一個Java WAR文件),客戶可以選擇安裝。安裝程序會以某種方式將表單添加到客戶的IIS中,以使其在系統中可用。我們的想法是針對一種aspx表單應用商店,我們的客戶可以選擇他們需要的表單並安裝它們,而不是我們不得不抽出時間執行多次部署,我們只需將其部署到我們的中央Web服務器。

有沒有人有關於如何做到這一點的任何想法?我可以用什麼技術來實現這一點?

回答

2

如果您在使用Web應用程序項目,這不是那麼容易的事,因爲所有形式的「代碼隱藏」將被編譯成一個DLL。每次添加新表單時,站點應用程序程序集都需要重新部署到/bin文件夾。

如果您正在使用「新風格」的項目少的Web應用程序在Visual Studio 2005中引入它會也許有可能你在尋找什麼,因爲你可以在每個頁面編譯成自己的DLL(修復Publish Web Site對話中的命名和單頁裝配)。我過去曾嘗試過這種方式,說實話,這有點讓人失望。也沒有一個適當的項目文件是一個更大的更復雜的項目的痛苦。

另一種方法是將所有標記和'代碼隱藏'放在同一個.aspx文件中,而不是具有.aspx.cs代碼隱藏文件。我認爲這會讓他們自成一體的代碼單元可以即時編譯,但這裏的問題是,所有的網站都需要以這種方式構建......我想。

這些是Visual Studio(2008)提供的開箱即用方法。如果你需要更復雜的東西,那麼你將不得不設計一些基礎設施,以使它不幸發生。

+0

謝謝你,我懷疑我不得不建立一些東西,但想要有人確認,所以我不覺得我正在'重新發明輪子'! – colethecoder 2009-09-30 10:09:43

0

您似乎有興趣找到一種方法來部署更改!僅部署更改通常不是一個好主意,因爲很容易錯過一兩個文件,然後整個應用程序崩潰。我認爲您應該更多地關注構建和部署自動化,這將幫助您使用單擊按鈕部署到多個服務器。

+0

我看到你在說什麼,但我想要的是讓客戶能夠下載他們需要的表單,而不是將所有表單部署到每個表單,因此像應用程序商店一樣功能。構建和部署自動化不會幫助我做到這一點。 – colethecoder 2009-09-29 07:49:25

1

其實你不必當你justing更改或添加Web表單到現有的預申請,以重新部署整個Web應用程序。照常發佈網站,然後抓住已添加的.aspx頁面等。現在,抓取添加,創建頁面時觸及的關聯.dll。這可能與網站.dll一樣簡單,或者您可能包含busines .dll和一個數據訪問.dll。但絕不要在大多數文件未被更改時移動所有文件。

對於使用此係統的預配置設置,您可以使用像nAnt這樣的工具並創建一個構建腳本,該腳本將構建所需的文件,然後將這些文件打包成一個自解壓zip文件,該文件將放置文件,.dlls到目標Web服務器上的正確路徑。

上帝與你的項目運氣,並希望這有助於一些。

相關問題