外观
.NET
约 1199 字大约 4 分钟
2024-03-03
.NET一词是指微软提供的运行时和库的组合,也可以把它视为在windows顶部构建的一个完整开发平台。
语言,是人们进行沟通表达的主要方式。编程语言,是人与机器沟通的表达方式。不同的编程语言,其侧重点不同。有的编程语言是为了科学计算而开发的,所以其语法和功能更偏向于函数式思想。有些则是为了开发应用程序而创立的,所以其语法和功能更为均衡全面。
微软为了占据开发者市场,在 2002 年推出了 Visual Studio(简称 VS), .NET 1.0 版本的开发者平台。还在 2002 年宣布推出一个特性强大并且与.NET 平台无缝集成的编程语言,即 C# 1.0 正式版。 只要是.NET 支持的编程语言,开发者就可以通过.NET 平台提供的工具服务和框架支持便捷的开发应用程序。
就是为宣传源码的格式源码的格式源码的格式编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例编程语言为示例混为一谈混为一谈混为一谈混为一谈(实质上它们是相辅相成的两个概念)。 而作为一个开发者平台,它不仅仅是包含开发环境、技术框架、社区论坛、服务支持等,它还强调了平台的跨语言、跨平台编程的两个特性。
软件开发平台及计算机语言
软件开发设计的语言大致分为:
- 编译型:C#、C++、JAVA等
- 解释型:JS、PHP、Python等
- 命令型: DOS、汇编等
- 描述型:HTML、XML、CSS等 不用的语言适用的场景和作用不同。但是他们最终都会通过语言发布商提供的编译器转换为计算机能识别的二进制编码。
为什么要创建高级语言,而不适用相对低级的汇编或二进制等命令语言开发?
- 效率和便于记忆; 计算机专家将一些具有共性的执行逻辑封装成一个函数或关键字,这样就将难以理解的1和0组合,变得容易记忆和适用
开发平台和计算机语言的关系?
- 利益关系; 语言发布商通过研发语言编译器,推广语言使用,附加售卖开发工具、操作系统、技术框架等
.NET平台架构
NET平台包括了
.NET Framework、.NET Core及其后续版本.NET 5/6/7等统一版本; 架构以 CLR、基类库和程序集为核心,通过 IL 和元数据实现跨语言和跨平台支持
主要部分:
公共语言运行时CLR(Common Language Runtime)
微软发明的玩意,他下面的东西都需要在这上面运行,(JAVA的叫JVM) 核心运行引擎,负责管理代码执行、内存分配、异常处理
- 主要功能
- 代码托管:NET程序是托管代码(包了一层 由CLR管理。C,C++写的代码就是非托管,直接由操作系统管理)
- 即时编译(JIT):相当于把代码编译成CLR体系下的中间语言,JIT把中间语言编译为目标平台的机器码
- 垃圾回收(GC):自动管理内存分配释放;(一个对象被引用时代表他是活的,无任何引用指向它 他就死了该被回收)
- 异常处理:提供统一的跨语言异常处理
- 类型安全:确保代码访问合法内存区域
基类库
NET提拱的一些API和类库,比如文件操作、数据处理、通讯、UI等
比如System.IO、System.Net等,跨语言(C# F#)也通用
程序集
NET程序的基本部署单元,dll或者EXE文件
- 私有程序集: 供指定程序使用
- 共享程序集:存储在程序集缓存中,可以被多个程序使用 支持模块化开发和版本控制
NET标准(.NET Standard)
作用:定义一组跨.NET(.NET Framework、.NET Core等)实现的通用API 目的:提高可移植性
运行时组件
- .NET Framework:主要用于 Windows 平台,支持桌面(WinForms、WPF)和 Web(ASP.NET)开发。
- .NET Core / .NET 5+:跨平台,支持 Windows、Linux、macOS,适用于云原生、微服务和现代 Web 应用。
- Mono:用于 Xamarin 和嵌入式设备的 .NET 实现。
运行机制
- 代码编译
- 代码执行
- 垃圾回收
- 跨平台支持
