NET Core 简介

1. 前言

.NET发行至今已经过了十四个年头。随着版本的不断迭代更新,.NET在Windows平台上的表现也是越来越好,可以说Windows平台上所有的应用类型.NET几乎都能完成。

只是成也Windows,败也Windows,这十四年来,除了部分“民间”版本,.NET一直没能在官方支持下摆脱Windows平台的局限,“开源”和“跨平台”这两个词语也是所有.NET开发者心中的痛楚。最终,.NET Core出现了,它让开发者们在官方和社区的支持走出了Windows,可以在macOS,Linux主流distributions上编写调试并部署.NET程序。

2. .NET Core 简介

2.1 .NET Core是什么

.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。.NET Core的源码放在GitHub上,由微软官方和社区共同支持。

它和传统的.NET Framework,属于“子集—超集”的关系,或者你也可以简单地认为它就是.NET Framework的跨平台版本(基于BCL的层面上看)。这是因为在当前版本中(1.0),.NET Core中的大部分核心代码都是从.NET Framework中继承重写的,包括Runtime和Libraries(如GC, JIT, 部分类型)。

吐槽:只能感谢微软《CLR via C#》不用白看呀,我之前看了得有小半年才看完

现在的.NET Core 1.0版本是一个很小的核心,APIs和工具也并不完整,但是随着.Net Core的不断完善,补充的Apis和创新也会一起整合到.NET Framework中。也就是说,.NET Core微软会同时更新.NET Framework和.NET Core,他们就像俩兄弟,共同努力致富(致谁的富?当然是.NET开发者们),实现所谓的天下大同,也就是.NET 标准2.0

这里不得不提到一个叫做.NET Standard Library概念。作为.NET平台APIs开发官方支持标准,它要求所有的.NET框架APIs都遵循向下兼容。比如说.NET Framwork 4.6支持.NET Standard Library 1.3,.NET Framwork 4.6.2框架支持.NET Standard Library 1.5,而.NET Core 1.0框架支持1.6标准。

最终展望如下:

2.2 .NET Core的组成

  • .NET Runtime
    CoreCLR。如之前所说,CoreCLR与.NET Framework的CLR并没有什么区别,进程管理,GC,JIT(RyuJIT 编译器)这些部分也都是一样的,只是针对服务器系统做了相应优化。现在CLR和CoreCLR也在进行同步更新,只是可以肯定的是,CoreCLR才是.NET的未来,CLR将作为兼容手段而存在
  • Framework Libraries,
    CoreFX。包括集合类,文件系统处理类,XML处理类,异步Task类等
  • SDK Tools 和 Language Compilers (SDK工具和编译器)
    CLI工具和Roslyn编译器。可以通过.NET Core SDK(.NET Core开发工具包)获取。
  • dotnet’app host
    用来选取并执行对应运行时,提供组件载入原则和启动.NET Core应用程序。SDK也是通过相同程序启动。

    Tips:是不是想起了MSCorEE.dll这个垫片,它同样承载着Windows平台上为.NET应用程序选择CLR版本的工作

2.3 .NET Core的特性

  • 跨平台
    可以在Windows,macOS,Linux上运行
  • 灵活的部署机制

1.Portable applications(便携式应用)
这种部署机制和传统的.NET Framework相似,只要目标平台上存在.NET Core Runtime即可。

2.Self-contained application(自宿主应用)
顾名思义,这种部署机制将应用和运行时共同打包,即便目标平台上没有安装.NET Core Runtime也能正常使用

第二种方式和.NET Native也是不一样的,仍然使用CoreCLR,而.NET Native使用CoreRT作为运行时,详细信息请见dotnet/corert

  • 命令行工具
    .NET程序所有的运行脚本都可以用命令行工具执行(cmd,bash)这里有几个常见的donnet命令
