type
status
date
slug
summary
tags
category
icon
password

C#语言版本(Language Version)

C#作为一种现代的、类型安全的、面向对象的编程语言,自2000年由微软公司发布以来,已经经历了多个版本的更新。C#语言的设计初衷是为了满足快速发展的网络应用和分布式环境的需求,它融合了多种语言的优点,旨在提供一种简洁、强类型的编程方式。
C#语言版本,如C# 1.0、C# 2.0,到目前最新的C# 12.0,都是不同的语言迭代版本。每个版本的更新,都是为了让开发者能够更加高效地编写代码,而引入了不少新的特性。比如:
  • C# 1.0引入了垃圾回收、委托、事件、属性、索引器等核心概念
  • C# 2.0引入了泛型、匿名方法、迭代器等
  • C# 3.0引入了匿名类型、语言集成查询(LINQ)等
  • C# 4.0引入了动态类型 (dynamic)、命名参数、泛型协变与逆变等
  • C# 5.0引入了异步编程模型 (async 和 await)
等等。

.NET Framework

.NET Framework是微软推出的一个应用程序开发框架,它提供了一系列的API服务,包括公共语言运行时(Common Language Runtime, CLR)、一系列预定义的库和编程接口(Framework Class Library, FCL),以及ASP.NET等高效的Web开发框架,供开发者构建各类应用程序。
.NET Framework的出现是为了能够在Windows系统下方便地构建应用程序,它是与Windows操作系统深度结合,意味着它只适用于Windows平台。

Mono

Mono的出现是为了解决.Net应用程序只能运行在Windows平台的问题,它由Xamarin公司发起,旨在提供一个与.NET Framework兼容的跨平台实现,使得原本只能在Windows上运行的.NET应用程序可以在Linux、MacOS等操作系统上运行。
Mono实现了.NET Framework的许多核心API,但也有自己独特的特性和优化。例如,Mono支持C#和其他.NET语言以外的语言如F#,并且提供了一些针对Linux和其他非Windows平台的特殊处理。
Mono的出现极大地推动了.NET技术在非Windows平台上的应用,尤其是在移动应用开发领域,为开发者提供了更多的选择和灵活性,但这同时也给.Net生态带来割裂性。

.NET Standard

随着.NET生态的扩展,出现了多个基于.NET的“实现”,如.NET Framework、Mono。为了解决不同“实现”间的兼容性问题,引入了.NET Standard。它通过规定一组必须实现的API,使得开发者编写的库能够在所有符合.NET Standard的平台上运行,从而实现了真正的跨框架兼容性。
一言以蔽之,.NET Standard是一组API规范,不同的“实现”(.Net Framework、Mono以及下面的.Net Core)都必须在遵守该规范的前提下实现各个API功能。

.NET Core

.NET Core是微软推出的全新的、开源的、跨平台的.NET实现。它的设计理念是模块化、轻量级和跨平台,它移除了一些与 Windows 平台紧密绑定的技术,使得可以在Windows、Linux和MacOS上运行。
虽然 .NET Core 与 .NET Framework 在很多方面有共同的 API 和概念,但它们是两个不同的产品,具有不同的代码库和不同的设计目标。随着时间的推移,微软将 .NET Core 发展成为 .NET 5 和之后的版本,这些被称为 ".NET",旨在统一 .NET 平台。从 .NET 5 开始,微软停止了 .NET Framework 的新功能开发,将未来的创新和功能添加聚焦在 .NET 上,而 .NET Framework 仍然提供安全更新和维护。

总结

  • C#作为一种先进的编程语言,通过不断的版本迭代,提供了丰富的特性,适用于各种规模和类型的软件开发。
  • .NET Framework主要适用于Windows平台的应用开发,特别是在企业级桌面和Web应用程序中占有一席之地。
  • Mono作为一种实现.NET Framework API的跨平台框架,特别适合需要跨操作系统部署的应用程序。
  • .NET Standard作为一个跨.NET实现的标准,解决了不同.NET平台间的兼容性问题,促进了代码的共享。
  • .NET Core是现代、开源、跨平台的.NET实现,适合构建云服务和微服务架构的应用程序。
 
C#基础:值类型与引用类型AssetDependencyHash 详解
Loading...