.NET Core和.NET Standard有什么不同_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > .NET Core和.NET Standard有什么不同

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

 2017/10/13 14:25:54    程序员俱乐部  我要评论(0)
  • 摘要:英文原文:.NETCoreand.NETStandard:WhatIstheDifference?近日,微软发布了.NETCore2.0,但是开发人员中间仍然存在一些疑惑,就是.NETCore、.NETStandard、Xamarin和.NETFramework有什么不同。.NETFramework用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的ASP.NET应用程序。它是第一个托管框架。Xamarin是一个用于构建iOS、Android、macOS和桌面应用程序的框架。
  • 标签:.net net 什么
class="topic_img" alt=""/>

  英文原文:.NET Core and .NET Standard: What Is the Difference?

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

  .NET Framework 用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的 ASP.NET 应用程序。它是第一个托管框架。

  Xamarin 是一个用于构建 iOS、Android、macOS 和桌面应用程序的框架。

  .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。

发表评论
用户名: 匿名