作者:骚扰list_238 | 来源:互联网 | 2023-09-15 17:06
记得在很久之前装SQL2014的时候就发现过一个问题,安装失败,提示要装上,netframework,那个时候不知道他到底是个什么东东,上网查了查,记得当时给出的解释是这样的,.n
记得在很久之前装SQL 2014的时候就发现过一个问题,安装失败,提示要装上,net framework,那个时候不知道他到底是个什么东东,上网查了查,记得当时给出的解释是这样的,.net framwork 微软的程序框架,Sql sever 是微软的软件,只有安装微软的框架,软件才能运行,也就是说有了软件环境才能运行软件。总结一下就是:微软开发的软件,安装的时候就会检测.NET框架,只有安装了这个微软的框架才能运行微软的软件。
当时理解了.ner freamwork是程序运行的一个框架,一个基石,没有这个运行环境软件就不能工作。学习C#的时候又一次遇到了,觉得应该深入理解一下.ner freamwork 。
一、概念:
.net framework也就是.NET框架。它是一个集成在Windows中的组件, 它支持生成和运行下一代应用程序 XML.Web Services。
1.特点:
①多平台:该系统可以在广泛的计算机上运行
②行业标准:该系统使用行业标准的通信协议,
③安全性:该系统能提供更加安全的执行环境,即使有来源可疑的代码存在。
二、目标:
①提供一个一致的面向对象的编程环境,无论对象代码是在本地存储和执行,或者在本地执行但在Internet上分布,或者在远程上执行,都在这个编程环境中。
②提供一个将软件部署和版本控制冲突最小化的代码执行环境。
③提供一个可以提高代码执行安全性的执行环境。
总结一下他的目标就是为了创建高效的应用程序在部署,管理安全,提高性能等方面提供最大的底层平台支持。
三、组件:
.Net framework有两个重要的组件公共语言运行时和基类库,另外还有一个编程工具。
1. 公共语言运行时(CLR,Common language Runtime)是.net framework运行的基础,它是一个执行环境,在运行期管理程序的执行。内容包括:内存管理/代码安全验证/代码执行/垃圾收集。
2.基类库(BCL, Base Class Library)是.net 框架使用的一个大的类库,它是一个综合性的面向对象的可重用类型集合,可以用来开发多种应用程序。主要包括:
①通用基础类:这些类提供了一组极为强大的工具,可以应用到广泛的编程任务中,比如字符串操作,安全和加密。
②集合类:实现了列表、字典,散列表以及位数组。
③线程和同步类:用于创建多线程程序。
④XML类:用于创建、读取、以及操作XML文档
3.编程工具----涵盖了编码和调试需要的一切,包括:
①VS集成开发环境
②.net兼容的编译器(比如:C#,JS,VB等)
③调试器
④服务器端改进,比如ASP.NET。
四、.NET语言的编译与执行
(1)编译过程:
不管是什么编程语言都要通过 .NET语言的实时编译器(JIT,Just in time)将源代码生成名为程序集的输出文件。程序集可以是可执行文件或者DLL。程序集包含了一下项目:
①程序的公共中间语言(CIL,Common Intermediate Language)
②程序中使用的类型的元数据
③对其他程序集引用的元数据
(2)执行过程:
程序的CIL知道他被调用时才会被编译成本机代码,然后服务于操作系统。
要注意的是CLR被编译器编译完成时并没有直接生成本机代码,他只是被缓存下来以备在后来的程序中执行。所以呢,不被调用的代码不会被编译成本机代码,而且被调用的代码只能被编译一次。
当CIL被编译成本机代码后,在它运行时就要接受CLR的管理。执行一些任务:例如,释放无主内存,检查数组边界,检查参数类型,管理异常等。这里产生两个术语,以后会经常听到:
①托管代码---为.NET框架编写的代码成为托管代码,需要CLR。
②非托管代码---不在CLR控制之下运行的代码,成为非托管代码。
下图是三种语言进行编译和执行的综述,用一张图来表示,相信大家可以很清晰的了解他的编译和执行过程:
四、相关补充;
.NET Framework可由非托管组件承载,这些组件将公共语言运行时加载到他们的进程中并启动托管代码的知识,从而创建一个可以同时利用托管和非托管功能的软件环境。所以, .NET Framework不但提供若干运行时宿主,而且还支持第三方运行时宿主的开发。
下面是 .NET Framework的环境示意图: