1.编译器(Compiler) 你写完的 C# 代码文件,计算机根本不认识。需要有一个工具,把你写的 class、var、foreach 这些人类能懂的东西,翻译成计算机能执行的 0 和 1。 这个翻译工具就是编译器。当你点“生成”或者按 Ctrl+Shift+B 的时候,编译器就开始干活了。 2.程序集(Assembly) 编译器把代码翻译完之后,生成的那个结果文件,就是程序集。项目里 bin/Debug 目录下那些 .exe 或 .dll 文件,每个都是一个程序集。它里面装着编译好的代码,以及其他资源文件,是程序运行的最小打包单位。 3.命名空间(Namespace) 每个 .cs 文件最上面那行 using System; 里的 System 就是命名空间。它就是一个“姓氏”,用来把类分门别类,防止重名。比如你自己写了个 Timer 类,微软也有个 Timer 类,只要你们不在同一个命名空间里,就不会冲突。可以把命名空间理解成文件夹,类就是里面的文件。 4.NuGet 项目里右键“管理 NuGet 程序包”出来的那个东西就是 NuGet。它是一个公共的“包仓库”,全世界的开发者把写好的功能打包上传到上面,你需要什么功能,搜一下,点安装,就能直接拿来用,不需要自己从零写。用的时候直接根据包提供的命名空间,using后就可以调用了。本质就是别人写好的类库,装上就能调用。 5.BCL(基础类库,Base Class Library) 你一直在用但可能没意识到的东西。Console.WriteLine、List<T>、string、File 这些,都是微软提前写好、随 .NET 一起安装的标准类库。这套类库的总称就是 BCL。NuGet 是别人写的,BCL 是微软自带的,不用装直接用。 6..NET Framework / .NET Core / .NET(三者关系) 这是让很多初学者混乱的名词,其实就是 .NET 这个平台的三个历史阶段。 · .NET Framework:老大哥,只跑在 Windows 上,2002年就有了,现在维护但不怎么加新功能了。 · .NET Core:为了跨平台(Windows、Linux、Mac 都能跑)从零重写的版本,性能更好。做到 3.1 版本后改名。 · .NET:从 .NET Core 3.1 之后,微软把名字里的 "Core" 去掉了,直接叫 .NET 5、.NET 6、.NET 7、.NET 8……这就是现在的主流。 你现在新建项目,用的就是 .NET。听到这三个词,知道它们是一条进化路线就行。如果还有人提 .NET Framework 项目,说明是老项目。 7.IL(中间语言,Intermediate Language) 编译器先把 C# 翻译成一个中间状态的代码,叫 IL。这个 IL 不分操作系统,也不分 CPU 型号,是一套通用的指令。程序运行时,再把这些 IL 指令翻译成当前电脑能执行的机器码。 为什么多此一步?因为这样你编译好的一份程序,拿到 Windows 上能跑,拿到 Linux 上也能跑,中间这一步 IL 屏蔽了底层差异——这正是跨平台的关键。 8.JIT(即时编译,Just-In-Time Compilation) 程序运行的时候,CPU 只认机器码,不认识 IL。所以得有一个翻译官,在运行过程中一条一条把 IL 翻译成机器码交给 CPU 执行。这个按需翻译的翻译官,就叫 JIT 编译器。 不像提前全部翻译好,它用到哪段 IL 才翻译哪段。所以叫“即时”——在需要的那一刻现场编译。你的程序启动时会有一些微小延迟,就是在等 JIT 干活。 9.CLR(公共语言运行时,Common Language Runtime) CLR 是一个总管,负责你程序运行时的各种安全保障和辅助服务。JIT 翻译只是它的工作之一,它还管垃圾回收、异常处理、线程管理等。 10.GC(垃圾回收器,Garbage Collector) 这是 CLR 里最重要的一项服务,专门自动释放不再使用的内存。正是因为 GC 的存在,你写 C# 时很少需要考虑内存释放的问题。 11.托管代码(Managed Code)与非托管代码(Unmanaged Code) 刚才说 CLR,负责 JIT、垃圾回收、异常处理等各种服务。 托管代码:受 C# 编写的、运行在 CLR 这个“塔台”管辖下的代码。它享受垃圾回收自动管理内存等服务。大部分C# 代码都是托管代码。 非托管代码:不归 CLR 管的代码,通常是 C 或 C++ 写的。它得自己手动申请和释放内存。using里要释放的“非托管资源”,很多就是这类代码创建的底层资源。 12.SDK(软件开发工具包,Software Development Kit) SDK 就是开发用的全家桶。你装的那个 .NET SDK,里面包含了编译器、NuGet、运行时、还有 dotnet 命令行工具等等。装好 SDK,你才能用 dotnet new 创建项目、用 dotnet build 编译代码、用 dotnet run 跑程序。 13.运行时(Runtime) 运行时是程序跑起来必须的环境,只包含跑程序需要的东西,不包含编译器和构建工具。 用户电脑上不需要装 SDK,只装运行时就行,体积小很多。你的程序编译好之后,拿到用户电脑上,靠运行时里的 CLR、GC、JIT 这些来运行。 14.解决方案(Solution)与项目(Project) 打开 Visual Studio 最先见到的那个 .sln 文件就是解决方案,它是一个大容器,里面可以装多个项目。 项目是真正生成 .dll 或 .exe 的最小单元,对应 .csproj 文件。一个解决方案里,可能有一个放界面的项目,一个放业务逻辑的项目,一个放数据访问的项目,各司其职,最后拼成一个完整的软件。 15.中间件 中间件是装配到请求管道上的一段代码,负责处理请求和响应。 每个中间件接到请求后,可以干三件事: 1. 对请求做点加工 2. 决定是继续传给下一个中间件,还是直接返回 3. 拿到响应后,再对响应做点加工 整个程序就是由一个接一个的中间件串成一条流水线,请求从头走到尾,响应从尾走回头。
1-15
以下为完整正文内容。
正文
搜索结果
请输入关键词开始搜索。