.Net Core及.Net Standard主要概念回顾

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

{

//特定于平台的API

void AppDomain();

void Xml();

void Drawing();

void SystemWeb();

void WPF();

void WindowsForms();

void WCF();

}

CoreFx GitHub库提供了所有API的列表及其相关的netstandard版本。

框架/运行时别名

除netstandard之外的别名是可以让应用程序在其中运行的、实际的运行时环境。对于新应用程序,常用的别名如下:

.NET Core - netcoreapp

.NET Framework - net

Universal Windows Platform - uap

Xamarin IOs - xamarinios

Mono 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为目标平台。

本文转自d1net(转载)

时间: 2024-09-14 17:02:19

.Net Core及.Net Standard主要概念回顾的相关文章

How to debug .NET Core RC2 app with Visual Studio Code on Windows?

Simone Chiaretta (http://codeclimber.net.nz/archive/2016/05/20/How-to-debug-NET-Core-RC2-app-with-Visual-Studio.aspx) So, you installed .NET Core RC2 , you followed the getting started tutorial and you got your "Hello World!" printed on your com

ASP.NET Core学习之一 入门简介

一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的"问题",是简单的问题,对,就是简单,就是因为觉得简单被忽略的东西,恰恰这才是最重要的. 1.学习资料 首先,介绍下哪里可以获得学习资料 英文官网,最好的文档,英语得过硬 https://docs.microsoft.com/en-us/aspnet/core/ 可惜当年英语就是马马虎虎过来的

负载均衡进阶:SLB常见问题解决方法

摘要:在由和阿里云网络团队联合主办的2017阿里云网络技术在线高峰论坛上,阿里云技术专家添毅分享了网络产品部根据客户和阿里云运维的反馈提炼出的几大最主要和最常见的在使用SLB产品中发生的问题,并为大家介绍了针对这些常见问题的相应处理方法.想知道如何借助SLB构建高可用系统以及健康检查是如何实现的,本文不容错过! 本文内容根据演讲嘉宾分享视频以及PPT整理而成. 本次的分享将会主要围绕以下5个部分 基本概念回顾 如何构建高可用系统 选择性能共享型还是性能保障型实例 为什么健康检查异常 为什么负载不

.NET3.5 GDI+图形操作1

前言: 本文章转载自本人刚刚买的<ASP.NET 3.5从入门到精通>这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些 失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行 会出现些显示问题,本人更改了其中的一些代码.本文章经历昨晚本人五个小时的手打而成 (且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话 说:好记性不如烂笔头,把书的内容手打出来

CoreAnimation(CA)

开发者真会玩,原来我看到CA都懵了.啥是CA?原来就是Core Animation.哎,读书少啊,被虐成了. 进入正题:开始学习Core Animation 先理解一个概念:图层(CALayer).如果理解图层的直接绕道而行就行了. 图层:是动画发生的场所,包括UIView动画都发生在图层中.你也许会问图层和UIView有啥区别??????区别在于: 我们可以自定义图层,重写绘制方法,从而实现绘制图层的目的,图层也有层次关系,有自己的子图层.说了貌似UIView也有吧.对的.这是共有的. 真正的

技术分享:如何用Solr搭建大数据查询平台

0×00 开头照例扯淡 自从各种脱裤门事件开始层出不穷,在下就学乖了,各个地方的密码全都改成不一样的,重要帐号的密码定期更换,生怕被人社出祖宗十八代的我,甚至开始用起了假名字,我给自己起一新网名"兴才",这个看起来还不错的名字,其实是我们家乡骂人土话,意思是脑残人士-. -_-|||额好吧,反正是假的,不要在意这些细节. 这只是名,至于姓氏么,每个帐号的注册资料那里,照着百家姓上赵钱孙李周吴郑王的依次往下排,什么张兴才,李兴才,王兴才--于是也不知道我这样"兴才"了

solrcloud replica collection core shard slice 概念讲解

solr4.0 正式发布有一段时间了,目前是BETA版,从ALpha版到beta新增加了collection的概念,本文就Solr4.0中的多个索引相关概念再做详细的说明.本文以beta版为基础 solr4.0 的所以继承Lucene的分段索引方式,采用了多shard的方式以提高在分布式云环境下的高性能要求的瓶颈.对于一个完整的文档集,将被分布到多个shard中进行索引存储,每个shard相对独立,有自己独立的indexwriter和searcher.shard是对完整文档集索引 分片(块)处理

《Spark大数据分析:核心概念、技术及实践》Spark Core

本节书摘来自华章出版社<Spark大数据分析:核心概念.技术及实践>一书中的第1章,第节,作者穆罕默德·古勒(Mohammed Guller)更多章节内容可以访问"华章计算机"公众号查看. Spark Core Spark是大数据领域最活跃的开源项目,甚至比Hadoop还要热门.如第1章所述,它被认为是Hadoop的继任者.Spark的使用率大幅增长.很多组织正在用Spark取代Hadoop. 从概念上看,Spark类似于Hadoop,它们都用于处理大数据.它们都能用商用硬

Windows Server 2012 R2 Standard搭建ASP.NET Core环境图文教程_实用技巧

前言: 随着ASP.NET Core 1.0的发布,论坛里相关的文章也越来越多,正好有时间在测试环境上搭建 ASP.NET Core的发布环境,把过程中遇到的问题写给大家,以便有用到的朋友需要. 环境: Windows Server 2012 R2 Standard with Update MSDN 链接:ed2k://|file|cn_windows_server_2012_r2_with_update_x64_dvd_6052725.iso|5545705472|121EC13B53882E