1.2 .NET Framework概述

ASP.NET是微软公司在互联网时代推出的全新的网络程序开发技术,不同于以往的编程技术,ASP.NET编写的程序必须运行在.NET Framework基础上。计算机运行ASP.NET程序的前提条件是计算机上必须安装了.NET Framework,就像Word必须运行在Windows操作系统上一样,ASP.NET编写的程序也必须运行在安装了.NET Framework的计算机上。

1.2.1 .NET Framework含义

使用编程语言开发程序至少需要两个软件,一个是操作系统,即开发程序的操作平台,如Windows、Linux;另一个是开发工具,如开发环境Visual C++、Visual Basic等。新时代的编程强调网络应用、跨平台应用,所有的软件开发者都迫切需要在操作系统和开发工具之间增加一个平台,从而实现平台的无关性,达到跨平台便捷应用的目的。微软在发布的Visual Studio 2017集成化开发环境中集成了C#、C++等编程语言,同时支持多种语言同时开发。值得提到的一点是,2018年10月25日,上海世博中心举行的2018微软技术暨生态大会上,微软宣布在Visual Studio中可以编写Java语言代码。同时在操作系统和这些开发语言中采用.NET Framework 4.7。

.NET Framework(.NET框架)是微软为开发应用程序而创建的一个富有革命性的新平台。计算机中安装.NET Framework以后,系统就可以运行任何.NET语言编写的程序。

1.2.2 .NET Framework组成

.NET Framework是ASP.NET技术得以实现的重要基础环境。ASP.NET程序运行必须有.NET Framework的支持。.NET Framework是.NET的核心,是开发.NET应用程序、运行.NET Framework应用程序的前提条件。.NET Framework由两部分组成:框架类库和公共语言运行库。.NET Framework的体系结构如图1-1所示。

图1-1 .NET Framework的体系结构示意图

1.2.3 公共语言运行库

公共语言运行库(Common Language Runtime,CLR)负责运行和维护程序员编写的程序代码。无论程序员在.NET Framework上使用何种语言编写程序,在Windows或Linux操作系统之上都必须有一个运行环境。如果.NET编写的程序是一粒种子,那么CLR则是供其成长的沃土,即CLR是.NET Framework中的运行环境。

在.NET Framework下,可以使用C#、VB.NET等编程语言编写程序,.NET Framework公共语言运行库都将其编译成中间语言(Intermediate Language,IL)。这也就是.NET跨平台的优越之处。

.NET Framework是.NET平台的核心,而.NET Framework公共语言运行库则是.NET Framework的核心。

1..NET Framework公共语言运行库的功能

.NET Framework公共语言运行库最重要的功能是为ASP.NET提供执行环境,换而言之,如果没有.NET Framework公共语言运行库,ASP.NET编写的程序就不能执行。ASP.NET程序代码编译的时候,分为两个阶段:首先.NET Framework将源代码编译为中间语言,然后再由公共语言运行库将中间语言编译为平台专用代码。即经由特定的编译器编译为机器代码,以供操作系统执行。如图1-2所示。

图1-2 ASP.NET程序运行示意图

2..NET Framework公共语言运行库的特性

.NET Framework公共语言运行库的最大特性是可以实现跨语言交互。.NET平台包含C#.NET、VB.NET、J#.NET和VC++.NET等开发语言。从图1-2可以看出,无论使用何种开发语言,.NET源程序都将被编译成中间语言,称中间语言为托管代码。有了托管代码,程序员可以用自己所熟悉的任意语言编写程序,也可以由多名程序员用不同的语言编写程序的不同部分,这样就可以很容易地设计出能够跨语言交互的应用程序,使用不同语言编写的对象不但可以互相通信,而且可以紧密集成。

1.2.4 .NET Framework类库

每种编程语言都提供大量的函数,在.NET开发环境中也提供了大量的公共代码,这些公共代码就是框架类库(Framework Class Library,FCL)。框架类库中的类可以重复多次使用,极大地减轻了程序员的编程工作量。

.NET Framework提供了大量的类库,为程序设计人员编写程序提供了可利用的公共代码。.NET Framework包含至少13000个类,为了管理数量如此众多的类,.NET引用了命名空间(Namespace)的概念。微软把框架中的众多类分别放在不同的命名空间中,分门别类地管理。

1.2.5 命名空间

习惯上,为了便于管理计算机中众多的软件资源,计算机使用者愿意在自己的硬盘中建立“工具软件”“编程语言”“游戏”等文件夹,将计算机中所有的游戏软件都存放在“游戏”文件夹中,将杀毒、解压缩和看图等工具软件都存放到“工具软件”文件夹中。同样,面对数量众多的类,.NET也采用了分类的方法,引入了命名空间的概念。命名空间是.NET为管理类而设立的一个类别,是相近功能类的集合。众多的类分属于不同的命名空间。例如,所有与操作文件系统有关的类都位于System.IO命名空间中,所有SQL Server数据库应用的类都位于System.Data.SqlClient命名空间中。在编写具体程序代码的时候,需要使用哪种类型的类,则可以引用这些命名空间。常见命名空间如表1-3所示。

表1-3 常见命名空间