Asp.net

優化 ASP.NET 網站項目的建構性能?

  • July 8, 2018

我目前正在使用一個 ASP.NET CMS,它在 App_Code 目錄中保存了近 500 個程式碼文件,以及在網站的各個文件夾中包含數百個程式碼隱藏的 Web 表單。這是一個網站項目(不是 Web 應用程序項目),我不願意更改它,因為這是一個涉及多個開發人員的項目,而且這就是 CMS 的傳遞方式。

我正在尋找優化此網站項目建構過程的提示和技巧,因為 Visual Studio 經常想要重建所有源文件和程式碼隱藏文件,這可能需要幾分鐘。

有沒有辦法避免重建所有文件?我是否應該提出將我們的程式碼和 CMS 程式碼分離為單獨的 Web 應用程序項目(而不是網站項目)的問題?還有其他方法可以提高建構性能嗎?

如果最簡單的更新檔解決方案是保持 .cs 結構盡可能相似,那麼我會接受 Andreas 的建議,將 App_Code 移動到至少 1 個其他項目中。

Scott Guthrie在 VS 2005 中發布了一些關於 speeing 編譯的提示,您沒有指定您使用的版本,但同樣的速度提示適用。他文章的第二部分專門針對網站項目。

另一個提示是,如果您正在處理頁面而不是App_Code目錄中的實際程式碼,那麼有一個可能有用的建構選項。轉到Project Properties > Build > Change在從 Build Web Site執行啟動頁面到****Build Page之前,這將在您啟動調試器時僅建構啟動頁面。我不確定這種情況是否經常發生,但是如果您的大部分工作都發生在 pages 中而不是 in 中App_Code,這將為您節省大量編譯時間。

App_Code 必須一起建構,您應該避免在其中放置程式碼隱藏等。可以在別處的一切都應該是。請注意:至少在調試中,Web 應用程序的編譯時間通常快 30-50 倍左右。話雖如此,每次程式碼更改都必須重新編譯整個應用程序,因此存在缺點……但是隨著名稱空間的更改等,我知道應變更新檔會給您帶來壓力。

另外,請記住,當您將程式碼拆分到其他項目時,除了在編譯方面更簡單外,Visual Studio 不需要編譯這些其他依賴項項目,除非它們已更改。就目前而言,一切都是公平的遊戲,因為項目中任何可以更改的內容都可能影響其中的任何其他內容……但是,如果您將其拆分,Visual Studio 只會在您的其他項目發生更改或項目更改時編譯他們的參考得到重建。

引用自:https://stackoverflow.com/questions/1420643