指令 帮助
dotnet new 产生新的基本 .NET 项目内容 (包含 project.json、Program.cs 以及 NuGet.config
dotnet restore 还原所参考的 NuGet 包
dotnet build 建造 .NET 项目
dotnet publish 产生可发行的 .NET 项目 (包含所属的 Runtime)
dotnet run 编译与立即运行 .NET 项目 (较适用于 exe 型项目)
dotnet repl 引导交互式的对话
dotnet pack 将项目的产出封装成 NuGet 包
  • 兼容性
    通过.NET Standard Library与.NET Framework,Xamarin,Mono兼容
  • 开源
    .NET Core从属于.NET基金会,由微软进行官方支持。使用MIT和Apache 2开源协议,文档协议遵循CC-BY

2.4 开发语言

.NET Core 1.0版本中支持的编程语言仅有C#(F#和VB暂未实现),这里还要提到一个开源的语言编译器Roslyn,它负责将代码编译成我们熟悉的IL语言,然后再借由AOT或JIT编译器编译成机器熟悉的机器语言。

原文地址:https://www.cnblogs.com/qinyi173/p/9280641.html

时间: 2024-11-10 10:33:56

NET Core 简介的相关文章

.NET Core简介

内容主要来源 https://docs.asp.net/en/latest/conceptual-overview/dotnetcore.html 什么是.NET Core .NET Core 5 包括模块化的运行时和库实现,是.NET Framework的子集. 他包括一系列的库,称之为“CoreFX”,一个精简.优化的运行时,叫做“CoreCLR”.他们两者都是通过NuGet发布的.根据功能不同CoreFX是分解为不同的包的,一般名称是System.[module].因此带来了.NET Co

[.net core]简介(转)

原文地址:https://docs.microsoft.com/zh-cn/dotnet/articles/core/ NET Core 是一个通用开发平台,由 Microsoft 和 GitHub 上的 .NET 社区共同维护. 它是跨平台的,支持 Windows.macOS 和 Linux,并且可用于设备.云和嵌入式/IoT 方案. 以下特征对 .NET Core 进行了最好的定义: 部署灵活:可以包含在应用或已安装的并行用户或计算机范围中. 跨平台:可以在 Windows.macOS 和

TDD in .NET Core - 简介

本文很多内容来自选自TDD实例一书. 预备知识 最好有一些预备知识,例如xUnit,Moq,如何编写易于测试的代码,这些内容我都写了文章:https://www.cnblogs.com/cgzl/p/9178672.html#test. Test Driven Development 什么是TDD(Test Driven Development)? TDD是一个软件开发过程,这个过程依赖于重复性的小开发周期:需求被转化为具体的测试用例,然后改进程序以便通过测试. 在TDD里有两条规则: 只在有未

NET Core 介绍

NET Core 介绍 1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP.NET Core 项目文件夹解读 2.3.1 项目文件夹总览 2.3.2 project.json和global.json 2.3.1 Properties——launchSettings.json 2.3.4 Startup.cs (1) 构造函数 (2) ConfigureServices (3) Configure 2.3

【翻译】ASP.NET Core 入门

ASP.NET Core 入门 原文地址:Introduction to ASP.NET Core         译文地址:asp.net core 简介           翻译:ganqiyin [!注意] 这些说明适用于最新版本的ASP.NET Core. 旧版本入门查看? 请参阅1.1版本教程.. 安装 .NET Core. 2.创建一个新的 .NET Core 项目. 在macOS和Linux上,打开一个终端窗口. 在Windows上,打开命令提示符. dotnet new razo

asp.net core入门教程系列 (一)

Asp.Net Core简介 ASP.NET Core 是一个全新的开源.跨平台框架,可以用它来构建基于网络连接的现代云应用程序,比如:Web 应用,IoT(Internet Of Things,物联网)应用和移动后端等.ASP.NET Core可以运行在 .NET Core 或完整的 .NET Framework 之上,其架构为发布到云端或本地运行的应用提供了一个最佳的开发框架,由开销很小的模块化组件构成,这就保持了你构造解决方案的灵活性.你可以跨平台地在Windows.Mac和Linux等设

ASP.NET Core 介绍和项目解读

1. 前言 2. ASP.NET Core 简介 2.1 什么是ASP.NET Core 2.2 ASP.NET Core的特点 2.3 ASP.NET Core 项目文件夹解读 2.3.1 项目文件夹总览 2.3.2 project.json和global.json 2.3.1 Properties——launchSettings.json 2.3.4 Startup.cs (1) 构造函数 (2) ConfigureServices (3) Configure 2.3.5 bundlecon

如何在Raspberry Pi 3B中安装Windows 10 IoT Core

Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本,功能相对精简.使用Windows 10 IoT可以打造属于自己的物联网生态系统. Windows 10 IoT的版本介绍 Windows 10 IoT 企业版 Windows 10 IoT 企业版将 Windows 10 企业版功能广泛应用于零售.制造.医疗.金融和其他行业的设备上.Windows

Asp.net Core MVC 项目系统搭建与应用

第一部分 编程基础 Asp.net Core 简介 Asp.net Core 开始 Asp.net Core MVC 简介 第二部分 基础框架 Asp.net Core MVC  EntityFrameWorkCore 简介 Asp.net Core MVC EntityFrameWorkCore 高级应用 MSSQL 2016/MySQL Asp.net Core MVC Dapper 简介 Asp.net Core MVC Dapper 高级应用 MSSQL 2016/MySQL 第三部分