本节书摘来自异步社区《ASP.NET 开发从入门到精通》一书中的第1章,第1.4节,著 张明星 ,责任编辑 张 涛, 更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.4 ASP.NET基础
知识点讲解:光盘:视频PPT讲解(知识点)第1章ASP.NET基础.mp4
从本节开始,将详细讲解ASP.NET这门神奇的动态Web开发技术,为读者学习本书后面的知识打下基础。
1.4.1 ASP.NET简介
ASP是微软公司推出的一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,指动态服务器页面(Active Server Pages,ASP)运行于IIS之中的程序。在2000年第二季度时,微软公司正式推动.NET策略,ASP也顺理成章地改名为ASP.NET。经过几年的开发,第一个版本的ASP.NET在2002年1月5日亮相。目前最新的版本是ASP.NET 5.0以及.NET Framework 5.0。
和其他动态Web开发技术相比,ASP.NET的突出优势如下。
(1)世界级的工具支持
ASP.NET构架可以用微软公司最新的产品Visual Studio.NET开发环境进行开发,并可进行WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.NET强大软件支持功能的一小部分。
(2)强大性和适应性
因为ASP.NET是基于通用语言的编译运行的程序,所以,它的强大性和适应性使它几乎可以运行在Web应用软件开发者的全部的平台上。通用语言的基本库、消息机制、数据接口的处理都能无缝地整合到ASP.NET的Web应用中。ASP.NET同时也是语言独立化的,所以,用户可以选择一种最适合自己的语言来编写程序,或者选择很多种语言来写,现在已经支持的有C#(C++和Java的结合体)、VB、Jscript、C++。
ASP.NET一般分为两种开发语言:VB.NET和C#。C#相对比较常用,因为是.NET独有的语言;VB.NET则为以前VB程序设计,适合于以前VB程序员。如果新接触.NET,没有其他开发语言经验,建议直接学习C#即可。
(3)简单性和易学性
ASP.NET使运行一些很平常的任务,如表单的提交、客户端的身份验证、分布系统和网站配置等变得非常简单。例如,ASP.NET页面构架允许用户建立自己的用户分界面,使其不同于常见的VB-Like界面。
(4)高效可管理性
ASP.NET使用一种字符基础的、分级的配置系统,使服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种方式使ASP.NET的基于应用的开发更加具体和快捷。
1.4.2 全新的.NET Framework 4.5
.NET Framework为开发人员提供了公共语言运行库的运行时环境,它能够运行代码并为开发过程提供更轻松的服务。公共语言运行库的功能是通过编译器和工具分开,开发人员可以编写利用此托管执行环境的代码。托管代码是指使用基于公共语言运行库的语言编译器开发的代码。托管代码具有许多优点,如跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。
当前新的版本是.NET Framework 4.5,与以往版本相比,.NET Framework 4.5的新增功能如下。
(1)适用于Windows应用商店应用的.NET
Windows应用商店为特定窗体因素而设计并利用Windows操作系统的功能。通过使用C#或Visual Basic,.NET Framework 4.5的子集可用于生成Windows的Windows应用商店应用程序。
(2)可移植类库
在Visual Studio 2012中的可移植类库可让用户编写和生成在多个.NET Framework平台上运行的托管程序集。使用“可移植类库”项目可以选择这些平台(如Windows Phone和适用于Windows应用商店应用的.NET)作为目标。
(3)并行计算
.NET Framework 4.5为并行计算提供若干新功能和性能改进,主要包括提高了原有技术的性能,增加了新的控件,为异步编程提供了更好的支持,对数据流库、并行调试器和性能分析提供了更好的支持。
具体来说,ASP.NET 4.5主要包括如下所示的新功能。
为支持新的HTML 5窗体提供了新的类型支持。
在Web窗体中提供了对模型联编程序的支持,允许直接将数据控件绑定到数据访问方法,并自动将用户输入转换到.NET Framework的数据类型。
改进了客户端验证脚本机制,为验证功能提供了新的JavaScript支持。
改进了客户端脚本的处理性能,通过新的页面处理、绑定和缩减机制提高了效率。
通过借助于AntiXSS库(以前的外部库)中的集成编码例程,可以实现跨站点式脚本攻击保护功能。
为WebSockets协议提供了支持。
支持异步读取和写入HTTP请求/响应。
支持页面和窗体的异步模块和处理程序。
为ScriptManager控件的内容分布式Web(CDN)应用提供了回退支持。
1.4.3 公共语言运行时
CLR是Common Language Runtime的缩写,译为公共语言运行时。CLR是所有.NET应用程序运行时环境,是所有.NET应用程序都使用的编程基础。CLR可以看作一个在执行时管理代码的代理,管理代码是CLR的基本原则,能够被管理的代码称为托管代码,反之称为非托管代码。CLR由两个部分组成:CLS(Common Language Specification,公共语言规范)和CTS(Common Type Stytem,通用类型系统)。
(1)CTS
C#和Visual Basic.NET都是公共语言运行时的托管代码,它们的语法和数据类型各不相同。CLR是如何对这两种不同的语言进行托管的呢?CTS用于解决不同语言的数据类型不同的问题,如C#中的整型是int,而Visual Basic.NET中的整型是Integer,通过CTS可以把它们两个编译成通用的类型Int32。所有的.NET语言共享这一类型系统,在它们之间实现无缝互操作。
(2)CLS
编程语言的区别不仅在于类型,语法或者说语言规范也都有很大的区别。因此,.NET通过定义CLS,限制了由这些不同点引发的互操作性问题。CLS是一种最低的语言标准,制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作所需要的完备特征。凡是遵守这个标准的语言在.NET框架下都可以互相调用。例如,C#中命名是区分大小写的,而Visual Basic.NET中不区分大小写,这样CLS就规定编译后的中间代码必须除了大小写之外,还要有其他的不同之处。
(3)NET编译技术
为了实现跨语言开发和跨平台的战略目标,.NET所有编写的应用都不编译为本地代码,而是编译为微软中间代码(Microsoft Intermediate Language,MSIL)。它将由JIT(Just In Time)编译器转换成机器代码。C#和Visual Basic.NET代码通过它们各自的编译器编译成MSIL,MSIL遵守通用的语法,CPU不需要了解它,再通过JIT编译器编译成相应的平台专用代码(这里所说的平台是指我们的操作系统)。这种编译方式实现了代码托管,同时提高了程序的运行效率。