6.3 预编译和编译
知识点讲解:光盘:视频\PPT讲解(知识点)\第6章\预编译和编译.mp4
预编译是指预先编译,是一种准备活动。在实际编程应用中,在编码之前也要做一些准备活动。高质量的实践方法是那些能创造高质量软件的程序员的共性。这些高质量的实践方法在项目的初期、中期、末期都强调质量。如果在项目的末期强调质量,则会强调系统测试。当提到软件质量保证的时候,许多人都会想到测试。ASP.NET在将整个站点提供给用户之前,可以预编译这个站点。这就为用户提供了更快的响应时间,提供了在向用户显示站点之前标识编译时bug的方法,提供了避免部署源代码的方法,并提供了有效的将站点部署到成品服务器的方法。开发人员可以在网站的当前位置预编译网站,也可以预编译网站并将其部署到其他计算机。在本节的内容中,将详细讲解ASP.NET预编译和编译的基本知识。
6.3.1 网站预编译
在默认情况下,在用户第一次请求网站资源时,将动态编译ASP.NET网页和代码文件。第一次编译页和代码文件之后,会缓存编译后的资源,这样将大大提高随后对同一页提出请求的效率,并且ASP.NET可以预编译整个站点,然后再提供给用户使用。
在ASP.NET中,提供了如下两个预编译站点选项。
1.预编译现有站点
如果用户提高现有站点的性能并对站点执行错误检查,此预编译选项将变得十分有用。可以通过预编译网站来稍稍提高网站的性能。对于经常更改和补充ASP.NET网页及代码文件的站点则更是如此。在这种内容不固定的网站中,动态编译新增页和更改页所需的额外时间会影响用户对站点质量的感受。在执行就地预编译时,将编译所有的ASP.NET文件类型(HTML文件、图形和其他非ASP.NET静态文件将保持原状)。在预编译过程中,编译器将为所有可执行输出创建程序集,并将程序集放在%SystemRoot%\Microsoft.NET\Framework\version\Temporary ASP.NET Files文件夹下的特殊文件夹中。
2.针对部署预编译站点
此选项将创建一个特殊的输出,可以将该输出部署到成品服务器。预编译站点的另一个用处是生成可部署到成品服务器的站点的可执行版本。针对部署进行预编译将以布局形式创建输出,其中包含程序集、配置信息、有关站点文件夹的信息,以及静态文件(如 HTML 文件和图形)。
在部署预编译的应用程序之后,ASP.NET使用Bin文件夹中的程序集来处理请求。预编译输出包含.aspx或.asmx文件作为页占位符。占位符文件不包含任何代码。使用它们只是为了提供一种针对特定页请求调用ASP.NET的方式,以便可以设置文件权限来限制对页的访问。
6.3.2 网站编译
为了使用应用程序代码为用户提出的请求提供服务,ASP.NET必须首先将代码编译成一个或多个程序集。程序集是文件扩展名为.dll的文件,是可以采用多种不同的语言来编写ASP.NET的代码。当编译代码时,会将代码翻译成一种名为Microsoft中间语言(MSIL)、与语言和CPU无关的表示形式。运行时,MSIL将运行在.NET Framework的上下文中,.NET Framework会将MSIL翻译成CPU特定的指令,以便计算机上的处理器运行应用程序。
共有条评论 网友评论