第2章 Visua| Studio. net简介 21NET结构概貌 Web应用 Windows应用 ■21.1NET框架 NET框架 操作系 ⅤBNET VC++ NET C# 其它语言 CLS: Common Language Specifications(公共语言规范) 图21NET开发平台和基于NET的应用 Web service Windows forms Data and XML classes: ASPNET、XML、 ADONET、 SQL Server NET框架类库 CLR: Common Language runtime(公共语言运行库) 图22NET的体系结构
第2章 Visual Studio.NET简介 ◼ 2.1 .NET结构概貌 ◼ 2.1.1 .NET框架 Web 应用 Windows应用 … … .NET 框架 操作系统 图2.1 .NET开发平台和基于.NET的应用 VB.NET VC++.NET C# J# 其它语言 CLS: Common Language Specifications(公共语言规范) Web Service Windows Forms Data and XML Classes: ASP.NET、XML、ADO.NET、SQL Server s .NET 框架类库 CLR: Common Language Runtime(公共语言运行库) 图2.2 .NET的体系结构
2.1.1NET框架 VB. NET源程序 C#NEI源程序 CLS:公共语言规范 VB. NET编译器 C#编译器 MSIL: Microsoft中间语言 CLR:公共语言运行库 (JIT: Just In Time编译器) 本地代码 图23代码执行流程的示例
2.1.1 .NET框架 VB.NET源程序 C#.NET源程序 VB.NET编译器 C#编译器 MSIL: Microsoft 中间语言 CLR: 公共语言运行库 (JIT: Just In Time编译器) 本地代码 图2.3 代码执行流程的示例 CLS: 公共语言规范
2.1.2托管代码和托管数据 ,2, 支持跨语言集成是NET的一大特色,跨语言集成又称为跨语言编程、混 合编程或者跨语言互操作,为了达到这一目标,NET框架中的采用了 系列新技术,这些技术不能涵盖现有语言的所有成分,有的甚至彼此有矛 盾的,所以,在NET中,代码分为 managed code和 unmanaged code,前者 称为托管代码或受控代码,后者称为非托管代码或非受控代码。虽 然NET支持这两种代码形式,但是托管代码更体现了现代语言的风格, 更完整地体现面向对象程序设计的思想。在本书以后的内容中,除非特别 说明,我们的讨论都围绕托管代码展开。实际上,使用托管代码,才能安 全而又最大限度地利用NET的技术和资源 托管代码能够在公共语言运行库中受到管理和服务,能够安全而高效运行 为此,托管代码必须向CLR提供最低级别的信息一元数据( metadata) 全新设计的C#、 Visual basic net和J#NET代码都受托管。而 Visual C++.NET代码默认地不受托管,但是编译器可以通过指定命令行开关 (CLR)来产生托管代码
2.1.2 托管代码和托管数据 支持跨语言集成是.NET的一大特色,跨语言集成又称为跨语言编程、混 合编程或者跨语言互操作,为了达到这一目标,.NET框架中的采用了一 系列新技术,这些技术不能涵盖现有语言的所有成分,有的甚至彼此有矛 盾的,所以,在.NET中,代码分为managed code和unmanaged code,前者 称为托管代码或受控代码,后者称为非托管代码或非受控代码。虽 然.NET支持这两种代码形式,但是托管代码更体现了现代语言的风格, 更完整地体现面向对象程序设计的思想。在本书以后的内容中,除非特别 说明,我们的讨论都围绕托管代码展开。实际上,使用托管代码,才能安 全而又最大限度地利用.NET的技术和资源。 托管代码能够在公共语言运行库中受到管理和服务,能够安全而高效运行, 为此,托管代码必须向CLR提供最低级别的信息——元数据(metadata), 全新设计的 C#、Visual Basic .NET 和 J #.NET 代码都受托管。而Visual C++ .NET代码默认地不受托管,但是编译器可以通过指定命令行开关 (/CLR) 来产生托管代码
2.2NET的核心成分简介(1) 221公共语言运行库(cLR: Common Language runtime) CLR和下面介绍的类库是NET框架的两个实体。CLR基本功能 是运行代码并且提供各种服务,使得整个运行更加简易。主 要功能包括: 执行和管理:完成运行过程中的代码加载、应用程序和托 管对象的内存管理、对象自动布局、使用JT将MSI编译成 本地代码并且控制代码执行、处理异常等全部步骤 提供安全保证:类型安全、代码访问安全、控制托管和非 托管代码的互操作 对开发者的支持:提供界面信息,帮助调试等
2.2 .NET的核心成分简介 (1) CLR和下面介绍的类库是.NET框架的两个实体。CLR基本功能 是运行代码并且提供各种服务,使得整个运行更加简易。主 要功能包括: ⚫ 执行和管理:完成运行过程中的代码加载、应用程序和托 管对象的内存管理、对象自动布局、使用JIT将MSIL编译成 本地代码并且控制代码执行、处理异常等全部步骤 ⚫ 提供安全保证:类型安全、代码访问安全、控制托管和非 托管代码的互操作 ⚫ 对开发者的支持:提供界面信息,帮助调试等 ◼ 2.2.1 公共语言运行库(CLR: Common Language Runtime)
2.2NET的核心成分简介(2) ■222NET框架类库( NET Framework Class Library NET类库又称基础类库( Base Class Library,简称 BCL),NET类库提供数千个类、接口等工具供程序员直接 使用。它们主要有如下几个部分:数据结构、IO管理、数 据库访问、多线程、远程访问、反射等 NET支持的所有语言都能使用类库,任何语言使用类库的方式 是一样的,任何一种应用程序使用类库的方式也是一样的 学会使用类库是设计基于NET的各类应用的基本功 和CLR不一样的是:通常情况下,CLR对程序员而言是透明的; 而类库是程序员必用的工具,熟练掌握类库是程序员的基本 功
2.2 .NET的核心成分简介 (2) .NET类库又称基础类库(Base Class Library,简称 BCL),.NET类库提供数千个类、接口等工具供程序员直接 使用。它们主要有如下几个部分:数据结构、I/O管理、数 据库访问、多线程、远程访问、反射等。 .NET支持的所有语言都能使用类库,任何语言使用类库的方式 是一样的,任何一种应用程序使用类库的方式也是一样的。 学会使用类库是设计基于.NET的各类应用的基本功。 和CLR不一样的是:通常情况下,CLR对程序员而言是透明的; 而类库是程序员必用的工具,熟练掌握类库是程序员的基本 功。 ◼ 2.2.2 .NET框架类库(.NET Framework Class Library)
2.2NET的核心成分简介(3) 集,, 223程序集( Assembly 程序集是一种程序单位,程序集中包含MSI代码,每个程序集 只有一个入口( DIMAin或 Winmain或Main) ■224公共语言规范(cLS: Common Language Specifications 公共语言规范是一组规则和约束,CLS保证了用不同编程语言 编写的类型之间的可交互操作性
2.2 .NET的核心成分简介 (3) 程序集是一种程序单位,程序集中包含MSIL代码,每个程序集 只有一个入口(DllMaim或WinMain或Main)。 ◼ 2.2.3 程序集(Assembly) 公共语言规范是一组规则和约束,CLS保证了用不同编程语言 编写的类型之间的可交互操作性。 ◼ 2.2.4 公共语言规范(CLS: Common Language Specifications)
22NET的核心成分简介() 225通用类型系统(CTS: Common Type System) 通用类型系统是一个内置在公共语言运行库中的类型系统,它支持大多数编 程语言中存在的类型和操作 ■226中间语言(MSL: Microsoft Intermediate Language) NET将托管代码编译为微软中间语言MSI,MSI包括用于加载、存储和 初始化对象、对对象调用方法的指令,以及用于算术和逻辑运算、控制 流、直接内存访问、异常处理和其他操作的指令。MS的地位类似于汇 编语言,但并不是针对某个特定CPU上的指令集,而是与CPU无关的代 码,MSI经过JI编译器的编译,才形成了可执行的机器代码。CLR中 包含多种JI编译器,使得MSLL可以不同的计算机结构中运行
2.2 .NET的核心成分简介 () .NET将托管代码编译为微软中间语言MSIL, MSIL 包括用于加载、存储和 初始化对象、对对象调用方法的指令,以及用于算术和逻辑运算、控制 流、直接内存访问、异常处理和其他操作的指令。MSIL的地位类似于汇 编语言,但并不是针对某个特定CPU上的指令集,而是与CPU无关的代 码,MSIL经过JIT编译器的编译,才形成了可执行的机器代码。CLR中 包含多种JIT编译器,使得MSIL 可以不同的计算机结构中运行。 ◼ 2.2.6 中间语言(MSIL: Microsoft Intermediate Language) 通用类型系统是一个内置在公共语言运行库中的类型系统,它支持大多数编 程语言中存在的类型和操作。 ◼ 2.2.5 通用类型系统(CTS:Common Type System)
23基于NET的应用开发 23.1跨语言和跨操作系统 231.1代码重用 不断加盟的语言 2312安全性 NET支持的语 23.1.3跨操作系统 VB、c#、VC艹+、# Visual 各类服务支持,如: NET SQL Server等 其他操作系统 Windows操作系统 其他操作系统 图24NEI的应用开发环境的特点
2.3 基于.NET的应用开发 2.3.1 跨语言和跨操作系统 2.3.1.1 代码重用 2.3.1.2 安全性 2.3.1.3 跨操作系统 .NET支持的语言 VB 、 C# 、 VC++、J# 等 不断加盟的语言 各类服务支持 , 如 : SQL Server等 图2.4 .NET的应用开发环境的特点 其他操作系统 Windows操作系统 其他操作系统 Visual Studio .NET
232基于NET的应用程序 232.1SDK和IDE 2322基于NET的应用程序 Windows应用程序:基于 Windows forms( Windows窗体)的应 用程序,是一种基于图形界面接口GUI的应用程序,一般是在用 户计算机本地运行。 类库:在托管的环境里,开发扩展类库内容,自定义用户程序 的类和组件是代码重用的有效方法,也是开发大型程序的值得 推荐的做法,NET给出设计类库程序的规范,只有遵循这些规 范,其他开发人员才能有效利用它们,使它们发挥最大的作用 3. Windows控件库:创建 Windows窗体应用程序的自定义控件
2.3.2 基于.NET的应用程序 2.3.2.1 SDK和IDE 2.3.2.2 基于.NET的应用程序 1. Windows应用程序:基于Windows Forms(Windows 窗体)的应 用程序,是一种基于图形界面接口GUI的应用程序,一般是在用 户计算机本地运行。 2. 类库:在托管的环境里,开发扩展类库内容,自定义用户程序 的类和组件是代码重用的有效方法,也是开发大型程序的值得 推荐的做法,.NET给出设计类库程序的规范,只有遵循这些规 范,其他开发人员才能有效利用它们,使它们发挥最大的作用。 3. Windows控件库:创建Windows窗体应用程序的自定义控件
2322基于NET的应用程序(1) 4.智能设备应用程序: Internet不光连接PC机、服务器等计算机设 备,包括电视机、电冰箱、复印机等家用的办公用的电器都将 接入 Internet,可以通过 Internet进行远程控制,智能设备应用程 序就是连接、控制这些设备,并且互相通信的应用程序。 5. ASPNET Web应用程序: ASPNET是NET中统一的Web开发平台 用来开发企业级的Web应用程序。 ASPNET是ASP的升级版,但 是具有革命性的进步,程序员能够象设计 Windows窗体应用一样 设计Web应用;能够将代码与HTML文档分离,进行代码重用: 具有服务器控件的开发能力;能够在IDE中进行可视化的开发
2.3.2.2 基于.NET的应用程序(1) 4. 智能设备应用程序:Internet不光连接PC机、服务器等计算机设 备,包括电视机、电冰箱、复印机等家用的办公用的电器都将 接入Internet,可以通过Internet进行远程控制,智能设备应用程 序就是连接、控制这些设备,并且互相通信的应用程序。 5. ASP.NET Web应用程序:ASP.NET是.NET中统一的Web开发平台, 用来开发企业级的Web应用程序。ASP.NET是ASP的升级版,.但 是具有革命性的进步,程序员能够象设计Windows窗体应用一样 设计Web应用;能够将代码与HTML文档分离,进行代码重用; 具有服务器控件的开发能力;能够在IDE中进行可视化的开发