ASP.NET编程:怎样充实使用ASP.NET 2.0预编译
我实在想不明白java的机制,为什么非要那么蛋疼,在同一个平台下重复编译。asp.net|编译 ASP.NET1.x的开辟职员经常听到用户埋怨初次挪用使用程序的时分会碰着初始化提早。究竟,初度哀求会激发一个系列历程,包含运转库初始化、剖析、把ASPX页面编译成两头言语、把办法立即编译本钱地代码等等。自从ASP.NET面市以来,开辟职员一向都在请求(微软)出台一个办理举措,而ASP.NET2.0使用预编译供应了一个无效的办理计划。
预编译选项
在初次启动使用程序的时分,ASP.NET会静态地剖析和编译一切的ASP.NET文件(aspx页面)。运转情况要对编译的了局举行缓冲,以便更好地服务将来一切的哀求。
在服务重视启大概Web服务重视启以后,第一次启动使用程序也意味着这一历程要从头入手下手。并且,对使用程序任何文件的改动城市被体系检测到,而在文件产生改动以后初次运转使用程序也会让这一历程再次产生。
良多Web开辟职员都很厌恶这类初始化提早。而预编译经由过程(事后)编译使用程序制止了这类提早。
命令行
经由过程安装在.NET框架2.0里的aspnet_compiler.exe程序就可以够启动预编译。它位于框架安装目次下(版本号会依据安装的框架的版本而有所分歧)。上面就是这个程序默许的路径:
C:Microsoft.NET
Frameworkv2.0.5072aspnet_compiler.exe
您能够用-?这个命令参数检察该程序的一切参数列表,上面我就注释一下一些可用的参数:
m:这个参数暗示您将利用完全的、使用程序将被预编译的IIS元数据库路径。IIS元数据库的路径是/LM/W3SVC/1/Root/使用程序名。
v:利用必要预编译Web使用程序的假造IIS路径。假造路径的格局是:/使用程序名。
p:利用必要预编译Web使用程序的物理IIS路径。它是包含驱动器名和指向使用程序目次的完全路径。举个例子c:inetpubwwwroot使用程序名。v这个参数必需和p一同用,以是编译器可以剖析任何使用程序的根参考。
f:暗示方针目次是不是要被掩盖。
u:用来设置预编译完的使用程序是能够更新的。这暗示一切的标志文件(ASPX、ASCX等等)都能够在方针目次里举行更新。
targetDir:用于预编译使用程叙文件的方针目次。上面的命令用假造路径和指定的方针路径预编译了一个使用程序:aspnet_compiler.exeCv/使用程序名c:方针目次名。
假如没有指定方针目次,那末了局文件会被放在ASP.NET的一时文件目次里,就像在ASP.NET运转库在初次挪用使用程序的时分处置编译一样。一时目次默许的路径以下:
c:WindowsMicrosoft.NETFramework
v2.0.50727TemporaryASP.NETFiles使用程序名
预编译别的一个优点是可以捕获在使用程序启动阶段产生的任何毛病。毛病会显现在工具里,可是不会停止编译历程。
埋没源代码
预编译的别的一个副产物是可以埋没任何大概一切的使用程序源代码。这意味着其他的开辟职员必要使用反编译程序大概ilasm才干够获得您的代码。这就好了――预编译让您可以以二进制文件的情势分发使用程序。
方针目次里没有源代码。App_Code文件夹里的一切类都被编译成一个大概多个二进制文件,放到bin目次下;方针目次下不会有源代码文件(.cs、.vb、.js等等)。别的,一切的主页面文件也会被编译到bin目次下,作为埋没文件。ASPX、ASCX和ASHX文件的一切代码和标志,和相干的代码埋没文件都被放在bin目次下的一个大概多个程序集里。
埋没源代码是毁誉各半。其他的开辟职员没法以任何情势检察大概变动使用程序――即便是Web页面标志也不可。而别的一方面,对使用程序的任何改动(不管巨细)都请求改动原始的源代码、从头编译和从头部署。这多是一个非常耗时的历程,以是其实不必定合用于一切的使用程序。
可更新命令参数(u)让您可以代替这个默许的举动。利用这个参数意味着一切的标志文件(ASPX、ASCX等等)都要包含在预编译历程的输入里。一旦使用程序被部署,这些文件仍旧可以用于编纂和更新。在使用程序被使用以后,小的结构成绩能够经由过程源文件来处置,以是这是一个十分幻想的参数。
VisualStudio的撑持
在利用VisualStudio2005开辟基于ASP.NET的使用程序时,预编译是可选的。“公布Web站点(PublishWebSite)”菜单选项让您可以把网站作为一个预编译使用程序推到另外一个地位。别的,下面另有一个复选框让您设置可更新选项。
总结
ASP.NET2.0的预编译选项让您可以预编译Web使用程序,以免(像一样平常编译一样)初次挪用使用程序的提早。别的,它还供应了必定的平安性,由于程序的源代码在了局中是不成见的,一切的内容文件都能够被埋没。
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。 Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境! 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
页:
[1]