ASP.NET中新的代码编译功能(三)

asp.net|编译

预编译支持

ASP.NET Web 窗体的优势之一就是增加动态编译后,您可以很轻松地更改 .aspx 页,保存更改时页面将动态更新,而不需要重新编译(只要不使用模块化代码)。但动态编译并不是对每个应用程序都适合,而且第一次访问某个应用程序时,动态编译会导致浏览器的初始性能降低。另外,很多时候您可能希望部署一个没有源代码的应用程序。如果您遇到上述情况,您会更高兴地了解到 ASP.NET Whidbey 具有支持预编译 Web 站点的功能。ASP.NET Whidbey 支持两种预编译模式:在位预编译和部署预编译。

在位预编译

在位预编译使您可以对 Web 站点中的所有页面进行手动批编译。这也是用户在您的应用程序中首次单击某个页面后发生的操作(前文提到的后一种情况除外),用户只需坐下来等待批编译完成。使用在位预编译有两个主要原因:首先,它可以避免第一次请求页面时批编译的性能降低;其次,它使您可以“先于”用户发现编译错误。

在位预编译也很容易实现,只需浏览到 Web 站点的根目录,添加特定的处理程序名称 precompile.axd(熟悉 ASP.NET 跟踪功能的用户会发现该名称与 trace.axd 处理程序的名称类似):

http://localhost/mywebsitename/precompile.axd

其中 mywebsitename 是您 Web 站点的名称。预编译站点之后,对站点内页面的请求也应随即完成,而不会有任何编译滞后。

部署预编译

第二种预编译模式使您可以创建整个 Web 站点的可执行版本,部署这种版本不需要任何源代码(包括 HTML 和其他静态文件)。因此,部署预编译可以防止别人随意访问由代码表示的知识产权信息。生成的程序集和 Stub 文件集可以通过 XCOPY、FTP、Windows 资源管理器等部署到生产服务器上。为了预编译站点以进行部署,ASP.NET Whidbey 提供了一个名为 aspnet_compiler.exe 的命令行实用程序。要在文件系统 Web 站点上调用 ASP.NET 预编译器,需要打开一个命令窗口,浏览到 .NET Framework 的安装位置(\Microsoft.NET\Framework\<版本>),然后输入以下命令:

aspnet_compiler /v /<websitename> -p <source> <destination>

其中 为 Web 站点的名称(即在浏览器中输入的名称), 和 为两个文件系统路径,分别指向要编译站点的位置以及编译后的版本应输出至的位置。以我们的 Web 站点为例,输入的命令如下所示(请注意下面是一条命令):

aspnet_compiler /v /Compilation -p c:\WebSites\Compilation c:\WebSites\Compilation_Compiled

如果要查看 ASP.NET 预编译器的所有可用选项,只需输入以下命令:

aspnet_compiler /?

请注意,某些命令行选项要求 Web 站点必须为有效的 Microsoft Internet 信息服务 (IIS) 应用程序才能正常工作。如果在 Microsoft Windows 资源管理器中浏览至目标目录,您会看到预编译 Web 站点后将生成一个包含 bin 目录的站点,bin 目录中包含一些程序集和描述性文件,以及大量与原始页面同名的 Stub 文件,但不包含代码(包括 HTML 和可执行代码)。如果浏览此站点,输出与原始站点的输出相同。请注意,不能在已进行部署预编译的站点上使用在位预编译,原因很简单,因为它已经被预编译过了。

IntelliSense 无处不在!

对于 Visual Studio .NET 2002 和 2003,最令我头痛的问题之一(相信很多开发人员也有同感)就是对 IntelliSense 和其他用于提高生产率的功能的支持不一致。希望在 HTML 视图中将控件从工具箱中拖到页面上吗?还做不到。事实上,在 HTML 视图中根本看不到工具箱的 Web 窗体面板!要在 .aspx 页面上写入内嵌代码而不是使用模块化代码?可以做到,但必须放弃 IntelliSense、拖放功能以及其他更多功能。最后,正如我最近在 MSDN ASP.NET Developer Center 上发表的文章中提到的,在 Visual Studio .NET 2002 或 2003 中获得自定义控件的设计时支持需要跨越层层障碍,包括有点粗糙但奏效的 XSL 修改。

令人高兴的是,ASP.NET Whidbey 中实现了编译模型的统一,所有这些问题也都迎刃而解。在 Visual Studio .NET Whidbey 中,可以写入内嵌代码或使用新的模块化代码模型,还能获得控件拖放、IntelliSense 语句完成以及所有以前您希望使用却因编码方式局限而无法使用的那些可以提高生产率的功能。另外,对自定义服务器控件和 Web 控件的设计时支持有了很大的改进,包括为源视图(HTML 视图在 Visual Studio .NET Whidbey 中的等效视图)中的自定义控件增加了 IntelliSense 语句完成。

小结

ASP.NET Whidbey 中对编译模型的更改,以及 Visual Studio .NET Whidbey 中相应功能的改进无疑是一个巨大的飞跃,不仅为开发人员提供了所需的灵活性,还使他们可以充分利用 IDE 提供的可以提高生产率的功能。大大简化的模块化代码模型将使该功能更有用、更简捷,而新增的对内嵌代码的完全支持显然会受到那些希望所有代码都位于一个 .aspx 文件中的开发人员的欢迎。相信 \Code 目录会大大提高生产率,对于那些从事发展迅速的中小型项目的开发人员,以及那些因为编译过程过于复杂而无法完成工作的开发人员来说尤其如此。它还为访问业务逻辑组件、资源文件、WSDL 文件以及其他资源提供了一种更为直接、简单的方法:通过自动编译、嵌入或创建这些资源的代理并自动引用它们,只需很少的代码即可访问这些资源。

