2010-09-21 67 views
4

我正在繼承一個Web應用程序,並且以前的程序員將他的所有代碼編譯爲一個.dll文件。 .cs文件不在服務器上。在服務器上保留ASP .NET代碼隱藏文件嗎?

在以前的項目上工作時,我總是上傳.aspx文件和相應的.cs文件。這對我來說從來都不是問題,我一直認爲這是標準程序。我錯了還是偏執?

回答

3

請問,我認爲這是很常見的代碼預編譯爲DLL。然後,代碼對潛在安全漏洞的暴露程度就會降低。這也提供了許多優點,包括更快的初始響應時間,錯誤檢查,源代碼保護和高效部署。在網頁和代碼文件頻繁更改的大型網站中,這一點尤爲重要。

2

將源代碼作爲項目的一部分不一定是最好的源代碼管理過程。有這方面的工具。另外,預編譯源代碼並不是一般的(這是Visual Studio中的Web Application project rather than a Web Site project),並且具有許多優點。

請注意,這不會讓你錯誤偏執。

0

這兩種策略都有很好的理由,你只需要弄清楚什麼最適合你的環境和應用。

在某些方面,如果您擔心有人偶然在服務器上進行更改,但不檢查更改爲源代碼管理,則可以預編譯它。在沒有預編譯的情況下,如果您的服務器上沒有更改控制,很難弄清楚誰「意外」進行了更改,爲什麼不檢查它。

另一方面,如果您不預編譯它可以使部署更加直截了當。

只要做兩點策略背後的一點研究,並決定什麼是最適合你的情況。

0

正如Nader指出的,在Web應用程序中,根本不需要CS文件。源文件被意外服務的風險並不大,因爲保護這些文件是IIS請求管理的核心功能。不過,通常不要將它們部署到生產Web服務器上。

在任何情況下,源文件在最低限度始終應備份在一個不是網絡服務器的位置,應儘可能源控制。我看到太多網站的源文件丟失,導致網站無用。

0

像上面的每個人都說過的,將源代碼編譯成DLLs被認爲是最佳實踐。

如果你想看到你已經只剩下的DLL的代碼中,有一個名爲反射一個方便的(而且免費!)工具(道歉,如果你已經知道了)

http://www.red-gate.com/products/reflector/

只需加載DLL,然後反彙編即可查看源代碼。

0

Web Application Projects編譯成.dlls並在服務器上不留下任何來源。

Web Site Projects將所有源部署到服務器。

這是一場什麼是最好的宗教戰爭。谷歌會給你提供很多不同的意見,所以我不會對你發表自己的看法。

相關問題