三言两语 .NET

.NET 是什么

大学期间就听说过 .NET 平台,但是读书和实习期间一直没有接触到对应的业务,不知不觉 .NET 已经发展到 .NET 6.0 了,在这里对 .NET 的一些基础概念和发展历史做一下简单的整理。

.NET

.NET 是由 Microsoft 创建的开源开发人员平台,用于生成不同类型的应用程序。在 .NET 平台上,可以使用 C#、F# 或 Visual Basic 编写 .NET 应用。

.NET Framework 和 .NET Core 的区别

.NET Framework 的历史比较久。它是面向 Windows 的开发和运行环境,其主要包含两个组件:公共语言运行时(CLR)和 .NET Framework 类库。前者是处理运行应用的执行引擎,后者提供给开发人员一些开发类库(这一点与 JRE 和 JDK 是类似的)。

.NET Core 则是一个跨平台的通用开发框架,由 .NET Foundation(非营利的开源组织)进行管理,某种程度上是 .NET Framework 的继任者。.NET Framework 的运行时称之为 CLR,而 .NET Core 的运行时则被称为 CoreCLR 。

它们的区别主要在于:

  • 面向的平台不同

    • .NET Framework 是面向 Windows 的,这可能是因为微软起初的动机可能更希望它完全在 Windows 上生长,可以同时推广 .NET 和 Windows;
    • .NET Core 则是面向多个平台的,包括并不限于 Windows、Linux 和 MacOS。
  • 协议不同

    • .NET Framework 是微软使用商业协议发布的,是一个私有的商业化平台;
    • .NET Core 则是使用开源的 MIT 协议的。

.NET Framework 1.0 首发于 2002 年 2 月 13 日。而 .NET Core 1.0 则发布自 2016 年 6 月 27 日。前后差了超过 14 年。

在 .NET 5 之前,.NET Framework 和 .NET Core 是独立发展的。2019 年 5 月 Microsoft Build 大会上 .NET 5 的正式推出统一了 .NET Framework 和 .NET Core 。

在此之前 .NET Framework 的最新版本号为 4.8(发布于 2019 年 4 月 18 日),而 .NET Core 的最后一个单独版本为 .NET Core 3.1(发布于 2019 年 12 月 3 日)

.NET 5 的推出使得 .NET 的生态得到了统一,在此之后的版本就没有必要去刻意区分 .NET Framework 和 .NET Core 了。特别的,.NET 5 的运行时也叫做 CoreCLR 。

.NET - A Unified Platform

Mono 和 Xamarin 是什么

Mono 是由 Xamarin (这里的 X 读 Z 的音)主导的开源项目,后续在 2016 年被微软收购。与 .NET Framework 不同,Mono 不仅可以运行在 Windows 上,同时也可以运行在 Linux、FreeBSD、Unix、MaxOS 和 Solaris 和 Andorid/iOS 等移动平台甚至一些游戏平台上。

Mono 的 1.0 版本发布于 2004 年 6 月 30 日。最初主要希望在 Linux 桌面程序上建立一个 .NET 开发平台,最后逐渐在多个平台上遍地开花。

Mono

Xamarin 同时也是一款支持 Android 和 iOS 开发的 Mono 开发环境的名称。在公司被微软收购之后,微软完成了 Xamarin 与 Visual Studio 的合并。Mono 最初是一个非官方的民间组织,后续微软内部风向的转变,对开源生态的拥抱也促使了对 Mano 的收购和 .NET 5 的推出。

现在的 Mono 已经是 .NET 的一部分了,.NET 5 为用户提供了两种运行时选项:高性能的 CoreCLR(用于服务器和桌面应用程序)和轻量级的 Mono(用于移动设备和 WebAssembly)。

.NET 和 C# 是什么关系

经过上文的介绍,可以了解到:

.NET 本质上是一系列相关技术的集合,包含 .NET Framework,.NET Core 和新的 .NET 5 以及以后的版本,包括 Mono 也是 .NET 的一部分。而 C# 则仅仅是这个平台技术支持的一门语言罢了(尽管可能是最重要的语言之一),在这个平台下你还可以使用 VB ,F# 等多种语言和技术。

多语言平台化支持

.NET Standard

.NET Standard 最新的版本是 2.1,但是.NET 5 和所有将来的版本都会继续支持.NET Standard 2.1 和更早版本。可以在微软的官方网站查看各个实现对应的具体 .NET Standard 版本。

references

作者

Aaron Ai

发布于

2022-02-11

更新于

2022-09-21

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×