关于 .NET Core

.NET Core 具有以下特性:

  • 跨平台: 可以在 Windows、macOS 和 Linux 操作系统上运行。
  • 跨体系结构保持一致: 在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码。
  • 命令行工具: 包括可用于本地开发和持续集成方案中的易于使用的命令行工具。
  • 部署灵活: 可以包含在应用或已安装的并行用户或计算机范围中。 可搭配 Docker 容器使用。
  • 兼容性:.NET Core 通过.NET Standard与 .NET Framework、Xamarin 和 Mono 兼容。
  • 开放源代码:.NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目。
  • 由 Microsoft 支持:.NET Core 由 Microsoft 依据 .NET Core 支持提供支持。

语言

可以使用 C#、Visual Basic 和 F# 语言编写适用于 .NET Core 的应用程序和库。 这些语言已集成或可以集成到你最喜欢的文本编辑器和 IDE,包括 Visual Studio、Visual Studio Code、Sublime Text 和 Vim。 这种集成部分由 OmniSharp 和 Ionide 项目的高手提供。

API

.NET Core 公开了多种方案的 API,以下介绍了几种:

  • 基元类型,例如 boolint
  • 集合,例如 System.Collections.Generic.List<T>System.Collections.Generic.Dictionary<TKey,TValue>
  • 实用程序类型,例如 System.Net.Http.HttpClientSystem.IO.FileStream
  • 数据类型,例如 System.Data.DataSet和 DbSet。
  • 高性能类型,例如 System.Numerics.Vector和 Pipelines。

.NET Core 通过实现.NET Standard规范提供 .NET Framework 和 Mono API 的兼容性。

框架

在 .NET Core 之上建立了多个框架:

  • ASP.NET Core
  • Windows 10 通用 Windows 平台 (UWP)
  • Tizen

撰写

