ASP.NET的預(yù)編譯應(yīng)用程序
隱藏源代碼
預(yù)編譯的另外一個(gè)副產(chǎn)品是能夠隱藏任何或者所有的應(yīng)用程序源代碼。這意味著其他的開(kāi)發(fā)人員需要利用反編譯程序或者ilasm才能夠取得您的代碼。這就行了——預(yù)編譯讓您能夠以二進(jìn)制文件的形式分發(fā)應(yīng)用程序。
目標(biāo)目錄里沒(méi)有源代碼。App_Code文件夾里的所有類都被編譯成一個(gè)或者多個(gè)二進(jìn)制文件,放到bin目錄下;目標(biāo)目錄下不會(huì)有源代碼文件(.cs、.vb、.js等等)。此外,所有的主頁(yè)面文件也會(huì)被編譯到bin目錄下,作為隱藏文件。ASPX、ASCX和ASHX文件的所有代碼和標(biāo)記,以及相關(guān)的代碼隱藏文件都被放在bin目錄下的一個(gè)或者多個(gè)程序集里。
隱藏源代碼是毀譽(yù)參半。其他的開(kāi)發(fā)人員無(wú)法以任何形式查看或者更改應(yīng)用程序——即使是Web頁(yè)面標(biāo)記也不行。而另外一方面,對(duì)應(yīng)用程序的任何改變(不論大小)都要求改變?cè)嫉脑创a、重新編譯和重新部署。這可能是一個(gè)十分耗時(shí)的過(guò)程,所以并不一定適用于所有的應(yīng)用程序。
可更新命令參數(shù)(u)讓您能夠取代這個(gè)默認(rèn)的行為。使用這個(gè)參數(shù)意味著所有的標(biāo)記文件(ASPX、ASCX等等)都要包括在預(yù)編譯過(guò)程的輸出里。一旦應(yīng)用程序被部署,這些文件仍然能夠用于編輯和更新。在應(yīng)用程序被應(yīng)用之后,小的布局問(wèn)題可以通過(guò)源文件來(lái)處理,所以這是一個(gè)非常理想的參數(shù)。
Visual Studio的支持
在使用Visual Studio 2005開(kāi)發(fā)基于ASP.NET的應(yīng)用程序時(shí),預(yù)編譯是可選的。“發(fā)布Web站點(diǎn)(Publish Web Site)”菜單選項(xiàng)讓您能夠把網(wǎng)站作為一個(gè)預(yù)編譯應(yīng)用程序推到另一個(gè)位置。此外,上面還有一個(gè)復(fù)選框讓您設(shè)置可更新選項(xiàng)。
總結(jié)
ASP.NET 2.0的預(yù)編譯選項(xiàng)讓您能夠預(yù)編譯應(yīng)用程序,以避免(像一般編譯一樣)***調(diào)用應(yīng)用程序的延遲。此外,它還提供了一定的安全性,因?yàn)槌绦虻脑创a在結(jié)果中是不可見(jiàn)的,所有的內(nèi)容文件都可以被隱藏。以上是介紹ASP.NET的預(yù)編譯應(yīng)用程序
【編輯推薦】