第一章 什么是.Net Framework?什么是C#?C#与.Net Framework有什么关系

本文介绍了.NETFramework的概念,包括其作为一个跨平台的开发平台,支持多种语言和应用类型。详细讲述了.NETFramework的内容,如代码库、通用类型系统、CLR及垃圾回收机制,并概述了C#和VisualStudio在开发中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

最近在回顾C#有关基础内容(基于C#入门经典),记录一下学习过程以及学习的有关知识点总结和一些自己的理解。注释尽量通俗易懂理解,方便以后回来再回顾一下。有什么错误的地方,也请大家指正,也希望大家多多补充,比较适合初学者对概念的理解,希望对大家也有所帮助。


一、.Net Framework是什么

.Net FrameworkMicrosoft为开发应用程序而创建的一个具有革命意义的平台。这个定义是非常广义的,首先,这句话没有说是在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 Framework代码库
其目的是不同的操作系统可以根据自己的特征,支持其中的部分或者全部模块。例如智能手机支持所有的基本.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编写的应用程序执行过程
在编译使用.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代码库提供的每一种功能。它所编写比较常见的应用程序类型如图所示
C#比较常见的程序应用类型

总结

以上是第一章的内容,主要介绍了.Net Framework是什么,主要包含那些内容,以及.Net Framework应用程序的执行过程,再就是.NET Core应用程序的工作方式与.Net Framework应用程序类似,但不使用CLR,而使用CoreCLR,后面简单介绍了C#以及集成开发环境(IDE)Visual Studio。为以后深入学习理解C#做好基础。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值