.NET Core 包括以下部分:

  • .NET Core 运行时:提供类型系统、程序集加载、垃圾回收器、本机互操作和其他基本服务。 .NET Core 框架库提供基元数据类型、应用编写类型和基本实用程序。
  • ASP.NET 运行时:提供框架以生成基于新式云的 Internet 连接的应用程序,例如 Web 应用、IoT 应用以及移动后端。
  • .NET Core CLI 工具和语言编译器(Roslyn 和 F#):提供 .NET Core 开发人员体验。
  • dotnet 工具:用于启动 .NET Core 应用和 CLI 工具。 它选择运行时并托管运行时,提供程序集加载策略并启动应用和工具。

这些组件采用以下方式分布:

  • .NET Core 运行时 – 包括 .NET Core 运行时和框架库。
  • ASP.NET Core 运行时 – 包括 ASP.NET Core 和 .NET Core 运行时以及框架库。
  • .NET Core SDK – 包括 .NET CLI 工具、ASP.NET Core 运行时以及 .NET Core 运行时和框架。

开放源

.NET Core 属于开放源(MIT 许可证),由 Microsoft 于 2014 年提供给 .NET Foundation。 现在它是最活跃的 .NET Foundation 项目之一。 可由个人和企业自由采用,包括用于个人、学术或商业目的。 许多公司已使用 .NET Core 作为应用、工具、新平台和托管服务的一部分。 其中某些公司对 GitHub 上的 .NET Core 做出了巨大贡献,并作为 .NET Foundation Technical Steering Group(.NET Foundation 技术控制组)的成员,指导产品方向。

针对适应性而设计

与其他 .NET 产品相比,生成的 .NET Core 与它们十分类似,但具有唯一性。 其目的是能够广泛适应新的平台和工作负载。 它提供多个 OS 和 CPU 端口,并可以移植到更多端口。

该产品分为几个部分,使各个部件能够在不同的时间适应新的平台。 必须将运行时和特定于平台的基础库作为一个单元进行移植。 与平台无关的库应在所有平台上按照构建的原样运行。 对于通过减少特定于平台的实现以提高开发人员效率方面,项目存在偏差,但每当可以以此方式全部或部分实现算法或 API 时,都应首选与平台无关的 C# 代码。

人们经常会问,为支持多个操作系统应如何实现 .NET Core。 他们还会问是否存在单独的实现,或是否使用 conditional compilation(条件编译)。 这两者都在用,但强烈偏向条件编译。

可以在下面的图表看出大多数 CoreFX 都是与平台无关的代码,该代码可在所有平台共享。 不限平台的代码可实现为在所有平台上使用的单个可移植程序集。


Windows 和 Unix 实现大小相似。 Windows 具有较大的实现,因为 CoreFX 实现了某些仅适用于 Windows 的功能,如 Microsoft.Win32.Registry,但尚未实现多个仅适用于 Unix 的概念。 你将发现大多数 Linux 和 macOS 实现都是在 Unix 实现中实现的,而特定于 Linux 和 macOS 的实现大小大致相同。

.NET Core 中混合存在特定于平台和与平台无关的库。 可以查看几个示例中的模式:

  • CoreCLR 是特定于平台的。 它建立在内存管理器和线程计划程序等操作系统子系统的基础上。
  • 考虑到每个 OS 上的存储和加密 API 都有所不同,System.IO 和 System.Security.Cryptography.Algorithms 是特定于平台的。
  • 考虑到它们是通过数据结构创建和操作,System.Collections 和 System.Linq 是与平台无关的。

与其他 .NET 实现比较

将 .NET Core 与现有的 .NET 实现进行比较,这可能是了解其大小和形状最简单的方法。

与 .NET Framework 比较

.NET 由 Microsoft 于 2000 年首次发布,而后发展至今。 近 20 年以来,.NET Framework 一直是 Microsoft 出品的主要 .NET 实现。

.NET Core 和 .NET Framework 的主要差异在于:

  • 应用模型 – .NET Core 不支持所有 .NET Framework 应用模型。 具体而言,它不支持 ASP.NET Web 窗体和 ASP.NET MVC,但支持 ASP.NET Core MVC。 已宣布 .NET Core 3 将支持 WPF 和 Windows 窗体。
  • API – .NET Core 包含 .NET Framework 基类库的一个大型子集,但具有不同的组成要素(程序集名称不同;类型上公开的成员在关键用例中不同)。 这些差异需要在某些情况下更改 .NET Core 的端口源(请参阅 microsoft/dotnet-apiport)。 .NET Core 实施 .NET Standard API 规范。
  • 子系统 – .NET Core 实现 .NET Framework 中子系统的子级,目的是实现更简单的实现和编程模型。 例如,不支持代码访问安全性 (CAS),但支持反射。
  • 平台 – .NET Framework 支持 Windows 和 Windows Server,而 NET Core 还支持 macOS 和 Linux。
  • 开放源 – .NET Core 属于开放源,而 .NET Framework 的只读子集属于开放源。

虽然 .NET Core 是唯一的且与 .NET Framework 和其他 .NET 实现大不相同,但使用源或二进制共享技术在这些实施之间分享代码仍很简单。

与 Mono 比较

Mono 是原始的跨平台和 开放源 .NET 实现,于 2004 年首次发布。 可以把它看作是 .NET Framework 的社区克隆。 Mono 项目团队依赖于 Microsoft 发布的开放 .NET 标准(尤其是 ECMA 335),以便实现兼容性。

.NET Core 和 Mono 的主要差异在于:

  • 应用模型 – Mono 通过 Xamarin 产品支持 .NET Framework 应用模型(例如,Windows Forms)和其他应用模型(例如,Xamarin.iOS)的子集。 而 .NET Core 不支持这些内容。
  • API – Mono 使用相同程序集名称和组成要素支持 .NET Framework API 的 大型子集。
  • 平台 – Mono 支持很多平台和 CPU。
  • 开放源 – Mono 和 .NET Core 两者都使用 MIT 许可证,且都属于 .NET Foundation 项目。
  • 焦点 – 最近几年,Mono 的主要焦点是移动平台,而 .NET Core 的焦点是云和桌面工作负载。

关于 .NET Core(.NET Core 指南)相关推荐

  1. 「最简单」的 Core Data 上手指南

    本文讲的是「最简单」的 Core Data 上手指南, 原文地址:The Easiest Core Data 原文作者:Alberto De Bortoli 译文出自:掘金翻译计划 译者:Zheaol ...

  2. iOS开发:Core Animation编程指南

    关于Core Animation Core Animation是iOS与OS X平台上负责图形渲染与动画的基础设施.Core Animation可以动画视图和其他的可视元素.Core Animatio ...

  3. 张高兴的 .NET Core IoT 入门指南:(四)使用 SPI 进行通信

    张高兴的 .NET Core IoT 入门指南:(四)使用 SPI 进行通信 什么是 SPI 和上一篇文章的 I2C 总线一样,SPI(Serial Peripheral Interface,串行外设 ...

  4. efcore调用函数_.net core EF Core调用存储过程的方式

    前言 在这里,我们将尝试去学习一下 .net core EF Core 中调用存储过程. 我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法: ...

  5. [.NET Core].NET Core R2安装及示例教程

    前言 前几天.NET Core发布了.NET Core 1.0.1 R2 预览版,之前想着有时间尝试下.NET Core.由于各种原因,就没有初试.刚好,前几天看到.NET Core发布新版本了,决定 ...

  6. Intel Core Enhanced Core架构/微架构/流水线 (8) - 执行核

    Execution Core Intel Core微架构的执行核是超标量的,且可以乱序处理指令.注意:这里没有使用乱序执行指令,用的是乱序处理指令."处理"在这里包括对指令的寄存器 ...

  7. .net core EF Core 调用存储过程

    在这里,我们将尝试去学习一下 .net core EF Core 中调用存储过程. 我们知道,EF Core 是不支持直接调用存储过程的,那它又提供了什么样的方式去执行存储过程呢?有如下方法: 1.F ...

  8. i3cpu驱动xp_Intel英特尔 Core i3/Core i5/Core i7系列CPU显示驱动 14.46.9.5394版 For WinXP-32...

    简介 [驱动名称]Intel英特尔Core i3/Core i5/Core i7系列CPU显示驱动14.46.9.5394版For WinXP-32 [驱动描述]大家在使用电脑的时候是否都出现过显示驱 ...

  9. i3cpu驱动xp_Intel英特尔 Core i3/Core i5/Core i7系列CPU显示驱动 14.46.9.5394版 For XP-64

    简介 [驱动名称]Intel英特尔Core i3/Core i5/Core i7系列CPU显示驱动14.46.9.5394版For XP-64 [驱动描述]大家在使用电脑的时候是否都出现过显示驱动停止 ...

最新文章

  1. Tomexam在线考试系统 2.1
  2. 【转】使用C#发送Http 请求实现模拟登陆(以博客园为例)
  3. 【深度学习】2021 年了,TensorFlow 和 PyTorch 两个深度学习框架地位又有什么变化吗?...
  4. VTK:直纹面过滤器用法实战
  5. 提交自己开发的MR作业到YARN上运行的步骤
  6. 【Java深入研究】10、红黑树
  7. Qt/C++工作笔记-对vector与QVector中erase操作的进一步认识(区别与联系)
  8. 【报告分享】2020中国CRM指数测评报告.pdf(附下载链接)
  9. day023 常用模块02
  10. linux硬盘类型怎么选,如何选择linux系统安装类型
  11. 目标检测之Selective Search原理简述(转)
  12. oracle plsql 字符串长度,PLSQL SQL
  13. fh 幅频特性曲线怎么画fl_只要有上、下限截止频率fH、fL、中频电压增益和(),就可绘出基本共射放大电路的幅频特性曲线...
  14. vba set语句_零基础学VBA编程06:什么是变量?
  15. 地球经纬度转换为unity球面坐标
  16. 20.4.26工作感想
  17. 2020年执业药师考试,5个锦囊助你做好最后冲刺!
  18. 2020.7.18 T3Ocd(jz暑假训练day4)
  19. 暂时性死区(TDZ)
  20. 辛东方重组百花园传媒 人员大调整

热门文章

  1. 文化中国 系列六:读历史,说帝王
  2. unity3D缓存文件占C盘内存,解决办法
  3. 【转】MUD教程--巫师入门教程1
  4. 获取每个账户最大连续逾期期数
  5. 应届生简历怎么写?应届生制作简历注意事项有哪些?
  6. 冒险岛手游哪个服务器稳定,冒险岛手游现在十个职业哪个后期最强
  7. Django--Models
  8. 易语言多线程大漠多线程模板脚本延时
  9. 一般方程与参数方程求直线交点
  10. 荣耀折叠屏手机如何超越华为?与三星合作就行