Web 应用程序项目与网站项目

作者:vkvi 来源:ITPOW(原创) 日期:2011-5-25

在用 Visual Web Developer 建立解决方案后,可在解决方案中添加工程项目和网站项目,而工程中有一项叫“Web 应用程序项目”,它和网站项目有什么区别呢?

其实他们的区别很多,方案、文件结构、编译、部署等多个方面。但我觉得有一点差异很明显。

  • Web 应用程序项目需要将网页编译,此时 .cs 文件,.aspx.cs 文件都被编译到一个 dll 中。部署时,更新这个 dll 即可实现更新。
  • 网站项目则不是先编译成 dll 再部署,而是直接将各个文件的源代码传上去就可以了,如果只更新一个文件,则更新这个文件(用记事本都可以),再上传,就可以了。不必非要用 Visual Studio 或 Visual Web Developer 生成 dll。

嗯,看起来 Web 应用程序似乎没有什么优势,错了。

Web 应用程序可以很好地进行大型开发及团队合作。如果有一个文件有问题,想暂时排除在工程之外,用网站项目的话,得删除该文件或将其扩展名改个名(比如 .exclude);但 Web 应用程序则不需要,因为 Web 应用程序有两个文件(.sln、.suo)控制哪些文件进行编译,哪些文件不编译,不编译的文件,可以轻松点一下鼠标就进行排除了。

同时,由于 Web 应用程序将代码文件编译成一个 dll,非常方便进行版本控制。在部署时也比较方便。当然要注意,dll 文件被不能防止源代码外泄,同 Java 一样,ASP.NET 也是编译的中间语言,所以很容易被 Reflector 这类工具还原成源代码,一般用 Dotfuscator 这类工具将源代码进行混淆,使拿到后的源代码混乱,让人根本没心情去理什么逻辑关系,一定程度上达到保密要求。

Web 应用程序事先就将代码编译好了,所以在更新网站后,Web 应用程序很快就能进行状态工作;网站项目则需要等那么几秒钟,等全部编译好了后,才会可访问。

更详细的比较

请参见 http://msdn.microsoft.com/zh-cn/library/dd547590.aspx

相关文章