ASP.NET之预编译

上一节我们介绍了关于asp.net中的动态编译,今天来说一下预编译。

预编译:顾名思义,就是预先编译,使用户第一次浏览网站时不在编译。

预编译好处:自然是很多的,比如比起动态编译,第一次访问的响应速度肯定是要快的,此外,还可以保护源代码,比如我们网站开发好之后,需要发送给别人部署,我们又不想别人看见我的cs代码。那预编译就是你的不二选择。

如何进行预编译?

1:打开cmd窗口,运行此段命令:cd C:\Windows\Microsoft.NET\Framework\v4.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源代码。无法直接修改,这种情况你只有回去公司修改编译,然后拷贝上去。(这可能也不算缺点,因为我也不推荐直接在服务器上修改代码)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • asp.net web forms之动态编译

    在客户端请求aspx页面。将动态编译aspx页面和aspx.cs代码文件。第一次编译之后。将会缓存编译后的资源,而之后的请求,

    小明爱学习
  • 关于网站通信中Cookie的重要性

    大家应该都知道Cookie,在我看来Cookie分两种,一种是存储数据,另外一种是保持连接状态,我们主要谈第二种。

    小明爱学习
  • Web.config中httpModules和httpHandlers的相关配置说明

    Web.config中httpModules和httpHandlers的相关配置说明

    小明爱学习
  • Windows下OSGEarth的编译过程

    OSGEarth是OpenSceneGraph扩展库,编译过程可以参看我的另一篇文章:Win64下编译OSG详细过程(Win10+VS2015+OSG3.6.3...

    charlee44
  • SQLServer中char、varchar、nchar、nvarchar的区别:

    nvarchar(n) :包含 n个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两...

    爱学习的孙小白
  • 全员推送接口说明

    全员推送服务是基于即时通信 IM 通信架构实现的一组 REST API,用以支持 App 应用的全员推送、标签推送、属性推送等消息推送需求,客户端可通过 SDK...

    腾讯即时通信IM
  • Android自定义View-记录一个简单却又常见的效果实现

    代码 简单列下主要代码,完整代码地址放在了文字末尾。 1.为了更加灵活,我这里提供了很多属性用于用户自己来设置:

    coderZhen
  • arguments值多少

    答案:10,2,第一次输出10应该没有什么异议,这里的this指向window,第二个调用arguments[0]()相当于执行arguments调用方法,th...

    李才哥
  • 【小程序】一个测颜值的小程序,只为最美的你〜

      没有使用任何框架或者工作流的东西,直接用最新的微信开发人员工具打开即可,很简单,我就不多说了〜

    用户5997198
  • 小白学Flask第十三天| 来谈谈数据库迁移、邮箱扩展的那些事!

    在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。

    Python进击者

扫码关注云+社区

领取腾讯云代金券