前几天我在一个群里看到有关这方面的讨论,最后感觉讨论的不是很清晰,有幸的是我们的项目去年就开始迁移NetCore的调研了,我个人多多少少也是有过这方面的研究。下面我将说一下我自己对着三个的认识如果有不足的地方,请大家指出。

大家的讨论是这个问题引起的如下:

NetCore

 Net Framework

Net Standard

最终大家想了解的是这些的区别是什么。

  Net Framework 是什么

    1.Net Framework 是Net的一种实现,在此类库上我们可以使用C#,VB,F#进行程序编写,主要用于构建Windows 下的应用程序

    2.有两部分组成部分:

i.      公共语言运行时(CLR)处理应用程序

ii.      基础类库(BCL)这是可重用的代码库,使用其编写进行应用程序编写

    3.在执行的过程中.Net编写的代码将会编译成一种称为中间语音(IL)存储形式以DLL和EXE后缀名结尾的文件为主,当程序运行时CLR会编译转换为机器代码。

    4. Net Framework 本身不是跨平台的也就是话说仅限于运行在Windows 平台,想要跨平台需要借助第三方。

  Net Core 是什么

    1.Net Core 的出现就是为了适应软件开发的趋势,因为各种不同的设备还有云计算的出现,其他的操作系统使用量也有所增加,如果Net 不发生改变也就意味着市场将会越来越小。Net Core的出现用于满足当前以及未来软件开发的需求

    2.NetCore是一个全新的框架,是.Net的跨平台的实现,它和Net Framework有很多共同的特性,这也就意味着Net Framework从业者转到Net Core 将会变的很简单。

    3.Net Core的所有方面都是开源的,无论是类库,运行时,编译器。NET Core3.0之后支持了C#,VB,F#。

  Net Standard 是什么,

    1.    Net Standard 是一个规范,它定义了Net Framewoek和Net Core必须实现的Api,它的出现为各种平台上开发的.Net人员解决了代码共享问题,但是仅用于开发类库,意思就是说如果你的类库是Net Standard规范的,那么此类库既可以是Net Framewoek也可以是Net Core类库。

    2.    微软提供的的图表详细说明了各个不同版本的兼容情况

i.      如果我们的类库是NET Standard 2.0版本的如果想在Net Framework和Core两种实现中使用,则根据此图表,我们必须为.NET Core项目选择2.0版本和NET Framework 4.6.1的版本

                  

  总结:

    从上面我们可以看出,.Net 是一种标准,而Net Framework 和NetCore 是.Net 的一种实现。而Net Standard 是一个规范。

  题外话:

    作为微软技术站的从业人员,微软这几年的动作也告诉我们我们需要多方面的学习才能实现更高的价值。

Net Framework,Net Core 和 Net Standard 区别的更多相关文章

  1. 一张图搞定 .NET Framework, .NET Core 和 .NET Standard 的区别

    最近开始研究.NET Core,有张图一看就能明白他们之前的关系. 上图己经能够说明.NET Framework和.NET Core其实是实现了 .NET Standard相关的东西,或者说Frame ...

  2. 你不得不知道的 .NET CORE —— .NET Framework, .NET Core 和 .NET Standard 的区别

    .NET Framework 和 .NET Core 是平台应用框架,而 .NET Standard 是 .NET 底层库.因此只要用 .NET Standard 工程来写的代码可以直接在上层的平台应 ...

  3. .NET Core和.NET Standard 区别与联系

    每一种托管实现(如Xamarin..NET Core或.NET Framework)都必须遵循.NET Standard实现BCL..NET STANDARD LIBRARY是.net 标准库,.NE ...

  4. 通俗易懂,什么是.NET/.NET Framework/.NET Core/.Net Standard?

    什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包 ...

  5. .NET Core、.NET Standard、Xamarin和.NET Framework对比

    近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core..NET Standard.Xamarin和.NET Framework有什么不同. .NET F ...

  6. DotNet .Net Framework与Net Core与Net Standard 以及.NET5

    Net Framework 是什么 1.Net Framework 是Net的一种实现,在此类库上我们可以使用C#,VB,F#进行程序编写,主要用于构建Windows 下的应用程序 2.有两部分组成部 ...

  7. .NET Core和.NET Standard

    作为.NET家族的最新成员,有很多关于.NET Core和.NET Standard的误解,以及它们于.NET Framework之间的区别.在这篇文章,我会准确的解释他们究竟是什么,并看看何时应选择 ...

  8. .NET Standard - 揭秘 .NET Core 和 .NET Standard[转自MSDN]

    作为 .NET 系列的最新成员,.NET Core 和 .NET Standard 的概念及其与 .NET Framework 的区别并不十分明确.在本文中,我将准确介绍每个产品及其适用场景. 在详细 ...

  9. .NET Core和.NET Standard有什么不同

        近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core..NET Standard.Xamarin和.NET Framework有什么不同. .N ...

随机推荐

  1. JS实现数组排序的方法

    前言 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,当然排序也是算法中的一种,javascript内置的sort函数是多种排序算法的集合,数组在原数组上进 ...

  2. openstack问题记录

    先去查看对应的日志:/var/log/,再来排查错误 1.实例处于错误状态 解决办法: 1.使用openstack hypervisor list查看 2.然后openstack hypervisor ...

  3. Java 学习笔记之 Synchronized锁对象

    Synchronized锁对象: Synchronized取得的锁都是对象锁,而不是把一段代码或方法当作锁,哪个线程执行带synchronized关键字的方法,哪个线程就持有该方法所属对象的锁,那么其 ...

  4. Kafka 学习笔记之 High Level Consumer相关参数

    High Level Consumer相关参数 自动管理offset auto.commit.enable = true auto.commit.interval.ms = 60*1000 手动管理o ...

  5. Android开发——实现子线程更新UI

    Android中线程按功能分的话,可以分为两个,一个是主线程(UI线程),其他的都是子线程 主线程不能执行那些耗时过长的代码或任务(执行耗时过长的代码会出现应用未响应的提示),所以都是使用子线程来执行 ...

  6. BeetleX服务网关之限流和缓存

    限流和缓存相关是网关中两个非常重要的功能,前者是保障服务更可靠地运行,后者则可以大大提高应用的吞吐能力.Beetlex.Bumblebee微服务网关提供了两个扩展插件来实现这两个功能,分别是Beetl ...

  7. 微人事 star 数超 10k,如何打造一个 star 数超 10k 的开源项目

    看了下,微人事(https://github.com/lenve/vhr)项目 star 数超 10k 啦,松哥第一个 star 数过万的开源项目就这样诞生了. 两年前差不多就是现在这个时候,松哥所在 ...

  8. Windows内核编程时的习惯与注意事项

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 一.内核编程注意细节: 在头文件中使用的是 <ntddk.h ...

  9. python编程基础之二十二

    字典:字典属于可变对象,但是不属于序列,内部是通过哈希方式存储的,内部保存的是一个个键值对key:value 字典的键是唯一的, 字典查找速度比较快 d1 = {}  #括号里面用键值对表示 d2 = ...

  10. IMongoQuery的使用-C#

    一.Mongodb的IMongoQuery的使用 引用命名空间:MongoDB.Driver;MongoDB.Driver.Builders; Query.All("name",  ...