4

[.NET大牛之路 002] 什么是 .NET

 3 years ago
source link: https://www.cnblogs.com/willick/p/14954657.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

.NET 是一个开发平台,或者叫开发者平台。使用 .NET 你可以创建不同类型的应用程序,使用多种开发语言、编辑器和工具库创建网页、手机、桌面以及游戏等应用。其核心特点是:免费、开源和跨平台。

语言和平台

我们先来理解一下什么是 .NET 开发平台。

简单说,开发平台就是为应用软件开发提供的一个工作平台。.NET 开发平台主要包括公共语言运行时(CLR)和框架类库(FCL)。其中 FCL 包含基础类库(BCL)和 ASP.NET (Core)、ADO.NET、WPF、WinForm 等框架类库。

经常会听到有人拿 .NET 与 Java 对应。严格来说是不对的,与 Java 对应的是 C#,与 JVM 对应的是 CLR,与 JDK 对应的是 .NET Framework/.NET Core/.NET 5+ SDK。JVM 上有多种语言,CLR 上也有多种语言。比如 JVM 上有 Java、Scala、JPython 等,CLR 上有 C#、F#、IronPython 等。

当然,平时我们不必刻意去区分对应关系。当我们听到有人把 .NET 与 Java 对应时,也完全不必较真。因为 C# 语言在 .NET 平台的市场上占据了绝对主导的地位,所以人们默认就把 .NET 与 C# 绑在了一块儿。比如人们习惯了说 .NET 生态和 Java 生态,而很少听说 C# 生态。

还有人把 .NET 等同于 .NET Framework 或 .NET Core。准确的来说也是不对的,.NET 是开发平台,.NET Framework 是在 .NET 平台上针对 Windows 系统实现的开发框架,.NET Core/.NET 5+ 是在 .NET 平台上实现的支持多操作系统的跨平台开发框架。

前面说到了 .NET 的核心特点是免费、开源和跨平台。即,它的开源协议是最开放的 MIT 协议,允许在任何商业环境中使用。它的跨平台特性使得它可以它可以运行于任何环境,如 Windows、Linux、macOS、iOS、watchOS 和 Docker 等。

.NET 的另一个我最喜欢的特点是:大生态。来看一张来自官网的图:

从图中我们可以看到,.NET 支持 Web、桌面客户端、移动应用、微服务、云服务、机器学习、游戏、物联网(IoT)等开发,几乎涵盖了所有应用场景。也就是说,我们只需要掌握 C# 一门语言,就可以应对几乎所有应用场景的开发。这个优势,目前没有任何一门其它语言或平台可以相比。

其中部分生态目前相对还不是非常成熟,比如机器学习和大数据方面。随着微软和社区逐渐把 .NET 生态发展壮大,.NET 也会迎来越来越美好前景。

多语言支持

你可以使用多种语言来编写 .NET 应用程序,主流的语言有:C#, F# 和 Visual Basic。

  • C# 是一种简单、现代、面向对象和类型安全的编程语言,其名字的意义源于 C++,并受到了五线谱中的升号 # 的启发。它在 C++ 的基础上再 ++ ,就是 4 个 +,即 #,恰好和五线谱中的 #(sharp) 一样。所以 C# 读作 [si:'ʃɑrp],不要读成 C 井哦。
  • F# 是一种跨平台的、开源的函数式编程语言。它还包括面向对象和命令式(Imperative)编程。它为那些熟悉函数式编程语言的人转换到 .NET 平台提供了便利。函数式编程在某些场景下比面向对象编程更方便高效,有其自身特点,是对 .NET 平台的一个有益补充。
  • Visual Basic,简称 VB,是一种接近人类语言的语言。它的语法简单,易学,一般用于建立基于事件驱动的视窗应用程序。很多传统企业和小公司还在用。现在很多人学 VB 语言主要是为了 VBA 编程,使用 Excel 自动化办公。

当年也出现了像 IronPython、IronRuby、IronScheme 等,不过这些项目已经死掉了。

多开发工具支持

你可以使用多种工具来进行 .NET 编程,有强大的 Visual Studio、轻小的 Visual Studio Code 和 JetBrains 出品的 Rider 等。

  • Visual Studio:Windows 上功能齐全的集成开发环境(IDE),用于构建各种类型的 .NET 应用程序。还有专为 MacOS 打造的兄弟款:Visual Studio for Mac。
  • Visual Studio Code:可在 Linux、macOS 或 Windows 上开发,建立跨平台网站和服务,需安装 C# 扩展。
  • JetBrains Rider:JetBrains 出品,体验也不错,它使用的是 IntelliJ 和 ReSharper 技术构建的跨平台 .NET IDE。
  • OmniSharp: 它使 Atom、Sublime Text、Emacs 和 Vim 等编辑器支持跨平台 .NET 开发。

人们的误解

至今我还偶尔会看到网上的一些评论说,.NET 是闭源的、收费的、只能在 Windows 上跑等言论。这些都是误解,这些人的观念都还停留在 2016 年以前,面对这些评论,我们只能呵呵了。

还有人认为 .NET 的性能低,这也是老旧观念了。从 .NET Core 成熟后,其性能和 Go 旗鼓相当。在 Web 综合性能方面,其性能高出 Node.js 的 7 倍多。

还有很多人认为 .NET 是由微软自己开发和维护的,其实不完全是。自 .NET 开源以来,参与建设 .NET 平台的有微软自己的团队,也有来自世界各地的 6 万多名开发者和 3700 多家公司。另外,早在 2014 年,微软就成立了 .NET 基金会,有微软、Google、三星等大厂扶持,用来推进 .NET 平台的发展。

.NET 热情拥抱了开源和跨平台,开发市场也在热情地拥抱 .NET,越来越多的开发人员和公司参与到了 .NET 的大家庭中。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK