.Net Core简介

目的:

.NET Core是为了重新启动某些Framework组件而为其他人提供跨平台工作的机会。由于.NET Framework主要以托管(C#)代码为基础构建,因此这些部分不需要更改代码即可移至.NET Core。依赖于Windows特定组件的库必须被移除或重构以使用跨平台替代方案。这同样适用于您的应用程序。

历史:

.NET在2000年以前就已经出现了。框架代码在过去几年中已经得到了巩固,开发人员也从中受益。已经被移植到Core的大部分Framework代码都没有改变。这使.NET Core在构建应用程序的可靠框架方面领先一步.NET Core也完全由Microsoft支持还有越来越活跃的开源社区例如红帽组织这降低了为您的应用程序使用Core的风险。
为了理解.NET Core,它有助于理解.NET Framework。微软在21世纪初发布了.NET Framework。.NET Framework是一个仅限于Windows的开发框架,它在最底层提供了内存管理,安全性,异常处理和许多其他功能。.NET框架附带一大堆库,可执行从XML解析到HTTP请求的各种功能。它还支持几种语言,并将它们编译成相同的通用中间语言; 任何语言都可以使用任何其他语言构建的库。这些关键概念也出现在.NET Core中。
2016年,微软收购了Xamarin并发布了.NET Core 1.0。之前Xamarin已经移植了.NET框架的大部分内容来运行在基于Linux / Unix的操作系统上。一些代码可以在.NET Framework,Xamarin和新的.NET Core之间共享,但编译后的二进制文件不能。.NET Core的一部分努力是创建一个标准化的平台,允许所有.NET实现共享相同的库。

优点

  • ASP.NET Core和ASP.NET之间的性能差异是几个数量级大部分的ASP.NET被传统的System.Web库所限制。.NET Framework支持旧版本的ASP.NET项目,而且这个约束限制了ASP.NET的发展。微软决定重写整个架构。这意味着打破变化,但结果是值得的。
  • 如果正在编写Web应用程序或服务,那么ASP.NET Core是一个很好的搭建平台。它具有出色的性能和低内存占用。许多功能可以使您的应用程序更容易开发和维护。

差异:

.NET Core不仅是Linux和Mac的.NET Framework。微软并没有移植所有的.NET Framework,对于ASP.NET客户来说,ASP.NET团队是.NET Core的驱动因素。MVC,Web API和SignalR都可以在.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, 部分类型)。
现在的.NET Core 1.0版本是一个很小的核心,APIs和工具也并不完整,但是随着.Net Core的不断完善,补充的Apis和创新也会一起整合到.NET Framework中。也就是说,.NET Core微软会同时更新.NET Framework和.NET Core,他们就像俩兄弟,共同努力致富(致谁的富?当然是.NET开发者们),实现所谓的天下大同,也就是.NET 标准2.0

组成:

  • .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也是通过相同程序启动。

特性:

  • 跨平台
    可以在Windows,macOS,Linux上运行

  • 灵活的部署机制

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

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

  • 命令行工具
    .NET程序所有的运行脚本都可以用命令行工具执行(cmd,bash)这里有几个常见的donnet命令
  • 兼容性

      通过.NET Standard Library与.NET Framework,Xamarin,Mono兼容

  • 开源

      .NET Core从属于.NET基金会,由微软进行官方支持。使用MIT和Apache 2开源协议,文档协议遵循CC-BY

猜你喜欢

转载自blog.csdn.net/a444894151/article/details/80812779
今日推荐