HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

  • 2016-10-09
  • 本文字数:1188 字

    阅读完需:约 4 分钟

在.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 为目标平台

查看英文原文 Reviewing Key Concepts in .Net Core and .Net Standard

2016-10-09 19:003944
用户头像

发布了 1008 篇内容, 共 389.8 次阅读, 收获喜欢 344 次。

关注

评论

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

语音数据集:推动AI语音技术的核心力量

来自四九城儿

AnyGo for Mac(虚拟定位软件) 6.9永久激活版

mac

苹果mac Windows软件 虚拟定位软件 AnyGo

【教程】制作 iOS 推送证书

雪奈椰子

软件测试/人工智能丨Spark开发分布式造数,构建大规模测试数据

测试人

人工智能 软件测试

Wireshark使用技巧

小齐写代码

mac专业视觉特效包处理工具 FxFactory pro 8 激活最新版

mac大玩家j

Mac软件 视觉特效插件

区块链铭文系统开发详情

l8l259l3365

2024年程序员必须掌握的10款开发工具

伤感汤姆布利柏

敏捷开发 低代码 开发工具 测试工具 前端开发工具

浪潮云连续2年跻身中国分布式云市场领导者象限

云计算 数据云

如何为3D模型导入材质贴图

3D建模设计

3D渲染 纹理贴图 材质编辑

语音数据集:AI语音技术的基石

来自四九城儿

KaiwuDB 获评信通院 2023 大数据“星河”标杆案例

KaiwuDB

KaiwuDB “星河”标杆案例

3D模型材质丢失怎么办?

3D建模设计

3D渲染 材质贴图 材质编辑

优化大模型的关键策略

百度开发者中心

大模型 深度学习、

从根上理解elasticsearch(lucene)查询原理(1)-lucece查询逻辑介绍

EquatorCoco

Elastic Stack 查询 优化工具

OpenHarmony创新赛人气投票活动,最佳人气作品由你来定!

OpenHarmony开发者

OpenHarmony

分布式基础概念-消息中间件[RabbitMQ]

派大星

Java 面试题

注册中心元数据的应用

姚秋实(Nacol)

Java 架构 配置中心 元数据 metadata

大算力与大模型的融合之力

百度开发者中心

nlp 大模型

31 | 深度和广度优先搜索:如何找出社交网络中的三度好友关系

鲁米

软件测试/人工智能/PyTorch技术在软件测试中的应用

测试人

人工智能 软件测试

从互联网到云计算再到 AI 原生,百度智能云数据库的演进

百度Geek说

人工智能 云计算 云原生 企业号12月PK榜

低多边形植物模型法线贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理 材质编辑

Fine-tuning: 一种针对大模型的优化策略

百度开发者中心

nlp 大模型

软件测试/人工智能丨掌握视觉CV处理技术对软件测试工作的帮助

测试人

人工智能 软件测试

持续测试性能的方法

敏捷开发

DevOps 性能测试 自动化测试 CD 持续测试

【等保】安徽省等保测评机构名单看这里!

行云管家

等保 等级保护 等保测评 安徽

云原生之旅:一年的变革、成长与启示

熬夜磕代码、

新型生成式 AI 助手 Amazon Q 为 IT 专业人士与开发人员提供有力支持(预览版)

亚马逊云科技 (Amazon Web Services)

re:Invent Amazon EC2 生成式人工智能 Amazon Lambda Amazon Chatbot

语音数据集:为AI注入听觉的力量

来自四九城儿

华为云CodeArts Artifact:保障制品质量与安全的最佳选择

华为云PaaS服务小智

云计算 软件开发 华为云

.Net Core及.Net Standard主要概念回顾_.NET_Pierre-Luc Maheu_InfoQ精选文章