概述

微软在.NET跨平台之路上付出了巨大的艰辛,同时做了海量的工作。

首先推出了统一的API标准规范库 .NET Standard,并不断补充完善标准库,截止目前(2023-6-30)最新版本为 .NET Standard 2.1。

2016年发布了.NET Core 1.0.0,开放了源代码位于.NET基金会下面,并大力发展生态建设,世界知名IT公司纷纷加入并贡献,社区发展异常活跃。收购Xamarin公司后,Mono也正式加入了微软大家庭,填补了微软技术栈在移动APP开发领域的技术空白。

自此微软.NET进化成了如下图所示的全新的大架构。

.NET Framework

1、.Net Framework 是Net的一种实现,在此类库上我们可以使用C#,VB,F#进行程序编写,主要用于构建Windows下的应用程序,其主要由两部分组成:

  • 公共语言运行时(CLR)处理应用程序
  • 基础类库(BCL)这是可重用的代码库,使用其编写进行应用程序编写

2、在执行的过程中.Net编写的代码将会被编译成一种称为中间语言(IL)存储形式以DLL和EXE后缀名结尾的文件为主,当程序运行时CLR会编译转换为机器代码。

3、 .Net Framework本身不是跨平台的,仅限于运行在Windows 平台,想要跨平台需要借助第三方。

应用场景:针对传统的桌面端解决方案,采用WPF与WinForm。

.NET Core

早期(.NET Core之前)的.NET应用程序是不跨平台,它只能运行在Windows操作系统上,并且操作系统中还必须安装.NET Framework环境。如果要运行在其他操作系统上,需要借助第三方的框架,比如: Mono—一个开源的第三方.NET Framework框架,它可以运行在Linux和Mac OS操作系统上。

2011年5月,Mono开发者为了使用C#开发跨平台的移动设备应用,成立并发布了Xamarin后于2016年被微软收购,但这只是微软跨平台的第一步,毕竟Xamarin只适合开发移动端应用。

随着移动设备迅速占领市场,Windows平台的大势已去。直到.NET Core,.NET才算真正的跨平台,这也是微软重大的战略转变。2014年12月,微软拥抱开源社区,宣布开源了.NET Core的核心代码,也是.NET跨平台迈出的最重要的一步。

经过不断地迭代,2016年6月发布和.NET Core 1.0,2017年3月发布.NET Core1.1.1。目前(2023.06.30).Net最新版本是.Net8.0预览版。

.NET Core是一种模块化实现,可用于各种垂直领域,从数据中心扩展到基于触摸的设备,它是开源的,跨平台的,能在Windows、Linux、MacOS等操作系统上运行,同时还支持Docker等容器化环境安装和部署。

微软负责.NET的项目经理 Scott Hunter认为:“.NET Core客户中有40%是全新的平台开发人员这正是我们想要的结果。我们想引入新人。”

.NET Core的运行速度很快,因为它可以与应用程序并行部署,所以.NET Core可以频繁地更改,因为这些更改不会影响同一台计算机上的其他 .NET Core 应用程序。微软对 .NET Core 所做的改进无法添加到NET Framework中。

应用场景:针对跨平台(Windows、Linux、macOS)的解决方案,如物联网IoT、人工智能AI、AR、MR、Web等。

.Net Standard

Net Standard 是一个规范,它定义了.Net Framework和.Net Core必须实现的Api,它的出现为各种平台上开发的。.Net人员解决了代码共享问题,但是仅用于开发类库,意思就是说如果你的类库是.Net Standard规范的,那么此类库既可以是.Net Framework也可以是.Net Core类库。

Xamarin

第三方公司开发了名为 Mono 项目的 .NET Framework实现。Mono是跨平台的,但是它远远落后于.NET Framework的官方实现。Mono 作为 Xamarin移动平台以及 Unity 等跨平台游戏开发平台的基础,已经找到了自己的价值。

微软在2016年收购了 Xamarin,并且在 Visual Studio2019中免费提供曾经昂贵的 Xamarin扩展。微软将只能创建移动应用程序的 Xamarin Studio开发工具更名为 Visual Studio2019 for Mac,并赋予它创建其他类型应用程序的能力。有了 Visual Studio2019 for Mac,微软就能够将 Xamarin Studio编辑器的部分功能替换为 Visual Studio2019 for Windows的部分功能,以提供更接近的体验和性能。

应用场景:针对移动端的解决方案,如IOS、Android和WinPhone等。

开发工具

Visual Studio 微软官方推出的宇宙第一IDE,它是一个完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。目前(2023-06-30)最新版本是Visual Studio 2022。

其他开发工具有Visual Studio for Mac 和 Visual Studio Code。

总结(AI)

.Net平台是一个非常成熟、稳定和高效的开发平台,它可以帮助开发者快速、灵活地构建各种应用程序。.Net平台结合了C#、VB和F#等语言,提供了强大的开发工具和框架,可以轻松地应对各种开发需求。

同时,.Net平台拥有非常丰富的扩展性和可移植性,可以在多种不同的环境中运行,包括Windows、Linux和macOS等操作系统。此外,.Net平台全面支持云端开发,可以轻松地创建和管理云平台应用程序。

总的来说,.Net平台是一个非常优秀的开发平台,适合各种类型的应用程序的开发,我非常推荐它。

