2012-04-11 75 views
4

只需閱讀有關在web應用程序項目(described here)中使用codefile = somefile.aspx.cs而不是codebehind = somefile.aspx.cs的可能性。顯然這會導致文件僅在加載頁面時編譯,而不是預編譯(對吧?)。在web應用程序項目中使用代碼文件

在Web應用程序項目中使用代碼文件而不是代碼隱藏是否存在任何負面或意外的副作用?

+0

您不應該爲生產動態編譯。正如在鏈接文章中所討論的那樣,它確實使開發週期更快一些。 – mellamokb 2012-04-11 17:17:42

+2

其他性能,是否有一個原因,我不應該在生產中動態編譯?例如。對於網站項目來說,它似乎沒有問題。 – 2012-04-11 17:22:20

回答

3

我認爲如果您的網站不是全部或者其他網站,您可能會遇到問題需要支持。 (CodeFile或CodeBehind)

ie如果您試圖找出生產站點上的錯誤處理告訴您在某個文件或命名空間內的問題,則必須停下來檢查每個文件並進行控制您在排除故障之前支持您查看頁面是作爲編譯程序集的一部分運行還是從網站上的代碼隱藏運行。

如果嘗試使用混合環境,也可能遇到衝突或缺少名稱空間。

優點,因爲我看到它的CodeFile:

  • 你的生產源代碼可以坐在你的生產網站。如果代碼全部編譯在bin目錄中的DLL中,那麼您並不絕對保證您的開發環境或源代碼控制中的代碼就是那裏的代碼。 (當然應該,但如果所有事情都應該如此,我們很多人都不會有修復其他人的代碼的工作!)
  • 對於更新,您只需推出單個文件,而不是整個裝配。
  • 在重新編譯和發佈到生產環境之前,您可以在其他頁面上取得進展,而這些進展無需退出。

缺點:

  • 既然你不推出編譯的程序集,你可能有單獨的文件中的錯誤,這將除非有人訪問每個特定頁面不一定被抓到或者如果你是確保在部署之前進行編譯。
  • 您可能在代碼文件中存在衝突的名稱空間,這些名稱空間可能永遠不會被捕獲,並可能導致混淆或錯誤。
  • 動態編譯的性能問題
相關問題