微软Ignite 2016 新名词:.NET Standard 2.0
这几天(9月26日-30日)微软Ignite 2016(去年起由 Ignite 取代 TechEd)正在美国如火如荼的召开,乍见一个新名词:.NET Standard 2.0。 我得了一种听到新名词就会焦虑的病,赶紧查数据压压惊…
.NET Team Blog 同步发布了一篇介绍文,可说是目前最详细最权威的数据源,抱着懂个大概就好的心态,整理重点如下。
先用两张图说明为什么没事要搞出一套 .NET Standard 新标准? (注:图片取自 MSDN Blog 文章)
.NET Standard 的核心使命在于解决 .NET 跨平台时基础链接库不一致的问题。.NET 发展至今,已初步实现跨平台, 用 C# 就可以写 Windows、macOS、Linux、iOS、Android 程序。 但如下图所示,.NET Framework BCL、.NET Core Library 与 Xamarin 的 Mono Class Library 各自发展,缺乏统一的界面标准,像是System.Collections, System.IO, System.Xml… 这类性质的基础类别,各家支持程度不一,某些 API 可能在某个平台不存在,又或者 API 界面存在差异。
如果你只专注一种平台,当然可以无视各平台基础链接库的差异,专心学好一种就好。 但如果系统被要求跨平台,差异那怕再小,都会跑出来咬你屁股。 首先,你必须搞懂不同平台的差异,第二,差异提高“跨平台共同链接库/组件”开发的难度。 (脑海中出现一堆恶心的 #if NETCORE … #elif XAMARIN … #endif) 。
过去针对跨平台共享链接库的主推做法是PCL(Portable Class Library),取多个平台的交集,筛选保留各平台都支持的 API,但开发者仍需知道不同平台的差异。.NET Standard 则试图规范一套标准基础链接库 API 界面,各平台依此界面实作出一致的链接库,如此程序代码不需修改即可针对不同平台编译、执行。
即使有 .NET Standard,还是无法逃避各平台支持度不一的现况。.NET Standard 版本号码与 API 完整度成正比,与支持平台范广度成反比。.NET Standard 2.0提供的 API 数目一定比 1.0 多,但如果想涵盖 Windows Phone 8.1,就只能选择 .NET Standard 1.0 – 1.2。 dotnetstd-2
随着 .NET Standard 2.0 制定,.NET Core 与 Xamarin 将在新版加入支持,而 .NET Framework 4.6.1 则已符合 2.0 标准。 有没有注意上表的玄机?.NET Standard 1.4 对应到 .NET Framework 4.6.1、1.5 对 4.6.2,结果 2.0 又倒车回到 4.6.1,原来是基于部署普及率考虑,.NET Standard 2.0 拿掉 1.5/1.6 增加但应用不广的 API,好让 .NET Framework 4.6.1 符合 .NET Standard 2.0。 各位同学,今天我们要介绍的成语是-“削足适履”~(笑 )
以下是 .NET Standard 2.0 的主要涵盖范围,细节则参考 github 上的文件。 .NET Standard 2.0 仍在发展中,未来可能还会有变动。
至于一些与平台高度相关的 API,例如:只有 Windows 才有的 Registry、Reflection Emit 功能不适用 .NET Native、UWP、Xamarin iOS。.NET Standard 采取“需额外安装 NuGet Package 才能使用,在不适用平台执行时抛出例外”的原则,不同的 API 处理方式不一。
如果你需要开发跨平台链接库,官方建议改走 .NET Standard,以降低平台相依性,并允许混合参照 PCL 及 .NET Framework,但 PCL 仍适用特定场合,例如:某些平台不在 .NET Standard 支持之列,PCL 是唯一解。 实作上有个 API Port可侦测程序适用的最低 .NET Standard 标准,再配合检查目标平台是否在该标准支持范围,以便决定标准版本。
完整的 .NET Standard 工具支持将内置于下一版本 Visual Studio “Dev 15″,以 NuGet Package 方式加入参照,而未来 Visual Studio、VSCode、Xamarin Studio 均会提供一线支持。
相关文章
- 微软商店下载的软件在哪个文件夹?
- 微软应用商店下载路径和安装路径在哪?
- 微软商店下载的软件怎么放到桌面?
- 微软应用商店删了怎么恢复?微软应用商店删了后下载安装
- 微软鼠标怎么连接电脑(微软蓝牙鼠标如何配对)
- 微软鼠标驱动是什么?微软鼠标驱动无法安装怎么办?
- 微软商店一直正在获取许可怎么办?Microsoft Store正在获取许可解决
- 分享微软商店一打开就闪退的解决办法
- 360安全浏览器和微软Edge浏览器区别对比
- 微软将于本月14日停止对Internet Explorer 11的支持
- 微软应用商店无法获取出错的解决办法
- Microsoft store下载错误0x80240004的修复方法
- 微软商店下载不了软件/微软商店无法下载应用程序怎么办?
- 微软输入法软键盘怎么调出来?快速启动软键盘的方法
- 微软商店提示Error 0x00000193怎么解决?
- 微软输入法全角和半角的切换方法
相关推荐
-
微软常用运行库合集 V2023.04.24 官方版
微软常用运行库合集是一款公用的DLL运行库,目前已经推出了全新的2023版本,包含了多种不同的运行库,如果你不知道要安装哪个运行库版本,下载这样一个微软常用运行库合集包就足够了。
-
微软Win11 22621.1631(KB5025305)更新补丁 官方版
系统部落4 月 14 日消息,微软今日面向 Windows 11 22H2 的 Release 预览频道成员发布了 Windows 11 Build 22621.1631(KB5025305)更新。更新解决了在错误区域显示任务视图、微软 Edge 浏览器 IE 模式等的问题。本站现在提供补丁包下载。
-
微软Win11 23435(KB5025188)更新补丁包 官方版
微软官方发布了 Win11 Build 23435 预览版更新,提供补丁号为KB5025188,在该版本中用户可以轻松访问照片集,并且Gallery 还可以从文件选择对话框中工作,为插入附件、构建 PowerPoint 平台或制作社交媒体帖子等情况带来同样的易用性。感兴趣的朋友可以下载补丁包。
-
Visual Studio Code(代码编辑器) V1.77.1 最新版
Visual Studio Code一款可以编译web应用程序的免费代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。系统部落为您提供Visual Studio Code(VS编辑器)下载,快来体验吧!
-
微软电脑管家 V1.2.9.2 Beta 官方版
微软电脑管家是由微软自主研发的一款全新桌面安全辅助类工具,结合微软windows系统强大的底层研发能力,搭配微软独有反病毒引擎,全面构建您的电脑防护体系。软件占用小,具备干净、不捆绑的特点,为用户提供电脑体检、反病毒、主页反劫持、电脑垃圾清理等功能。
-
微软应用商店 V22204.1401.3.0 官方最新版
Microsoft Store是微软推出的一款非常好用的应用程序商店,软件资源非常丰富,用户在这里可以轻松地下载到需要的软件和游戏,且下载速度快,不含任何的病毒和流氓软件,还有详细的用户使用评价,有需要的用户快来下载使用吧。