参考文献:

  • .Net文档:.NET 文档 | Microsoft Learn
  • .NET Standard:.NET Standard | 跨所有 .NET 实现的通用 API
  • Mono:Home | Mono
  • 开发工具:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux

.NET平台框架解读相关推荐

  1. 大快搜索城市运河大数据政务管理平台案例解读

    2019独角兽企业重金招聘Python工程师标准>>> 大快搜索城市运河大数据政务管理平台案例解读 大数据在政务当中的应用对于提高问题解决的效率可谓大有帮助,但政务大数据平台的应用开 ...

  2. 研发效能度量框架解读

    本文共计1100字,建议阅读时间:2-3分钟. ‍ 阅读本文你将收获: 1.研发效能度量框架有哪些构成? 2.对研发效能度量框架进行拆分解读 3.研发效能度量基础设施建设改怎么做 ‍ 作者简介: 任晶 ...

  3. HDC2021技术分论坛:OpenHarmony驱动框架解读和开发实践

    转自:OpenAtom OpenHarmony    作者:yuanbo,华为高级工程师 在IoT时代下,终端设备差异较大.形态各异.尺寸各异.交互方式各异,解决设备适配问题无疑是实现万物互联的一个关 ...

  4. 平台框架_从框架到平台

    平台框架 当我在十年前以Java开发人员的身份开始职业生涯时,该行业正经历着革命性的变化. 2003年发布的Spring框架Swift流行,并成为庞大的J2EE平台的严重挑战者. 经过过渡时间后,我很 ...

  5. TDEngine游戏平台框架逻辑

    TDEngine游戏平台框架逻辑 服务器组成 服务器由网关服(可多个),大厅服(可多个),和游戏逻辑服组成,其中游戏逻辑服可布置在大厅服上,详情请参考下图 如果没有外部负载均衡或者偏小型的服务器,网关 ...

  6. 如何绘制平台框架的设计图:使用UML工具

    前言: 在软件开发上,写代码是<实>,画设计图是<虚>.程序员务实,设计员务虚.由于<干实事>被推崇,所以大多开发者都务实了,不画图做设计了.例如,数十本仿间的中文 ...

  7. [Unity]PureMVC框架解读(上)

    PureMVC框架解读 简易UI框架 1.UI框架核心方法 BaseUI会记录UI的名字(枚举)和Controller用来将UI与具体操作方法解耦 UIManger利用字典记录所有的UI组件,然后提供 ...

  8. JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台,基于Spring Boot 2.7

    SpringBlade微服务开发平台 完整代码下载地址:JAVA SpringBlade 微服务开发平台框架,企业级的SaaS多租户微服务平台 采用前后端分离的模式,前端开源两个框架:Sword (基 ...

  9. MSCode微服务平台框架基于SpringCloud、SpringCloud Alibaba、SpringBoot和Activiti7工作流,快速开发办公OA、CRM、ERP、电商、信息管理等业务系统

    MSCode微服务平台框架 mscodecloud.com 基于Spring Cloud.Spring Boot和Activiti7工作流,提供所有源码和详尽文档,帮助企业快速开发分布式业务系统. 企 ...

最新文章

  1. 图解c/c++多级指针与“多维”数组
  2. Centos6.4_X64飞信安装
  3. linux——利用脚本实现虚拟机半自动安装及快照
  4. activeMQ的三种通讯模式
  5. java axmlprinter_安卓xml配置文件解析工具-AXMLPrinter2.jar(androidmanifest.xml 反编译)下载官方最新版-西西软件下载...
  6. java web开源项目源码_超赞!推荐一个专注于Java后端源码分析的Github项目!
  7. Javascript面向对象编程与继承机制的设计思想(转)
  8. 用python识别图片上的数字_python 识别图片上的数字
  9. 如何用HTML和css实现拼图,怎样使用DIV+CSS实现拼图
  10. linux+显卡驱动下载官网下载地址,下载:NVIDIA显卡Linux驱动256.44正式版
  11. 解决 mac 蓝牙鼠标、键盘经常总是 断开连接的问题
  12. CC3200使用MQTT协议连接Onenet平台实践
  13. UE4C++ 调用蒙太奇动画
  14. 实习篇四-----答辩(月末)
  15. PHP中使用compact函数
  16. python下载电影_python下载电影
  17. 前端布局 Flex(弹性)布局
  18. iOS小技能:1、yalu102 激活了之后,无法连接ssh的解决方案 2、Reveal的基本使用3、Passionfruit 的实现原理
  19. 美国“赌王”永利:中国人一向对赌场情有独钟 - FT中文网
  20. RAMPS1.4 3d打印控制板接线与测试1

热门文章

  1. Long-Short Term Memory(长短时记忆模型)
  2. Leaflet 加载纠偏后必应地图在线瓦片,必应地图最新最全在线瓦片地址
  3. 网络黑客攻防学习平台之基础关第一题
  4. gnome linux 重装_如何安装 gnome 3
  5. 【智能物流】基于客户定制的电子商务一体化自动物流系统建设
  6. 我与学生大本营的故事
  7. 区块链大本营的定位宣言——让区块链回归技术和应用的本质
  8. BELLHOP 手册和用户指南(中文版)
  9. 什么位置适合开水果店,水果店在什么位置比较好
  10. ROM、FLASH 和 RAM 的区别