在用 Visual Web Developer 建立解決方案后,可在解決方案中添加工程項目和網(wǎng)站項目,而工程中有一項叫“Web 應用程序項目”,它和網(wǎng)站項目有什么區別呢?
其實(shí)他們的區別很多,方案、文件結構、編譯、部署等多個(gè)方面。但我覺(jué)得有一點(diǎn)差異很明顯。
嗯,看起來(lái) Web 應用程序似乎沒(méi)有什么優(yōu)勢,錯了。
Web 應用程序可以很好地進(jìn)行大型開(kāi)發(fā)及團隊合作。如果有一個(gè)文件有問(wèn)題,想暫時(shí)排除在工程之外,用網(wǎng)站項目的話(huà),得刪除該文件或將其擴展名改個(gè)名(比如 .exclude);但 Web 應用程序則不需要,因為 Web 應用程序有兩個(gè)文件(.sln、.suo)控制哪些文件進(jìn)行編譯,哪些文件不編譯,不編譯的文件,可以輕松點(diǎn)一下鼠標就進(jìn)行排除了。
同時(shí),由于 Web 應用程序將代碼文件編譯成一個(gè) dll,非常方便進(jìn)行版本控制。在部署時(shí)也比較方便。當然要注意,dll 文件被不能防止源代碼外泄,同 Java 一樣,ASP.NET 也是編譯的中間語(yǔ)言,所以很容易被 Reflector 這類(lèi)工具還原成源代碼,一般用 Dotfuscator 這類(lèi)工具將源代碼進(jìn)行混淆,使拿到后的源代碼混亂,讓人根本沒(méi)心情去理什么邏輯關(guān)系,一定程度上達到保密要求。
Web 應用程序事先就將代碼編譯好了,所以在更新網(wǎng)站后,Web 應用程序很快就能進(jìn)行狀態(tài)工作;網(wǎng)站項目則需要等那么幾秒鐘,等全部編譯好了后,才會(huì )可訪(fǎng)問(wèn)。
更詳細的比較
請參見(jiàn) http://msdn.microsoft.com/zh-cn/library/dd547590.aspx。
聯(lián)系客服