.Net阅读笔记

Posted 木白星枝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net阅读笔记相关的知识,希望对你有一定的参考价值。

通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? - 小曾看世界 - 博客园 (cnblogs.com)
CTS(Common Type System 公共类型系统)

公共语言规范 - Common Language Specification ,简称CLS。CLS是CTS体系中的子集。一个编程语言,如果它能够支持CTS,那么我们就称它为面向.NET平台的语言。

基础类库BCL(Base Class Library)提供面向.NET的开发语言中使用的基本的功能

FCL(Framework Class Library).NET框架类库CL中,除了最基础的那部分BCL之外,还包含 用于网站开发技术的 ASP.NET类库,用于桌面开发的 WPF类库、WinForm类库等

在vs默认的颜色方案中,蓝色体 代表关键字,浅蓝色体 代表类型。

用new来创建这些类型的对象,但这样就太繁琐,所以C#就用 int关键字来表示System.Int32,用 string关键字来表示 System.String等,所以我们才能这样去写。

.NET提供了一个垃圾回收器(GC)来完成这部分工作,当你创建类型的时候,它会自动给你分配所需要的这部分内存空间。这部分本该你做的工作,它帮你做了,这就是“托管”的概念。因此,C#被称之为托管语言。C#编写的代码也就称之为托管代码,C#生成的模块称之为托管模块等。在C#角度,那些脱离了.NET提供的诸如垃圾回收器这样的环境管制,就是对应的 非托管了。

CLR(Common language runtime)公共语言运行库是.NET类型系统的基础。
在我们执行托管代码之前,总会先运行这些运行库代码,通过运行库的代码调用,从而构成了一个用来支持托管程序的运行环境,进而完成诸如不需要开发人员手动管理内存,一套代码即可在各大平台跑的这样的操作。

容纳.NET虚拟机的进程就是CLR宿主进程了,该程序称之为运行时主机。

如果你足够熟悉CLR,那么你完全可以在一个非托管程序中通过调用运行库函数来定制CLR并执行托管代码。
像SqlServer就集成了CLR,可以使用任何 .NET Framework 语言编写存储过程、触发器、用户定义类型、用户定义函数(标量函数和表值函数)以及用户定义的聚合函数。

所以C#编写的程序如果想运行就必须要依靠.NET提供的CLR环境来支持。 而CLR是.NET技术框架中的一部分,故只要在Windows系统中安装.NET Framework即可。

Windows系统默认安装的有.NET Framework,并且可以安装多个.NET Framework版本.

在%SystemRoot%\\Microsoft.NET下的Framework和Framework64文件夹中分别可以看到32位和64位的.NET Framework安装的版本。

   原来自.NET Framework 4以来的所有.NET Framework版本都是直接在v4.0.30319文件夹上覆盖更新,并且无法安装以前的4.x系列的老版本,所以v4.0.30319这个目录中其实放的是你最后一次更新的NET Framework版本。

那就是进入该目录文件夹,随便找到几个文件对其右键,然后点击详细信息即可查看到对应的文件版本,可以依据文件版本估摸出.NET Framework版本,比如csc.exe文件。
 

.NET Framework 由两个采用不同版本的主要组件构成:

  • 一组程序集,它们是为应用提供功能的类型与资源的集合。 .NET Framework 和程序集使用相同的版本号。 例如,.NET Framework 版本包括 4.5、4.6.1 和 4.7.2。

  • 公共语言运行时 (CLR),可管理并执行应用代码。 单个 CLR 版本通常可支持多个 .NET Framework 版本。 例如,CLR 版本4.0.30319.xxxxx(其中 xxxxx 小于42000)支持 .NET Framework 版本 4 到 4.5.2。 大于或等于4.0.30319.42000 的 CLR 版本支持从 .NET Framework 4.6 开始的 .NET Framework 版本。

在.NET Framework目录文件夹中就附带的有 用于C#语言的命令行形式的编译器csc.exe

我们通过编译器可以将后缀为.cs(C#)和.vb(VB)类型的文件编译成程序集。

C#源码被编译成程序集,程序集内主要是由一些元数据表和IL代码构成,我们双击执行该exe,Windows加载器将该exe(PE格式文件)给映射到虚拟内存中,程序集的相关信息都会被加载至内存中,并查看PE文件的入口点(EntryPoint)并跳转至指定的mscoree.dll中的_CorExeMain函数,该函数会执行一系列相关dll来构造CLR环境,当CLR预热后调用该程序集的入口方法Main(),接下来由CLR来执行托管代码(IL代码)。 

以上是关于.Net阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章

线性代数笔记:标量向量矩阵求导

必须声明标量变量错误 ADO.NET

梦断代码阅读笔记02

梦断代码阅读笔记一。

梦断代码阅读笔记一。

VB.net 获取标量以将值保存到变量