本文翻译于.NET Team的这篇英文文章:What is .NET, and why should you choose it? – .NET Blog (microsoft.com) 自从我们启动快速发展的.NET 开源和跨平台项目以来,.NET 发生了很大变化。我们重新思考并完善了该平台,添加了专为性能和安全性而设计的新低级功能,以及以生产力为中心的高级功能。Span、硬件内在函数和可为空的引用类型都是示例。我们正在启动一个新的“.NET 设计要点”博客系列,以探索定义当今 .NET 平台的基础知识和设计选择,以及它们如何使您现在编写的代码受益。 本系列的第一篇文章全面概述了平台的支柱和设计要点。当您选择 .NET 时,它在基础级别上描述了“您得到了什么”,旨在成为一个充分且以事实为中心的框架,您可以使用它来向其他人描述该平台。后续帖子将更详细地介绍这些相同的主题,因为这篇帖子并没有完全公正地介绍这些功能中的任何一个。这篇文章不描述工具,如 Visual Studio,也不涵盖更高级的库和应用程序模型,如ASP.NET Core提供的那些。 我们所说的“.NET”是现代的 .NET Core。以防您错过了,我们在 GitHub 上作为开源项目于 2014 年启动了这个项目。它在Arm64、x64 和其他芯片架构上的Linux、macOS 和 Windows 上运行。它在一堆Linux发行版中可用。它与 .NET Framework 保持了很大的兼容性,但又是一个全新的方向和产品。 进入细节之前,有必要谈谈 .NET 的使用。数百万开发人员使用它在多个操作系统和芯片架构上创建云、客户端和其他应用程序。它也在一些著名的地方运行,如Azure、StackOverflow和Unity。各种规模的公司都使用 .NET 很常见,尤其是大公司。在很多地方,需要了解.NET 这项好技术才能找到工作。。 查看社区对这篇文章的反应:关于“什么是 .NET,为什么要选择它?”的想法 .NET 设计要点 .NET 平台代表生产力、性能、安全性和可靠性。.NET 在这些价值之间取得的平衡使其具有吸引力。 .NET 的设计要点可以归结为在安全域(一切都高效)和不安全域(存在大量功能)中都有效和高效。.NET 可能是具有最多内置功能的托管环境,同时还提供最低的与外部世界互操作的成本,并且两者之间没有权衡。事实上,许多功能都利用了这种无缝划分,在底层操作系统和CPU的原始能力和功能上构建安全的托管 API 。 我们可以进一步扩展设计点: 生产力是跨运行时、库、语言和工具的首要设计考虑因素。 安全代码是主要的计算模型,而不安全代码支持额外的手动优化。 支持静态和动态代码,支持广泛的不同场景。 本机代码互操作和硬件内在函数成本低且保真度高(原始 API 和指令访问)。 代码可跨平台(操作系统、芯片架构)移植,而平台定位则支持专业化和优化。 通过通用编程模型的专门实现,可以实现跨编程域(云、客户端、游戏)的适应性。 OpenTelemetry和gRPC等行业标准优于定制解决方案。 .NET 堆栈的支柱 运行时、库和语言是 .NET 堆栈的支柱。更高级别的组件,如 .NET 工具和应用程序堆栈,如 ASP.NET Core,构建在这些支柱之上。这些支柱具有共生关系,由一个团队(Microsoft 员工和开源社区)共同设计和构建,致力于这些组件的多个方面并为其提供信息。 C#是面向对象的,运行时支持面向对象。C# 需要垃圾收集,运行时提供跟踪垃圾收集器。事实上,将 C#(以其完整形式)移植到没有垃圾收集的系统是不可能的。这些库(以及应用程序堆栈)将这些功能塑造成概念和对象模型,使开发人员能够在直观的工作流程中高效地编写算法。 C# 是一种现代的、安全的、通用的编程语言,涵盖了从面向数据的记录等高级功能到函数指针等低级功能。它提供静态类型以及类型和内存安全作为基准功能,同时提高开发人员的工作效率和代码安全性。C# 编译器也是可扩展的,支持插件模型,使开发人员能够通过额外的诊断和编译时代码生成来增强系统。 许多 C# 功能已经影响或受最先进的编程语言的影响。例如,C# 是第一个引入async and await.
원문출처 : https://devblogs.microsoft.com/dotnet-ch/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E9%80%89%E6%8B%A9-net
원문출처 : https://devblogs.microsoft.com/dotnet-ch/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E9%80%89%E6%8B%A9-net