2019独角兽企业重金招聘Python工程师标准>>>

前段时日微软(Microsoft)正式发布了.NET Core 2.0,在很多开发社区中反响不错。但还是有一些开发者发出了疑问,.NET Core、Xamarin、.NET Standard和.NET Framework之间有哪些不同呢?本文就为大家简单描述一下这四者之间的区别。

.NET Core

.NET Core是免费、跨平台的,是托管框架的开源实现。它支持4种类型的应用程序:控制台、ASP.NET Core、云和通用Windows平台(UWP)。Windows Forms和Windows Presentation Foundation(WPF)并不包含在.NET Core中。
从技术上讲,.NET Core仅支持控制台应用程序。ASP.NET Core和UWP是以.NET Core为基础构建的应用程序模型。
与.NET Framework不同,.NET Core没有作为Windows组件考虑。因此,更新是以NutGet包的形式,而不是通过Windows Update。由于.NET Core运行时安装成了App-Local,而应用程序升级是通过包管理器完成的,所以应用程序可以关联特定的.NET Core版本以及单独升级。

.NET Standard

托管框架的每一种实现都有一套自己的基类库。基类库(BCL)包含诸如异常处理、字符串、XML、I/O、网络和集合这样的类。
.NET Standard是一项实现BCL的规范。由于.NET实现需要遵循这项规范,所以应用程序开发人员就不用担心每一种托管框架实现的BCL不同。
框架类库(FCL),如WPF、WCF、ASP.NET,不包含在BCL中,因此,也就不包含在.NET Standard中。
.NET Standard与.NET实现之间的关系就和HTML规范与浏览器之间的关系一样。后者是前者的实现。
因此,.NET Framework、Xamarin和.NET Core,每一种托管框架都实现了.NET Standard中的BCL。随着计算机工业不断推出新的硬件和操作系统,将来还会出现新的.NET托管框架。该标准让应用程序开发人员知道,他们可以依赖于一套始终如一的API。
每个.NET版本都对应一个.NET Standard版本。
API一致,将应用程序移植到不同的托管实现以及提供工具都会更简单。
.NET Standard被定义为一个单独的NuGet包,因为所有的.NET实现都必须支持它。工具变得简单了,因为对于特定的版本,它们有一套相同的API。你还可以针对多个.NET实现构建一个库项目。
你还可以构建特定平台API的.NET Standard封装器。

.NET Standard vs 可移植类库
可移植类库做的不是同一件事吗?
可移植类使用多个平台均都支持的通用API。因此,支持的平台越多,可用的API就越少,而且,对于特定的平台组合,很难知道到底支持哪些API。对于一个新平台,已有的PCL必须重新编译。PCL还需要微软针对每个平台创建一个新的框架实现分支。
由于.NET Standard确定了API,而不是一个实现,所以不需要重新编译应用程序。任何新发布的.NET实现都实现了必须的库。应用程序不需要重新编译就可以运行在新的硬件平台或操作系统上。从理论上讲,在调用API时可能会捕获到NotSupportedException异常,但那种情况应该很少见。

小结

  • .NET Standard是一项API规范,每一个特定的版本,都定义了必须实现的基类库。
  • .NET Core是一个托管框架,针对构建控制台、云、ASP.NET Core和UWP应用程序进行了优化。每一种托管实现(如Xamarin、.NET Core或.NET Framework)都必须遵循.NET Standard实现BCL。
  • .NET Framework用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的ASP.NET应用程序。它是第一个托管框架。
  • Xamarin则是一个用于构建iOS、Android、macOS和桌面应用程序的框架。

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月31日

转载于:https://my.oschina.net/u/3279502/blog/1550085

.NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别相关推荐

  1. ASP.NET Core中GetService()和GetRequiredService()之间的区别

    上篇文章<在.NET Core 3.0中的WPF中使用IOC图文教程>中,我们尝试在WPF中应用.NET Core内置的IOC进行编程,在解析MainWindow的时候我用了GetRequ ...

  2. .NET Framework、 .NET Core、.NET Standard区别。

    感谢书籍<ASP.NET Core 技术内幕与项目实战>及其作者杨中科. .NET开发平台是:.NET Framework. .NET Core.Xamarin/Mono的统称 .NET ...

  3. 【转】Net Framework,Net Core 和 Net Standard 区别

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

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

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

  5. 揭示.NET Core和.NET Standard

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

  6. .NET Standard - 论 .NET Core 和 .NET Standard关系

    .NET Standard - 论.NET Core 和 .NET Standard关系 作为 .NET 系列的最新成员,.NET Core 和 .NET Standard 的概念及其与 .NET F ...

  7. ASP.NET Core 中的 ORM 之 Entity Framework

    目录 EF Core 简介 使用 EF Core(Code First) EF Core 中的一些常用知识点 实体建模 实体关系 种子数据 并发管理 执行 SQL 语句和存储过程 延迟加载和预先加载 ...

  8. .net Framework各个版本之间的发展

    原文:.net Framework各个版本之间的发展 上个星期看到了.NET 4.0框架退休日期逐渐临近文章,发现自己一直在使用NET  FrameWork,身为一个NET程序员,里面大概的区别自己还 ...

  9. Xamarin.Android开发实践(十四)

    原文:Xamarin.Android开发实践(十四) Xamarin.Android之ListView和Adapter 一.前言 如今不管任何应用都能够看到列表的存在,而本章我们将学习如何使用Xama ...

最新文章

  1. adb: unable to connect for root: more than one device/emulator
  2. uiautomator 代码记录 :BT接收测试
  3. Kubernetes安装之证书验证
  4. Java基础学习总结(10)——static关键字
  5. 卫星导航技术主要应用领域有哪些?
  6. linux 添加用户并指定shell类型
  7. 欧锦赛球星谱:帕克领豪阵 诺天王对决加索尔
  8. oracle 10g/11g 命令对照,日志文件夹对照
  9. 0007-Reverse Integer(整数反转)
  10. mp4格式文件转码后处理(qt-faststart工具介绍)
  11. ogc是一个非营利性组织_非营利组织的软件资源
  12. 【课题总结】OpenCV 抠图项目实战(12)源程序代码
  13. 面试官:备战年终,这些面试考点,请你牢牢记住
  14. PS改变证件照片背景颜色
  15. python写抽奖转盘_python实现大转盘抽奖效果
  16. java玫瑰花代码_给爱人的玫瑰花表白程序代码–Java版 | 学步园
  17. JZOJ5773 简单数学题
  18. Linux下基于epoll+线程池高并发服务器实现研究
  19. 〖Python零基础入门篇④〗- Pycharm插件安装与常用的插件
  20. EFS加密文件重装系统无法打开图标带小锁显示绿色解密

热门文章

  1. office起动缓慢_怎么解决Office2016启动特别慢?
  2. oppoa5降级教程_OPPOR11S线刷降级旧版本可以吗?Colors版降到3.2没问题
  3. 离散型随机变量-Discrete Random Variables
  4. JAVA 如何将class文件转换成java文件
  5. 办公室设计公司关于办公室装修全过程解剖
  6. 定义一个方法,使用随机的字母+数字生成一个6位数的密码
  7. 计算机老师新年贺卡祝福语,老师的新年贺卡祝福语
  8. 学习资料怎么打印,能用手机直接打印学习资料
  9. 如何将图片中的文字进行提取并编辑
  10. ThinkPHP5 实现短信验证码注册功能