ASP.NET的设计目标(4)

2017 年 6 月 12 日2490

2.4.8 与语言无关

当开发ASP.NET网页时,使用的语言可根据个人的情况而定。不管使用的是VB、C#还是JScript.NET,都会拥有相同的功能。对于使用何种语言,ASP.NET没有强加任何限制。

ASP.NET使用machine.config文件的compilers部分,来定义页面扩展名的映射和可在ASP.NET中使用的语言:

<compilers>

<compiler language="c#; cs; csharp" extension=".cs"

type="Microsoft. CSharp. CSharpCodeProvider,

System, Version=1.0.3300.0, Culture=neutral,

PublicKeyToken=b77a5c561934e089" warningLevel="1"/>

<compiler language="vb; vbs; visualbasic; vbscript" extension=".vb"

type="Microsoft. VisualBasic. VBCodeProvider, System,

Version=1.0.3300.0, Culture=neutral,

PublicKeyToken=b77a5c561934e089"/>

<compiler language="js; jscript; javascript" extension=".js"

type="Microsoft. JScript. JScriptCodeProvider, Microsoft. JScript,

Version=7.0.3300.0, Culture=neutral,

PublicKeyToken=b03f5f7f11d50a3a"/>

</compilers>

该编译器元素具有以下特性:

● language:当使用该特性时,ASP.NET页面开发人员可指定缩写形式,要么作为<script>块的一部分,要么作为page指令的一部分。

● extension:与语言相关联的文件扩展名。当使用某个Page指令或像程序集或后台编码这样的特性将文件作为ASP.NET页面的一部分包括在内时,扩展名就会提示ASP.NET需要告诉它如何编译文件。

● type:代码生成器类的完全限定的名称,以及类所在程序集的名称。这两个特性值之间用逗号隔开。

对于诸如COBOL或Perl这样可用于ASP.NET页面的第三方语言来说,编译器供应商必须为从System.CodeDOM.CodeGenerator中派生的语言提供代码生成器类,它必须在此配置部分中注册,以便让ASP.NET知道如何使用它。2.4.9 代码更少、更简练、更易于维护

ASP的一个最大问题就是必须编写大量代码。如果想显示数据库中的数据,就必须编写连接数据库的代码,并使用Response.Write来输出表所要求的HTML。如果想显示一个日历,就必须编写代码来创建日历。而使用ASP.NET就不必再为每件事情编写代码了。ASP.NET服务器控件提供了一种声明性建立网页的方式,即只使用标记和特性。这些服务器控件封装了用于显示UI和响应反馈的功能。

ASP.NET还允许建立如下类型的服务器控件:

● 定制服务器控件:可以在经过编译的窗体中编写服务器控件,方法是开发一个类,继承某个ASP.NET服务器控件类。

● 用户控件:可以将其他ASP.NET页面声明为控件,接着用这些页面来建立其他页面。

第18章将详细介绍这两种方法。

ASP.NET服务器控件为在ASP.NET应用程序中实现代码复用提供了一个很好的机制。Microsoft公司预言许多第三方供应商会创建ASP.NET服务器控件,而且在将来发行的每个ASP.NET版本中,他们也会提供越来越多的控件。2.4.10 功能强大的身份确认模型

ASP.NET的设计目标之一就是提供一个功能强大的身份确认模型,以满足现代电子商务应用程序的要求。它支持以下3种安全的核心模式:

● Windows Authentication:主要针对企业内部网,企业内部网中的域账号可用于识别用户。

● Forms Authentication:基于cookie的身份验证,Amazon等站点使用的就是该模式。

● Microsoft Passport Authentication:由Passport Manager完成的基于cookie的身份验证,Hotmail等站点使用该模式。

ASP.NET还支持在同一个应用程序中使用不同的身份验证模型。这就允许一个站点既可用在企业内部网,也可用在外联网上。ASP.NET的身份验证模型将在第14章中详细介绍。2.4.11 正确认识错误的存在

ASP.NET的设计人员意识到没有人可以写出毫无破绽的代码—— 包括Microsoft在内。因此ASP.NET通过包容错误来处理它们,它还提供了一系列的强大功能:

● 检测内存泄漏,并自动重新启动ASP.NET应用程序。可以定义内存泄漏的范围。

● 检测并解决死机或死锁请求。

● 在超过指定数量的请求之后自动重新启动ASP.NET应用程序。

● 允许将状态存储到外部的ASP.NET主处理器进程中,甚至存储到状态服务或SQL Server数据库中。这样就允许ASP.NET应用程序在最终用户不丢失其状态的情况下重新启动。

