作者:Chandrakant P Parmar
翻译:路亦平
地址:http://blog.csdn.net/luyiping/archive/2004/06/22/22556.aspx
快速理解.NET Framework
引言
本文着眼于微软.NET框架。这是较新发布的软件开发环境,它帮助开发者快速开发应用程序并且提供各种不同语言像Visual Basic .NET, C#, ASP .NET, 和Jscript .NET等开发最合适的,高效的,可扩展的,面向性能的应用程序 。
.NET框架概述
.NET框架是一种新的计算平台,它在Internet高度分布的环境中简化应用程序开发
服务
NET框架提供以下服务:
- 开发软件应用工具
- 执行软件应用的运行时环境
- 服务器基础设施
- 帮助开发者减少编码提高工作效率的增值只能软件
.NET框架将使开发者为不同设备和不同平台开发应用程序,如:windows应用程序、web应用程序、windows服务和web服务。
目标
设计.NET框架是为了实现下列目标:
- 一个一致的面向对象编程环境,目标代码能本地化存储和执行,本地化执行而不是分布式Internet,或者远程执行。
- 一个减少软件部署和版本冲突的代码编辑环境。
- 一个确保安全的代码执行的代码编辑环境,包括来自未知的或是不能完全信任的社团的代码。
- 一个能消除脚本的或解释性的环境引起的性能问题的代码编辑环境。
- 开发者在面对大量不同应用系统类型时有一致的开发体验,如基于Windows的应用程序和基于Web的应用程序。
- 构造所有工业标准信息来确保基于.NET框架的代码能够集成任何其他代码。
理解.NET框架体系结构
.NET框架有两个组件:.NET框架类库和公共语言运行时。
.NET框架类库使类型(CTS)变的简单,它对于.NET语言来说是公共的。
公共语言运行时组成部分有由:(类加载器)加载程序的IL代码并将起编译成本地代码到运行时,执行和管理代码来加强安全和类型安全,并且提供线程支持。
.NET框架体系结构最顶部是像VB .NET C#, VJ#, VC++ .NET之类的语言;开发者能开发(使用上面的任何语言)像Windows窗体,Web窗体,Windows服务和XML Web服务。
.NET框架有两个组要的组件:公共语言运行时(CLR)和.NET框架类库。公共语言运行时是.NET框架的基础。CLR 在运行时管理代码,提供像内存管理,线程管理和remoting之类的核心服务,同时也加强严格的类型安全和促进代码正确来确保程序的安全性和健壮性(鲁棒性)。代码管理的概念是CLR的基本原则。针对CLR的代码被认为是可管理的代码,而不是针对CLR的代码则被认为是不可管理的代码。
类库是.NET框架的一个完整的组件, 包括可重用类的面向对象集合,它使我们能用来开发应用程序包括传统的命令行或是任何像Windows窗体,ASP. NET Web窗体和新近发明的XML Web 服务的Windows服务这样的图形用户接口(GUI)。
欧洲计算机制造商协会(ECMA)标准定义了通用语言规范(CLS);这加强了软件开发语言能够进行互操作。按照CLS编写的代码应该能和另一个符合CLS语言的代码一起编译。因为由符合CLS语言支持的代码将会被编译成中间语言(IL)代码。CLR引擎执行IL代码。这保证了符合CLS语言的互用性。微软.NET框架支持的语言有Microsoft Visual Basic .NET, Microsoft Visual C#, Microsoft Visual C++ .NET, and Microsoft Visual J# .NET.
语言编译器生成中间语言代码,叫做微软中间语言(MSIL),它使不同可互操作的.NET语言编写程序。
图1.微软.NET框架的ECMA标准
.NET框架提供基础架构和服务。CLI规范.它们包括:
CLR包括CLI
CLR也提供.NET应用程序的执行环境
公共类型系统:
提供数据类型,值,对象类型。这使得开发人员能用不同的语言开发应用程序。.NET语言共享CTS意味着所有在应用程序中的类型在CLI类型定义中是一样的。
类型安全:
.NET框架在值和对象上执行操作,因为.NET框架需要知道每个值和对象的类型并且引用值和对象类型。
可管理的代码执行
.NET框架管理执行.NET应用程序时对象的状态。
.NET框架自动分配内存并提供来机收集机制来重新分配内存
Side-by-side执行
.NET框架通过使用不同版本的装配器允许同一应用程序的不同版本运行在同一机器上。装配器由IL代码和元数据组成。元数据决定应用程序的依赖关系。通过这个,.NET框架运行时能执行多种版本装配器并且解决遗留的开发环境的主要问题。那就是DLL HELL?
图1.微软.NET框架的ECMA标准
.NET框架提供基础架构和服务。CLI规范.它们包括:
CLR包括CLI
CLR也提供.NET应用程序的执行环境
公共类型系统:
提供数据类型,值,对象类型。这使得开发人员能用不同的语言开发应用程序。.NET语言共享CTS意味着所有在应用程序中的类型在CLI类型定义中是一样的。
类型安全:
.NET框架在值和对象上执行操作,因为.NET框架需要知道每个值和对象的类型并且引用值和对象类型。
可管理的代码执行
.NET框架管理执行.NET应用程序时对象的状态。
.NET框架自动分配内存并提供来机收集机制来重新分配内存
Side-by-side执行
.NET框架通过使用不同版本的装配器允许同一应用程序的不同版本运行在同一机器上。装配器由IL代码和元数据组成。元数据决定应用程序的依赖关系。通过这个,.NET框架运行时能执行多种版本装配器并且解决遗留的开发环境的主要问题。那就是DLL HELL?
理解.NET框架CLR
公共语言运行时:
理解.NET框架CLR的体系结构
公共语言运行时的特征
CLR有以下特征:
理解CLR
为了执行程序并且获得可管理执行环境的所以好处,我们用CLS支持的.NET框架语言编写代码。语言编译器将源代码编译成由CPU相关的代码和平台相关的指令组成的MSIL代码。MSIL有下列组成:
MSIL代码能够在执行前被编译成特定CPU指令,CLR所需要代码的信息只有元数据。元数据描述代码并且定义代码类型包括引用代码在运行期用到的其他类型。
一个装配器由精简的可执行文件组成。当执行PE文件的时候类加载器价载MSIL代码而元数据把精简的可执行文件编成运行时内存。
CLR的特点
CLR的结构
CLR的特点
CLR的结构
为了执行程序并且获得可管理执行环境的所以好处,我们用CLS支持的.NET框架语言编写代码。语言编译器将源代码编译成由CPU相关的代码和平台相关的指令组成的MSIL代码。MSIL有下列组成:
MSIL代码能够在执行前被编译成特定CPU指令,CLR所需要代码的信息只有元数据。元数据描述代码并且定义代码类型包括引用代码在运行期用到的其他类型。
一个装配器由精简的可执行文件组成。当执行PE文件的时候类加载器价载MSIL代码而元数据把精简的可执行文件编成运行时内存。
CLR的特点
CLR的结构
CLR的特点
CLR的结构
理解.NET框架的角色
ECMA标准,公共语言架构(CLI),定义了IL代码需要执行的基础架构的规范。CLI提供一个公共类型系统(CTS)和像类型安全,可管理的代码执行和side by side执行的服务。
公共语言运行时:
.NET装配器
图2 Side-by-side执行
公共语言运行时:
.NET装配器
图2 Side-by-side执行
CLR有以下特征:
-
管理内存:
- 内存分配
- 内存的重分配(垃圾收集)
- 线程执行支持
- 代码执行
- 代码安全检查
-
编译
- MSIL到本地代码
- 基于信任的代码安全(对执行代码的授权。代码级,文件级,机器级)这些特征对运行在公共语言运行时的可管理代码来说是固有的。
理解CLR
为了执行程序并且获得可管理执行环境的所以好处,我们用CLS支持的.NET框架语言编写代码。语言编译器将源代码编译成由CPU相关的代码和平台相关的指令组成的MSIL代码。MSIL有下列组成:
MSIL代码能够在执行前被编译成特定CPU指令,CLR所需要代码的信息只有元数据。元数据描述代码并且定义代码类型包括引用代码在运行期用到的其他类型。
一个装配器由精简的可执行文件组成。当执行PE文件的时候类加载器价载MSIL代码而元数据把精简的可执行文件编成运行时内存。
CLR的特点
CLR的结构
CLR的特点
CLR的结构
为了执行程序并且获得可管理执行环境的所以好处,我们用CLS支持的.NET框架语言编写代码。语言编译器将源代码编译成由CPU相关的代码和平台相关的指令组成的MSIL代码。MSIL有下列组成:
- 能够执行算术和逻辑运算的指令。
- 直接访问内存。
- 控制执行流
- 处理异常
MSIL代码能够在执行前被编译成特定CPU指令,CLR所需要代码的信息只有元数据。元数据描述代码并且定义代码类型包括引用代码在运行期用到的其他类型。
一个装配器由精简的可执行文件组成。当执行PE文件的时候类加载器价载MSIL代码而元数据把精简的可执行文件编成运行时内存。
CLR的特点
CLR的结构
CLR的特点
- 被管理的多线程支持和线程监控。应用程序域包括一个或多个执行线程。
- 管理不安全代码的互用性,和COM配置。
- 结构化的异常处理机制
- 基础架构和被管理执行进程,内存管理和垃圾收集
CLR的结构
- 基类库支持支持所有使用.NET语言来支持基本功能性的基类。
- COM配置支持COM对象间数据的重组。
- 异常管理支持使用try catch finally语句块在运行时处理错误。
- 安全引擎在运行时加强安全规则。
- 类型检查器在运行时作类型安全检查。
- 调试引擎支持运行时调试。
- 代码管理器管理运行时被管理代码
- IL到本地代码编译器将MSIL代码编译成机器相关的本地代码
- 垃圾收集器支持内存管理并支持清理运行时废弃的内存。
- 类加载器在运行时加载类。
JIT编译器作为CLR的一个完整的部分将MSIL代码编译成本地代码并且实时执行整批代码。代码将会被缓存而下次就会从缓存中读取代码再次编译执行(翻译不出来)
JIT执行进程
CLR类加载器加载MSIL代码并且将元数据加载到内存;代码管理器调用WinMain或DllMain方法。JIT编译器在其入口方法执行之前编译这个方法。代码管理器将对象放置在内存中并控制代码的执行。垃圾收集器实现对管理堆的周期性检查识别应用程序的无效对象。
程序执行时类型检查器确保所有对象和值以及对象和值的引用有其合法的类型。类型检查器也保证代码的唯一合法操作,否则就抛出异常。代码在运行时由CLR控制。</sp
发表评论
相关推荐
2. dotnetfx45lp_full_x86_x64zh-hans.exe:这是一个中文语言包,用于将.NET Framework 4.5的用户界面和帮助文档翻译成简体中文,便于中国用户理解和使用。 .NET Framework 4.5引入了许多新特性和改进,如: 1. **...
ASP.NET是一种基于微软的.NET Framework的Web应用程序框架,旨在帮助开发者快速构建动态的Web应用程序。为了更好地理解ASP.NET的技术架构,我们需要了解.NET Framework的基本概念和架构。 .NET Framework是一种由...
对于初学者来说,中文注释能降低学习门槛,快速理解.NET Framework中的类库和方法。而对于有经验的开发者,中文注释则可以帮助他们在处理复杂问题时,更快地定位和理解相关API的功能。 需要注意的是,虽然这里提到...
知云翻译是一款在科研领域广泛使用的文献翻译工具,它能够帮助用户快速理解并翻译专业领域的英文文献。然而,用户在使用过程中可能会遇到一些问题,如无法登录、程序卡死等,这些问题往往与用户的计算机环境不兼容...
ASP.NET是微软公司开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了丰富的功能和工具,简化了Web开发的过程。这篇摘要将详细解释ASP.NET的核心概念、主要特点以及其在计算机应用中的作用...
ASP.NET是Microsoft公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,旨在简化Web开发过程,提供丰富的功能和高效的性能。ASP.NET允许开发者使用多种编程语言(如C#、VB.NET等)编写服务器端代码,...
它基于.NET Framework,提供了丰富的服务器控件、事件驱动模型以及强大的开发工具,如Visual Studio,使得开发者能够快速构建功能丰富的Web应用。ASP.NET的核心特性包括页面生命周期管理、状态管理、自动错误处理和...
这本书以高清PDF格式提供,为读者提供了清晰的阅读体验,便于深入理解.NET技术栈。 .NET是微软公司推出的一种软件框架,它为开发者提供了构建、运行各种类型的应用程序的平台。.NET框架包含了类库、编译器、运行时...
综上所述,ASP.NET是一个全方位的Web开发平台,它提供了丰富的工具和技术,帮助开发者快速、安全地构建高性能的Web应用程序。从面向对象的网页设计,到高效的代码编译,再到强大的安全管理和灵活的配置,ASP.NET为...
对于学习者来说,这是一个宝贵的实践案例,可以深入理解.NET开发环境和C#语言在实际项目中的应用,同时也能了解到学生成绩管理系统的具体实现。通过研究源码、论文和设计文档,开发者可以提升自己的技术能力,并为...
系统需要能够提供准确、实时的术语解释和翻译功能,以便用户能快速理解和应用。 2. **架构设计**:ASP.NET支持多种架构模式,如Model-View-Controller (MVC) 和Web Forms。开发者可能选择了MVC架构,因为它鼓励分离...
对于想要学习或研究这个英汉翻译词典软件的开发者来说,他们可以从源代码中学习如何处理词汇数据库、实现搜索算法、构建用户交互界面,以及如何利用.NET Framework的资源进行网络请求或者数据解析等。此外,源代码还...
FastReport.net是其针对.NET Framework的应用,提供了丰富的功能,让开发者能够轻松创建复杂的报表。这个软件包包含了FastReport的开发人员指南和用户使用手册,旨在帮助开发人员和普通用户更好地理解和使用这个报表...
在这个选课系统中,可能是使用ASP.NET Web Forms或者MVC模式,它们都是以.NET Framework为基础,提供了一套完整的服务器控件和事件驱动模型,便于快速开发Web应用程序。 2. **数据库设计与管理**:选课系统需要存储...
这个毕业设计项目是利用ASP.NET技术构建一个小型的证券术语解释及翻译系统,旨在帮助投资者理解和掌握金融市场的专业术语,提升他们的投资决策能力。 在该系统的设计过程中,开发者可能使用了ASP.NET的核心组件,如...
ASP.NET 4是微软开发的一款用于构建Web应用程序的框架,它是.NET Framework的一部分。这个压缩包包含的是关于ASP.NET 4入门的...同时,结合刘伟琴翻译的书籍,将理论与实践相结合,有助于快速掌握ASP.NET 4的开发技能。
7. **SEO优化**:为了让在线词典更容易被搜索引擎发现,开发者会利用ASP.NET的URL重写功能,创建易于理解和索引的URL结构。 8. **部署与扩展**:ASP.NET应用可轻松部署在IIS(Internet Information Services)...
本项目“ASP.NET网络商店设计与实现”旨在通过实践来深入理解和应用ASP.NET的核心特性,包括MVC模式、身份验证、授权、数据库集成以及前端UI设计等。 1. **ASP.NET MVC模式**: ASP.NET MVC(Model-View-...