首页 技术 正文
技术 2022年11月9日
0 收藏 328 点赞 4,929 浏览 1305 个字

​.NET 概念比较庞大,本文只讨论基础知识,只用简单语言描述。

我们是NET程序员,但是我们有没有思考过到底什么是.NET ?

官方定义 .NET是微软推出来的一个致力于敏捷开发的软件框架。

大概2000年年左右,微软推出了.NET 标准规范,既然有了标准就等于开发时候定义接口一样,需要东西去实现它。.NET Framework  就是 .NET 的具体实现。

可以这么认为 .NET一种优秀的设计规范和平台标准。

下面我们来说说什么是 .NET Framework?

官方定义 .NET Framework  是 Windows 的托管执行环境,可为其运行的应用提供各种服务。

.NET Framework 有两个主要组件:

1. .NET 公共语言运行时 (Common Language Runtime,CLR)

CLR核心功能:内存管理,程序集加载,安全性,异常处理,和线程同步,CLR像一个管家一样,管理着程序代码的执行,为程序提供一个运行环境。被CLR托管的代码就叫托管代码。

要想了解CLR机制,就要知道我们写的C#代码经过VS 编译之后变成了什么?

到底什么是.NET?到底什么是.NET?

左边的图是将我们编写的C#源代码编译成托管模块,右边图是托管模块的组成部分,这里我们只关注IL代码,其他的不用关注。C#代码经过编译器生成的并不是最终的CUP指令,而是一个中间语言IL代码,也就是托管代码,CLR操作的就是IL代码,最终由CLR将IL编译成计算机可以认识的Cpu指令。我们应该知道程序运行时候需要占用计算机的内存,C++时代的的程序员是需要自己手动操作管理内存的,需要自己分配和释放内存。但是我们.NET程序员是不需要进行这个操作的。这是因为CLR帮我们自动做分配内存和释放内存的这个操作了。这个操作对于NET开发者来说是透明的,这就是文章的前面所说CLR的主要功能内存管理。由CLR管理释放的内存空间叫做托管堆。在托管堆上的代码称之为安全代码也叫托管代码,反之不在托管堆上的代码就叫非托管代码,非托管代码有可能造成内存泄漏。

CLR是很复杂的一个东西。本文不做过多的讨论,只是对其概念进行简单的讲解。

2.  Framework 类库 

.NET Framework类库应该比较好理解,类似我们自己封装工具类一样的概念。Framework 类库 (Framework Class Library) 简称 FCL,FCL 里面定义了数千个类型供我们用。利用这些类型我们可以开发各种类型的应用程序 webService,MVC,Windows Forms ,WPF,Windows 服务等。所以要想学好.NET的,虽然不需要你都掌握整个.NET类库。这也不现实,但是也要尽可能掌握常用的类型。

总结

.NET Framework是.NET平台标准的主要的实现,实现的不仅仅有.NET Framework还有.NET Core和mono。

.NET Framework包含CLR和 FCL。

CLR为.NET程序提供一个运行环境并对其进行托管。

FCL Framework类库为.NET程序员提供了大量丰富的基础类型供其使用。封装了一些基础的操作,为了.NET程序员的开发提供了便利。

 ps:文章乃个人学习笔记。大神勿喷。

 到底什么是.NET?   到底什么是.NET?   到底什么是.NET?   到底什么是.NET?   到底什么是.NET?  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,495
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,909
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,741
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,496
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,134
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298