位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 跨平台基础知识以及必知的关键术语

提问人:刘团圆发布时间:2020-12-09

    跨平台程序就是可运行在多个操作系统上的程序,这里的操作系统可以是Microsoft Windows、Android、macOS和Linux等。创建跨平台程序的目标是,只编写程序一次,然后在支持的操作系统上编译,部署该程序后,代码在每个目标操作系统上以相同的方式执行,并表现出一致的行为。在过去,即使使用了开源库(如Mono或Java)也很难实现这个目标,而且如前所述,如果使用完整的.NETFrameworic,并不能真正地创建跨平台的程序。面临的许多复杂问题源于跨平台代码在使用操作系统服务(如磁盘I/O、安全协议和网络访问)时,对不同操作系统的服务之间存在的细微差别进行处理的方式。

    随着程序员开始将更多注意力放在编写能够轻松跨平台运行的C#代码上,考虑这些为数众多的“必知”概念和术语,有助于打下坚实基础。下表列举并描述了这些关键术语。

关键术语

描述

硬件平台

x86、64位、ItaniumARM 

软件平台

操作系统:WindowsLinuxAndroidmacOSiOS 

跨平台

编写代码一次,当针对目标平台编译代码后,就能在任何支持的硬件和软件平台上运行代码

生态系统

社区资源、开发工具和运行时软件的总称

堆找(stack)

在一起使用的硬件、软件和生态系统,用来构建和运行程序,如Windows堆栈、Linux堆找等

API

应用程序编程接口(Application Programming Interface, API)公开了类、委托、枚举、接口和结构,供其他 程序使用

程序集

—个.dll文件,公开了 API,供其他程序集或可执行文件使用

标准

API的正式规范或协定

关键术语

描述

垂直模型(Verticals)

Windows FormsASP.NETWPFUWP等:常称为应用程序模型

框架/库

API的丰富集合,用于创建专注于特定垂直模型的程序,以程序集的形式出现

开源

由软件开发人员的开放社区编写和支持的框架和代码库。可根据特定开源库的许可使用对应的库

GitHub

一个在线的开源代码存储库,用于分享和更新公共可用的和社区支持的代码,以及创建这种代码的分支

分支(forking)

也称为branch,但暗含着开发社区的一种分歧。分支就是用现有的源代码存储库的副本,进行新的独立

开发。例如.NET Core就是.NET Framework的一个分支

版本

框架的每个版本包含新的或改进的API,还可能包含对bug的修复

语义版本

此概念采用以下格式来描述修改的规模和类型:[MAJOR].[MINOR].[PATCH]8如果MAJOR数字发生变 化,则该版本的影响比MINOR发生变化时更大

目标框架

程序依赖的 API 集合,如 dotnet-sdk-2.0.4-winl0-x64

TFM

目标框架名对象(Target Framework Moniker» TFM)是目标框架的精简版本,如netstandard2.0netcoreapp2.0。TFM常用于让程序面向特定的框架版本

依赖

编译程序或完成某个任务必须用到的一组特定程序集

元数据

提供了关于其他数据的信息的数据,如创建日期、创建者和文件大小

—组程序集和元数据

元包

—组相互依赖的包,但没有自己的库或程序集

NuGet

—个用于.NET的包管理器,可帮助开发人员创建和使用包

BCL

基类库(Base Class Library, BCL)是常用类、接口和值类型的一个集合。例如,System.*指令中的类、接口、方法和值类型

PCL

可移植类库(Portable Class Library, PCL)是一个类库,不必重新编译就可以运行在多个.NET垂直模型中

运行库

公共语言运行库(Common Language RuntimeCLR)。CLR管理内存分配(垃圾回收)、编译和执行

CoreCLR

CLR相同,但可跨平台运行。这是.NET Core的公共语言运行库引擎

CoreFX

.NET Core System.*名称空间,严重依赖于运行库

CoreRT

类似于CoreCLR运行库,但没有JIT编译器。程序将预先编译(参见.NET Native),在这个过程中,将移除所有多余的代码和元数据

.NET Native

创建的本机代码将被预先编译,常用于UWP开发


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部