2010-02-03 52 views

回答

2

我看到兩個主要的原因:

  1. 編譯時錯誤檢查。
  2. 避免在第一頁適合編譯的開銷。

第一個允許在開發過程中檢測到更多錯誤(例如屬性名稱中的拼寫錯誤),而不是獲取死亡的黃色屏幕。如果有問題的代碼是錯誤路徑,那麼確保測試覆蓋率可能很難確保測試覆蓋率可以透過。

這不能保證在生產中不會有錯誤。在編譯時顯然不會出現邏輯錯誤,也不會錯過錯誤處理(僅列出兩大類錯誤)。

此外,它不會防止由於缺少裝配(在開發計算機上存在但未部署到生產中)而缺少參考問題。因此,良好的實踐仍然需要一個臨時環境(這也可以用於驗收測試),開發人員和測試人員將其視爲生產 - 只有訪問才能部署經過糾正的版本(無需直接修復),因此修復了所有問題從開發(和源代碼控制)開始。

+0

明白了你的意思,非常感謝。但是,在我的第二個問題上,如果在我的本地計算機中編譯它並將其部署到服務器後,有可能會出現錯誤?可能是因爲我的機器和服務器上的設置與cpu的數量/類型有所不同? – 2010-02-03 10:57:21

+0

@mcxiand:請參閱解決第二個問題的最後兩段。 – Richard 2010-02-03 11:55:05

+0

我看到它,但它沒有解決這個問題。我所說的「機器設置」不是邏輯錯誤或缺少裝配。 – 2010-02-03 12:10:44

2

另一個優勢是如果您必須部署到不受信任的環境(例如共享主機),則保護您的源代碼,因爲您只部署二進制文件,這使得第三方難以進行任何反向工程,在那裏你所有的.cs文件。

僅執行編譯就不會看到任何跨平臺問題。請查看this答案,它解釋了.NET如何在不同的體系結構上運行。

相關問題