上一节我们介绍了关于asp.net中的动态编译,今天来说一下预编译。
预编译:顾名思义,就是预先编译,使用户第一次浏览网站时不在编译。
预编译好处:自然是很多的,比如比起动态编译,第一次访问的响应速度肯定是要快的,此外,还可以保护源代码,比如我们网站开发好之后,需要发送给别人部署,我们又不想别人看见我的cs代码。那预编译就是你的不二选择。
如何进行预编译?
1:打开cmd窗口,运行此段命令:cd C:WindowsMicrosoft.NETFrameworkv4.0.30319,注意最后的是.net的版本号,请你们找到你们程序对应的版本号。
2:运行此段命令:aspnet_compiler -v -p G:Source G:Target
说明:
G:Source:源代码路径,G:Target:编译之后的代码路径
编译情况:
运行上述命令之后,你的编译之后文件夹,会把源代码的文件全部拷贝过来,但是也会少一些东西:
1:App_Code文件夹没了,因为已经编译成dll了,存在bin文件夹里了;
2:aspx页面的cs文件也没了,也编译成dll存在bin文件夹里了;
3:根目录下的空文件夹没了
4:aspx页面还在,但是只是占位符而已,打开aspx文件查看,实际内容早已被修改一句话(这是预编译工具生成的标记文件,不应删除!)
然后我们打开bin文件夹看,会发现多了很多dll文件和compiled文件。这些是预编译所创建的文件。
然后大家可以直接用iis部署此站点,可以直接运行。
预编译和动态编译比较呢?
优点:
1:预编译保护了源代码(虽然可以通过反编译软件破译出来),这是动态编译所没有的
2:加快的网站的响应速度,动态编译虽然会缓存,但是一旦修改了程序,当用户访问就会再次编译,预编译呢?修改了程序,在本地编译好,在拷贝到服务器上,所以编译交给了程序员,而不再用户了。
缺点:
1.修改程序不在直接,意思就是,比如我们下班回家,老板打电脑说要修改一点小东西,可能就是修改某个cs文件的一个变量,但是由于服务器的也看不见cs源代码。无法直接修改,这种情况你只有回去公司修改编译,然后拷贝上去。(这可能也不算缺点,因为我也不推荐直接在服务器上修改代码)