茶叶网站建设一般的风格,小企业管理系统,关于域名用于接入境外网站说明书,wordpress火车头采集免费版在.Net Core之前#xff0c;选择编译目标是一个相对简单的操作。现在#xff0c;开发人员面临多种可能#xff0c;选择一个目标不再那么显而易见了。要想对.Net Core有一个全面的了解#xff0c;就要了解两个主要的概念#xff1a;“目标框架别名#xff08;Target Frame… 在.Net Core之前选择编译目标是一个相对简单的操作。现在开发人员面临多种可能选择一个目标不再那么显而易见了。要想对.Net Core有一个全面的了解就要了解两个主要的概念“目标框架别名Target Framework Moniker”和.Net Standard。 目标框架别名TFM 目标框架别名是.NET Core中应用程序所针对的框架类型版本号的ID。我们可以把别名分成两个不同的类型跨平台的目标.Net Standard和平台实现如.Net 4.6、.Net Core 1.0和Xamarin。 .Net Standard .Net Standard库是.Net Core可移植性的核心。其目的是定义标准的API集。这些API如集合、线程、反射是由.Net Core、.Net 4.5、Xamarin和Mono等平台实现的。它们是开发人员用来构建自己的库和应用程序的基本构建块。 从1.0到2.0.Net Standard的每个版本都定义了一组特定的库。下面的代码直观地展示了标准库和平台之间的关系 interface INetStandard10
{void Primitives();void Reflection();void Tasks();void Collections();void Linq();
}interface INetStandard11 : INetStandard10
{void ConcurrentCollections();void InteropServices();
}interface INetFramework45 : INetStandard11
{//特定于平台的APIvoid AppDomain();void Xml();void Drawing();void SystemWeb();void WPF();void WindowsForms();void WCF();
} CoreFx GitHub库提供了所有API的列表及其相关的netstandard版本。 框架/运行时别名 除netstandard之外的别名是可以让应用程序在其中运行的、实际的运行时环境。对于新应用程序常用的别名如下 .NET Core - netcoreapp.NET Framework - netUniversal Windows Platform - uapXamarin IOs - xamariniosMono Android - monoandroid 下面是一个简单的平台选择指南 应用开发人员编码应以netcoreapp1.0、uap10.0、net452、xamarinios等TFM为目标平台 包/库作者尽量以netstandard的最低版本为目标那样可以在所有支持那个netstandard版本以及更高版本的平台上运行。 .Net Core和netcoreapp1.0比较 虽然表面上看起来相似但.Net Core和netcoreapp1.0的意思完全不同。.Net Core这个叫法中没有版本号通常用于描述实现.Net模块化、解决多个平台之间二进制兼容性问题的总体方案。但是netcoreapp1.0有更具体的意义。它是可以在Windows、Mac OS和Linux上运行的跨平台运行时的别名。简而言之.Net Core既可以指跨平台的方案也可以指跨平台的运行时这要视情况而定。 关于这一点一个具体的应用场景是从Asp.Net迁移到Asp.Net Core时依赖项不支持.Net Core的问题。如果只是想以.Net Framework为目标平台则这种迁移是可能的。例如这让你可以使用Asp.Net Core但仍然以.Net 4.6为目标平台。 原文地址http://www.infoq.com/cn/news/2016/10/dotnet-core-standard-monikers .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注