当开发ASP.NET网页时,使用的语言可根据个人的情况而定。不管使用的是VB、C#还是JScript.NET,都会拥有相同的功能。对于使用何种语言,ASP.NET没有强加任何限制。

ASP.NET使用machine.config文件的compilers部分,来定义页面扩展名的映射和可在ASP.NET中使用的语言:

<compilers>

<compiler language="c#; cs; csharp" extension=".cs"

type="Microsoft. CSharp. CSharpCodeProvider,

System, Version=1.0.3300.0, Culture=neutral,

PublicKeyToken=b77a5c561934e089" warningLevel="1"/>

<compiler language="vb; vbs; visualbasic; vbscript" extension=".vb"

type="Microsoft. VisualBasic. VBCodeProvider, System,

Version=1.0.3300.0, Culture=neutral,

PublicKeyToken=b77a5c561934e089"/>

<compiler language="js; jscript; javascript" extension=".js"

type="Microsoft. JScript. JScriptCodeProvider, Microsoft. JScript,

Version=7.0.3300.0, Culture=neutral,

PublicKeyToken=b03f5f7f11d50a3a"/>

</compilers>

该编译器元素具有以下特性:

● language:当使用该特性时,ASP.NET页面开发人员可指定缩写形式,要么作为<script>块的一部分,要么作为page指令的一部分。

● extension:与语言相关联的文件扩展名。当使用某个Page指令或像程序集或后台编码这样的特性将文件作为ASP.NET页面的一部分包括在内时,扩展名就会提示ASP.NET需要告诉它如何编译文件。

● type:代码生成器类的完全限定的名称,以及类所在程序集的名称。这两个特性值之间用逗号隔开。

对于诸如COBOL或Perl这样可用于ASP.NET页面的第三方语言来说,编译器供应商必须为从System.CodeDOM.CodeGenerator中派生的语言提供代码生成器类,它必须在此配置部分中注册,以便让ASP.NET知道如何使用它。2.4.9 代码更少、更简练、更易于维护

ASP的一个最大问题就是必须编写大量代码。如果想显示数据库中的数据,就必须编写连接数据库的代码,并使用Response.Write来输出表所要求的HTML。如果想显示一个日历,就必须编写代码来创建日历。而使用ASP.NET就不必再为每件事情编写代码了。ASP.NET服务器控件提供了一种声明性建立网页的方式,即只使用标记和特性。这些服务器控件封装了用于显示UI和响应反馈的功能。

ASP.NET还允许建立如下类型的服务器控件:

● 定制服务器控件:可以在经过编译的窗体中编写服务器控件,方法是开发一个类,继承某个ASP.NET服务器控件类。

● 用户控件:可以将其他ASP.NET页面声明为控件,接着用这些页面来建立其他页面。

第18章将详细介绍这两种方法。

ASP.NET服务器控件为在ASP.NET应用程序中实现代码复用提供了一个很好的机制。Microsoft公司预言许多第三方供应商会创建ASP.NET服务器控件,而且在将来发行的每个ASP.NET版本中,他们也会提供越来越多的控件。2.4.10 功能强大的身份确认模型

ASP.NET的设计目标之一就是提供一个功能强大的身份确认模型,以满足现代电子商务应用程序的要求。它支持以下3种安全的核心模式:

● Windows Authentication:主要针对企业内部网,企业内部网中的域账号可用于识别用户。

● Forms Authentication:基于cookie的身份验证,Amazon等站点使用的就是该模式。

● Microsoft Passport Authentication:由Passport Manager完成的基于cookie的身份验证,Hotmail等站点使用该模式。

ASP.NET还支持在同一个应用程序中使用不同的身份验证模型。这就允许一个站点既可用在企业内部网,也可用在外联网上。ASP.NET的身份验证模型将在第14章中详细介绍。2.4.11 正确认识错误的存在

ASP.NET的设计人员意识到没有人可以写出毫无破绽的代码—— 包括Microsoft在内。因此ASP.NET通过包容错误来处理它们,它还提供了一系列的强大功能:

● 检测内存泄漏,并自动重新启动ASP.NET应用程序。可以定义内存泄漏的范围。

● 检测并解决死机或死锁请求。

● 在超过指定数量的请求之后自动重新启动ASP.NET应用程序。

● 允许将状态存储到外部的ASP.NET主处理器进程中,甚至存储到状态服务或SQL Server数据库中。这样就允许ASP.NET应用程序在最终用户不丢失其状态的情况下重新启动。

陈刚

本文来源:清华大学出版社

责任编辑:王晓易_NE0011

0 0