阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

.NET Standard 2.0:整齐划一的目标

  • 2016-12-01
  • 本文字数:1050 字

    阅读完需:约 3 分钟

最近结束的.NET Connect 2016 大会上,几位微软MVP 针对.NET 标准的内容和未来发展谈论了自己的看法。

在两个月前公布.NET Standard 2.0 时,微软认为新版标准的目标在于为现有的三个主要.NET 平台:.NET Framework、.NET Core,以及Xamarin 提供一个坚实的底层基础,并为未来满足树莓派或IoT 等全新类型设备需求可能需要创建的分支提供支持。

对开发者来说,目前现有三个分支最主要的问题在于难以清楚地知道每个平台具体有哪些功能可用,这个问题会显得极为不便。.NET 开发者GaProgMan认为,这会导致开发者过度使用条件编译(Conditional compilation),此外他还补充说 Portable Class Library (PCL)已经不再那么易于移植了,因为开发者无法轻松确保自己需要的 API 在目标平台上依然可用。根据微软的介绍,使用.NET Standard 取代 PCL 作为编写多平台.NET 库的底层基础可以解决这一问题。

然而微软 MVP Rick Strahl指出,.NET Standard 应当被视作一种用于描述“至少在API 接口方面需要选择哪一具体的实现,例如.NET Core、Mono、Xamarin 或.NET 4.6”的规范。换句话说,.NET Standard 本身并非一种实现,而是由.NET 底层平台实现的。例如他认为,.NET Core 实现了当前版本的.NET Standard 1.6 版,而他认为.NET Core 1.2 将非常接近.NET Standard 2.0,使其成为.NET Standard 1.6 的超集。

为了解释.NET Standard 2.0 到底是什么,Strahl 将其与核心的.NET Base Class Library(BCL)在核心操作系统、运行时,以及语言服务方面进行了对比。其中包括基本类型系统、运行时的加载和查询操作、网络和文件I/O,以及一些额外的API,例如 System.Data。此外还对比了并非.NET Standard 标准的一部分,但基于该标准构建的应用程序框架,例如 ASP.NET、WinForms、WPF 等。

从实现的角度来看,.NET Standard 采取了与传统.NET 略微不同的方法。实际上.NET Standard 针对每个特定平台的实现还提供了可充当类型转发器(Type forwarder)的.NET Standard DLL。应用程序只需要引用类型提供程序(Type provider)DLL,即可将引用转发给能提供所需实现的相应程序集(Assembly)。相比.NET 程序集,这种做法提供了类似的用户体验,但在实施者(Implementer)方面有很大不同,因为它们可以分别提供独立的程序包,而非像.NET 运行时程序包那样提供一个单一的整体。

.NET Standard 2.0 将.NET Standard 1.6 API 的范围增大了不止两倍,预计将于 2017 年 1 季度末发布,并且有可能在正式发布前首先提供预览版本。

查看英文原文.NET Standard 2.0: Setting Expectations Straight

2016-12-01 18:003555
用户头像

发布了 283 篇内容, 共 102.0 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

6个步骤强化 CI/CD 安全

SEAL安全

技术界中的虚拟机、容器和沙箱的关系

FinFish

容器 虚拟机 安全沙箱

华为云Astro的前世今生:用7年时间革新低代码开发观念

华为云开发者联盟

低代码 华为云

彻底搞懂Vue虚拟Dom和diff算法

yyds2026

Vue

数据库独角兽SingleStore:没有HTAP,机器学习和人工智能都是不切实际的

StoneDB

数据库 开源 HTAP StoneDB SingleStore

使用SQL加密函数实现数据列的加解密

华为云开发者联盟

大数据 后端 华为云 数据加密

软件测试 | 测试人员必须掌握的测试用例

测试人

软件测试 自动化测试 测试开发 测试用例

带你了解S12直播中的“黑科技”

华为云开发者联盟

云计算 后端 音视频 华为云 实时直播

火山引擎 DataTester 首推A/B实验经验库,帮助企业高效优化实验设计能力

字节跳动数据平台

大数据 A/B测试

查看、校验、归档…带你掌握openGauss账本数据库

华为云开发者联盟

数据库 后端 华为云

使用EasyCV Mask2Former轻松实现图像分割

阿里云大数据AI技术

深度学习 计算机视觉 图像处理 图像分割 企业号十月 PK 榜

vue的几个提效技巧

yyds2026

Vue

HummerRisk V0.5.1 发布:新增对象存储、优化K8s 资源态势和资源拓扑等

HummerCloud

Kubernetes 云原生 云安全 云原生安全

[力扣] 剑指 Offer 第二天 - 从尾到头打印链表

陈明勇

Go 数据结构与算法 力扣 11月月更

测试大咖漫谈如何搞定软件质量?

测吧(北京)科技有限公司

软件测试

OKR之剑·实战篇03:OKR的跟踪需要有“自己”的节奏

vivo互联网技术

团队管理 OKR 目标管理

计算机网络:以太网与IEEE 802.3

timerring

计算机网络 11月月更

最佳实践 | 用腾讯云AI人像变换给自己一次“跨越年龄的体验”

牵着蜗牛去散步

人工智能 腾讯云 腾讯 腾讯云AI

Dive into TensorFlow系列(2)- 解析TF核心抽象op算子

京东科技开发者

tensorflow TF2 Tensor Op

实时云渲染vs本地渲染,哪个更好用?

Finovy Cloud

云渲染 实时云渲染

OceanBase 首席科学家阳振坤博士入选2022 年度“CCF王选奖”

OceanBase 数据库

浪潮信息工程师:谈一谈设备透传虚拟机启动慢背后的原因及其优化方法 | 第 51 期

OpenAnolis小助手

Linux 系统运维 内核 龙蜥大讲堂 浪潮

count(*)查询性能很差?用这5招轻松优化

小小怪下士

Java 程序员 后端

多视角碰撞,探索 Serverless 企业落地更多可能性丨阿里云用户组厦门站

云布道师

阿里云 云原生

SREWorks v1.3 版本发布 | 插件机制发布

阿里云大数据AI技术

大数据 运维 插件

PLC与SCADA的什么区别和联系

2D3D前端可视化开发

物联网 PLC 工业控制 web组态 SCADA

Paddle Graph Learning (PGL)图学习之图游走类node2vec模型[系列四]

汀丶人工智能

图神经网络 11月月更

聊聊Vuex原理

yyds2026

Vue

【LeetCode】字符串相加Java题解

Albert

算法 LeetCode 11月月更

阿里云产品经理刘宇:Serverless 的前世今生

云布道师

阿里云 Serverless 云原生

使用 SAP Cloud Application Programming 编程模型开发一个图书管理 OData 服务

Jerry Wang

云原生 CAP SAP 企业级应用 11月月更

.NET Standard 2.0:整齐划一的目标_.NET_Sergio De Simone_InfoQ精选文章