.NET Standard 2.0:整齐划一的目标
来源:互联网 发布:淘宝客服岗位业绩贡献 编辑:程序博客网 时间:2024/06/15 19:13
在两个月前公布.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季度末发布,并且有可能在正式发布前首先提供预览版本。
原文地址:http://www.infoq.com/cn/news/2016/12/dotnet-standard-20-goals
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- .NET Standard 2.0:整齐划一的目标
- .NET Standard
- .NET Core 2.0及.NET Standard 2.0
- .NET Standard 2.0 特性介绍和使用指南
- .NET Standard 2.0 特性介绍和使用指南
- 一个还算简单的微信消息SDK(基于.Net Standard 2.0)
- 1.2万人的阅兵规模、数百台装备是如何达到整齐划一的?
- .Net Standard 2.0和.Net Core2.0正式版上线简介
- .NET Coding Standard/Guidline
- .NET Standard@Xamarin.Forms
- .NET Standard@Xamarin.Forms
- 理解 .NET Platform Standard
- 微软正式发布XAML Standard与.NET Standard 2.0:现已提供下载
- Aspose.Words 重要改变:Xamarin 和.NET Standard 2.0
- .NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别
- 2.1 .NET Framework的部署目标
- VC++.NET 如何更改目标 .Net Framework 的总结
- .Net Standard 2.0 新增1.5万API 已实现大部分.net framework 4.6方法
- 一款全新的基于IntelliJ和ReSharper的跨平台.NET IDE
- Asp.Net Core 通过中间件防止图片盗链
- 微软的FreeBSD社区推广活动 北京站,你没看错!微软现在是一家名副其实的开源公司
- C程序编译执行过程
- 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
- .NET Standard 2.0:整齐划一的目标
- 因缺少jedis.jar包报"java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool..."问题
- 在ASP.NET Core中实现一个Token base的身份认证
- 八幅漫画理解使用JSON Web Token设计单点登录系统
- 如何用TypeScript开发微信小程序
- 在ASP.NET Core中使用百度在线编辑器UEditor
- 外媒:微信小程序顺应“APP中启动APP”的行业潮流
- 微软Ignite大会约起来
- 搭建高可用的rabbitmq集群 + Mirror Queue + 使用C#驱动连接