预编译功能使开发人员可以轻松地提高其站点的初始性能,如果需要,还可以通过提供功能完备的 Web 应用程序(不包含源代码或 HTML)为重要的知识产权信息添加保护措施。最后,集所有功能于一身的 Visual Studio .NET Whidbey 无疑会为开发人员带来非凡的体验,他们不仅能从内嵌代码模型和模块化代码模型中获得完全的 IntelliSense 支持,还能查看给定页面的所有视图,开发工作不会再因工具限制而局限于某一种样式。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索站点
, net
, 编译
, 文件
, 代码
, 功能
, 代码编译
预编译命令
,以便于您获取更多的相关知识。

时间: 2025-01-21 15:22:50

ASP.NET中新的代码编译功能(三)的相关文章

ASP.NET中新的代码编译功能(一)

asp.net|编译 摘要:了解如何利用 ASP.NET Whidbey 更轻松地使用代码.Code 目录会自动为您的站点编译代码,而预编译会使部署工作更容易. 下载本文的源代码.(请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理解.) 简介 即将推出的新版 Microsoft ASP.NET 介绍了大量新功能和改进功能,它的代号为 ASP.NET Whidbey,是根据新版 Microsoft Visual Studio .NET 的代号命名的.其中的某些功能

ASP.NET中新的代码编译功能(二)

asp.net|编译 利息计算器 首先,我们打开 Visual Studio .NET Whidbey,创建一个名为 Compilation 的新 Web 站点.创建 Web 站点之后,IDE 应与图 1 类似. 图 1:Visual Studio .NET Whidbey Web 站点 然后,我们将 \Code 文件夹添加到该 Web 站点,添加方法为右击该项目,然后选择 New Folder(新建文件夹).此文件夹必须命名为 Code,但名称不区分大小写.添加文件夹后,我们可以添加一个新的类

ASP.NET Whidbey 中新的代码编译功能

asp.net|编译 ASP.NET Whidbey 中新的代码编译功能G. Andrew DuthieGraymad Enterprises, Inc. 2003 年 10 月 摘要:了解如何利用 ASP.NET Whidbey 更轻松地使用代码.Code 目录会自动为您的站点编译代码,而预编译会使部署工作更容易. 下载本文的源代码.(请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理解.) 目录简介新的模块化代码模型\Code 目录利息计算器预编译支持在位预编

Dreamweaver CS5 中启用 WordPress 代码提示功能的图文方法

使用 Dreamweaver 这样的可视化的 IDE 工具进行编程的最大的一个好处是它的代码提示功能,只要输入几个字符,IDE 工具就会智能的给出一系列可选的函数或者变量让你输入. 代码提示功能的好处是非常明显的,比如你对某个函数记不清楚,就可以通过代码提示功能快速输入,而不用去搜索和查资料,即使非常清楚,也可以通过代码提示功能快速输入而无需输入每个字符,这样的对编程效率提高是非常明显的. Dreamweaver CS5 支持 WordPress 代码提示 我们知道 Dreamweaver 代码

DreamweaverCS5中启用WordPress代码提示功能方法

  使用 Dreamweaver 这样的可视化的 IDE 工具进行编程的最大的一个好处是它的代码提示功能,只要输入几个字符,IDE 工具就会智能的给出一系列可选的函数或者变量让你输入. 代码提示功能的好处是非常明显的,比如你对某个函数记不清楚,就可以通过代码提示功能快速输入,而不用去搜索和查资料,即使非常清楚,也可以通过代码提示功能快速输入而无需输入每个字符,这样的对编程效率提高是非常明显的. Dreamweaver CS5 支持 WordPress 代码提示 我们知道 Dreamweaver

asp.net放贷计算代码-请教asp.net中放贷计算代码

问题描述 请教asp.net中放贷计算代码 asp.net放贷计算代码asp.net放贷计算代码asp.net放贷计算代码asp.net放贷计算代码 解决方案 google下就有.房贷写错了,这影响你搜索结果的相关性 随便找一个http://download.csdn.net/download/cxd19880708/4039426 别的你也可以自己找.总之,学会自己google.

在ASP.NET中使用AJAX实时搜索功能控件--RealTimeSearchMonitor

Web Client Software Factory v2.0包含了一个RealTimeSearchMonitor控件 提供实时搜索功能 来帮助你在ASP.NET中使用ASP.NET AJAX 局部更新网页. 此文章帮助你 如何在ASP.NET 中使用 RealTimeSearchMonitor控件,数据来自Northwind数据库的Customers表,数据访问是用企业库写的,当然你也可以使用别的任何方式返回数据源,,不过不用企业库写个SQL语句还真是够复杂!!! 先决条件 使用realti

asp.net中如何实现自动登录功能啊!用三层写,会的亮代码啊,感激!

问题描述 急急急 解决方案 解决方案二:cookie--http://www.baidu.com/s?wd=asp.net+cookie+%C8%FD%B2%E3%BC%DC%B9%B9+%CA%B5%CF%D6%D7%D4%B6%AF%B5%C7%C2%BC&rsv_bp=0&ch=&tn=monline_5_dg&bar=&rsv_spt=3&oq=asp.net+c&sug=asp.net+cookie&rsv_n=1&rsp=

ASP程序中提供在线文章翻译功能

程序|在线|在线     有时候想为我们的网页提供多语言支持,如果一种语言用一张网页来做实在太麻烦了,幸好Google提供了语言工具功能,下面介绍如何利用它来实现网页多种语言之间的转换. lan.htm <form><select name="lan"><option value="en|de">英语 翻译成 德语</option><option value="en|es">英语 翻译成