.NET Framework 是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发。.
.NETFramework功能:
1、提供一个运行环境,以简化软件开发过程,降低版本冲突的可能性
2、确保代码的安全执行
3、基于行业标准进行所有的通信,从而能够与非.NET代码集成
4、让应用程序的开发过程独立于语言和平台,确保各种应用程序的开发体验都是一致的
5、提供了一个运行环境,尽可能消除脚本语言或解释型语言的性能问题
.NETFramework的四个组件:
1、公共运行时(Common Language Runtime),可将其视为.NETFramework的核心。公共运行时提供了低级核心服务供应程序使用,并负责管理应用程序的代码。针对.NETFramework编写的代码为托管代码,其他代码为非托管代码。
2、类库,包含大量可重用的类(类型),可用于开发任何应用程序(.NETFramework类库包含4000多个类,是当今最大的类库之一)。
3、并行计算平台,.NETFramework通过类库在公共语言运行时中支持并行编程,并在并行计算平台中提供了诊断工具。能够自然而简单的编写高效的可扩展代码,充分利用多个处理器。
4、动态语言运行时(Dynamic Language Runtime),建立在公共语言运行时基础之上,向动态语言提供语言服务。与诸如C#等通用语言相比,动态语言更擅长执行某些任务,而动态语言运行时可以根据业务需求选择最合适的语言。而且,动态语言运行时还让非动态语言(如C#)能够以简单而一致的语法使用动态对象。
静态语言和动态语言
{静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。
静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#、java就是静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继承、接口,而动态类型语言却不需要,所以一般动态语言都会采用dynamic typing,常出现于脚本语言中.需要明确说明一点,那就是,是不是动态类型语言与这门语言是不是类型安全的完全不相干的,不要将它们联系在一起!}}
托管代码
由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。