文章目录
前言
最近在回顾C#有关基础内容(基于C#入门经典),记录一下学习过程以及学习的有关知识点总结和一些自己的理解。注释尽量通俗易懂理解,方便以后回来再回顾一下。有什么错误的地方,也请大家指正,也希望大家多多补充,比较适合初学者对概念的理解,希望对大家也有所帮助。
一、.Net Framework是什么
.Net Framework是Microsoft为开发应用程序而创建的一个具有革命意义的平台。这个定义是非常广义的,首先,这句话没有说是在Windows操作系统上开发的应用程序,言外之意,.Net Framework平台不仅仅在Windows操作系统和Windows Moblie操作系统上运行,而且可以在Linux、macOS上运行。
所以.Net Framework就是一个开发应用程序的平台。
还有这个定义并未指定开发程序的类型,比如桌面应用程序、Windows Store(UWP)应用程序、云/Web应用程序、Web API和其他各种类型的应用程序。
.Net Framework还可以用于各种语言进行开发编程不仅仅包含C#,还有F#、C++、JavaScript、VB以及COBOL。
所以,.Net Framework是什么,是可以在多种操作平台上运行,可以开发多种类型应用程序、可以使用多种开发语言开发应用程序的一个平台。简而言之就是开头的那句话。
二、.Net Framework里面有什么
以上是对.Net Framework的广义理解,以下是.Net Framework包含的具体内容。
1…Net Framework内容
.Net Framework主要包含一个庞大的代码库,可以在客户端或者服务器语言中通过面向对象的编程(OOP)技术来使用这些代码。如图所示
其目的是不同的操作系统可以根据自己的特征,支持其中的部分或者全部模块。例如智能手机支持所有的基本.NET功能。
更进一步
1、为了有助于使用.Net Framework的各种语言之间进行交互操作,部分.Net Framework库定义了一些基本类型。比如32位带符号整型,这称为通用类型系统(CTS)
2、.Net Framework还包含***.NET公共语言运行库(CLR)***它负责管理用.NET库开发的所有应用程序的执行。
3、由于项目可以分支在多平台上定制运行,例如.NET Compact Framework和.NET Micro Framework是.Net Framework的分支,而.NET Core就是进行跨平台代码开发的最优解决方案。
2.使用.Net Framework编写的应用程序执行过程
使用.Net Framework编写应用程序就是使用(支持.Net Framework的任何一种语言.)NET代码库编写代码,使用的Visual Studio是一种强大的(IDE)集成开发环境(支持包括C#在内的多种语言),这个集成环境的优点就是便于把.NET功能集成到代码中。我们创建的代码完全是C#代码,但是使用了.NET Framework,并在需要时使用了Visual Studio中使用了其他的工具。
.Net Framework编写的应用程序执行过程如图所示
在编译使用.Net Framework库的代码时,不是立即创建装英语操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Language CIL)代码,这些代码并非专用于任何一种操作系统,也并非专门用于C#。其他的.NET语言(VB、F#等)也会在第一阶段编译为这种语言。
然后通过Just-In-Time(JIT)编译器把CIL编译为专用与OS和目标机器构架的机器代码。
其中,编译成的CIL代码会存储在一个程序集中,程序集包括可执行的应用程序文件(扩展名.exe)和其他应用程序使用的库(其扩展名是.dll)。当然还包括元信息和一些可选资源,比如声音、图片等。
在上述过程中还有一点需要注意,在编译为CIL的C#代码未必包含在一个单独的文件中,可以把应用程序代码放在多个源代码文件中,再把他们编译到一个单独的程序集中,这个过程称为链接。
3.托管代码与垃圾回收
再将代码编译成为CIL,再用JIT编译器将他编译为本机代码后,上面提到的CLR的任务还没有全部完成,他还需要管理正在执行的用.Net Framework和.NET Core编写的代码,也就是说CLR/CoreCLR管理着应用程序,其方式是管理内存、处理安全性以及允许进行跨语言调试等,这就是CLR/CoreCLR的代码托管功能。相反不受CLR/CoreCLR控制运行的的应用程序属于非托管类型,比如C++就可以用于编写此类程序。C#只能编写在托管环境下运行的代码。
***托管代码最重要的一个功能就是垃圾回收。***这种.NET方法可确保应用程序不再使用某些内存时,就会完全释放这些内存。但是.NET垃圾回收的执行时间并不固定,所以需要许多内存才能运行的代码应自行完成清理工作。
3.C#
C#是可用于创建要运行在CLR/CoreCLR上的应用程序的语言之一,融合了其他语言的许多优点,是Microsoft专门为使用.NET平台而建立的,他能使用.Net Framework代码库提供的每一种功能。它所编写比较常见的应用程序类型如图所示
总结
以上是第一章的内容,主要介绍了.Net Framework是什么,主要包含那些内容,以及.Net Framework应用程序的执行过程,再就是.NET Core应用程序的工作方式与.Net Framework应用程序类似,但不使用CLR,而使用CoreCLR,后面简单介绍了C#以及集成开发环境(IDE)Visual Studio。为以后深入学习理解C#做好基础。