C#与.Net

最近用C#开发一套独立的编辑器,使用WPF界面框架,引入了Telerik界面库。后来为了让处理数据的逻辑能跨平台运行又创建了一个.Net Core的console app来完成这部分独立的功能。做Unity开发的时候也知道mono可以支持C#代码的跨平台运行,在此打算把C#生态涉及到的各种概念梳理一下。包括C#、.Net、.Net Framework、.NetCore、.Net Standard、mono、MAUI、WPF、Telerik、CIL、CLR、ECMA标准等等。

最初C#是微软推出的基于.Net Framewok的编程语言。C#与Java一样是托管语言,通过编译器生成中间语言 CIL( Common Intermediate Language ),再在运行时由中间语言运行时库CLR( Common Language Runtime)翻译执行并调用对应系统的API来工作。因为C#语法比较接近C/C++,但具有托管语言的优势(内存管理,异常机制等),很快流行起来。但当初的.Net Framework只支持Windows平台,就有公司及开源社区希望能让C#跨平台运行,这就是mono的出现。此后C#语言就不再是微软自家的产品了,需要有统一的标准。关于C#语言及C#编译出来的中间语言CIL的标准由欧洲计算机协会ECMA(European Computer Manufacturers Association)制定。

Continue reading