Mono 现状与未来:从Wine-mono 到.NET 9
Mono 官网主页[1]和 Mono GitHub 页面今日发布公告[2],微软宣布将 Mono 项目移交给 WineHQ 组织,也就是 Linux 兼容 Windows 应用框架 Wine 的开发团队。

微软从 2014 年开始向.NET 开源发展,当时微软宣布.NET Core即将开源[3]。然而,在此之前,.NET 就已经有了一个名为 Mono 的开源计划。 Mono 项目始于 2001 年,最初它主要致力于为 Linux 桌面应用程序建立一个.NET 开发平台。第一次正式版本是在 2003 年发布的,此后该项目逐渐演进为在多个平台和操作系统上支持.NET。 这一事件标明微软将Mono 的现代化改造的工作已经完成,是一个里程碑事件。Wine 是一款免费和开源的兼容层,其中就包含 Mono 引擎。它使得在运行 Linux、FreeBSD 或其他一些操作系统的计算机上运行一些 Windows 应用程序成为可能。它也是 Valve 用来让 Steam Deck 用户在 Linux 驱动的手持设备上玩 Windows 游戏的 Proton 软件的基础。目前 Mono 项目已经移交到了 WineHQ 官网 Gitlab 页面:https://gitlab.winehq.org/wine-mono/mono[4]。
Mono 是基于.NET Framework 的,.NET Framework 是作为 Windows 一部分发布的.NET 大版本。经过多年的发展,Mono 和.NET 都可以应用在不同的环境中。在.NET 领域中,这最终导致了.NET Core 3+(这是所有未来工作和创新的基础)的发布,而.NET Framework 是一个长期维护的版本,它将继续被修复和调整。 但不会有任何重大的创新。
在 Mono 的世界里,运行时演进为支持我们所谓的“移动配置文件”,它是 API 的一个精选子集,适用于平衡用户需求与降低独立运行时部署的需求。这是 Xamarin .NET 努力的基础,也是最近 WebAssembly 工作的基础。
使用.NET 的不同场景以及使用它们的环境将开发人员必须使用的 API 集合分割开了。对于开发人员来说,没有一种简单的方法可以发布在所有平台上都可以工作的库二进制文件。
创建能够适用于所有不同环境的二进制库的愿望是创建.NET 标准的推动力——一个 API 的通用界面,可以在所有不同版本的.NET 上工作,无论是小型设备、移动系统,还是大型服务器。我们在这里所采取的方法是提出一套在所有平台上都可以平等使用的 API。但这仍然意味着我们要维护库的不同实现。
2020年发布的.NET 5完成了.NET Framework、Mono和.NET Core的统一工作,整个生态的统一工作现在还在继续,这一事件标明在运行时层面已经完成了CoreCLR 和 Mono 的统一,上层的库使用同一套API。统一了类库的实现,同时为用户提供了两种运行时选项。在较高的层次上,在 CoreCLR 中具有一个高吞吐量、高性能的运行时,还具有一个轻量级(但速度没有那么快)的 Mono 运行时。每个运行时都已针对它们最常使用的工作负载进行了调整:CoreCLR 用于服务器和桌面应用程序;Mono 用于移动和轻量级应用程序,例如 WebAssembly。可以在我们支持的所有平台上执行 C#或 F#代码。在某些平台上,用户将能够选择他们想要使用的运行时,而在其他平台上,将只有一个运行时可以使用。例如,对于 Windows 上的桌面应用程序,只有 CoreCLR 运行时适用,而对于 iOS,只有 Mono 运行时可用。
下个月.NET 9将发布RC版本,它将于年底在 .NET Conf 2024 上发布。我们最关注的领域是云原生和智能应用程序开发。现在 .NET 是可以并行安装了,并且可以按照用户需要的频率进行升级,我们有了千载难逢的机会来共同演进语言和运行时,而且你已经可以看到其中的一些东西了。
相关链接:
- [1]Mono 官网主页:https://www.mono-project.com/
- [2]GitHub 页面今日发布公告:https://github.com/mono/mono/issues/21796
- [3]当时微软宣布.NET Core即将开源:https://devblogs.microsoft.com/dotnet/net-core-is-open-source/
- [4]WineHQ 官网 Gitlab 页面:https://gitlab.winehq.org/wine-mono/mono
Mono 现状与未来:从Wine-mono 到.NET 9的更多相关文章
- 十位一线专家分享Spark现状与未来----峰会摘录
CSDN大数据技术: 十位一线专家分享Spark现状与未来(一) 十位一线专家分享Spark现状与未来(二) 十位一线专家分享Spark现状与未来(三) 部分摘录: 加州大学伯克利分校AMP实验室博士 ...
- 【Xamarin挖墙脚系列:Mono项目的图标为啥叫Mono】
因为发起人大Boss :Miguel de lcaza 是西班牙人,喜欢猴子.................就跟Hadoop的创始人的闺女喜欢大象一样...................... 历 ...
- 【转载】 第四范式涂威威:AutoML技术现状与未来展望
原文地址: https://www.jiqizhixin.com/articles/2018-07-12-17 -------------------------------------------- ...
- 第四范式涂威威:AutoML技术现状与未来展望
以下内容是对AutoML技术现状与未来展望讲座的总结. 1.机器学习定义 <西瓜书>中的直观定义是:利用经验来改善系统的性能.(这里的经验一般是指数据) Mitchell在<Mach ...
- AutoML技术现状与未来展望
以下内容是对AutoML技术现状与未来展望讲座的总结. 1.机器学习定义 <西瓜书>中的直观定义是:利用经验来改善系统的性能.(这里的经验一般是指数据) Mitchell在<Mach ...
- 【阿里云IoT+YF3300】1.时代大背景下的阿里云IoT物联网的现状和未来
“未来十到二十年,大家基本已经形成了一个共识,那便是新格局的奠定将由 AI 和物联网技术来支撑.放眼国内,在这些互联网巨头之中,未来真正成为竞争对手厮杀的,阿里和华为是首当其冲,在这两个领域双方分别暗 ...
- (函数即服务)Faas的现状与未来
刚看到jolestar一位从法律转行程序员的前辈写了一篇Faas现状与未来的文章,里面很多观点都很有启发,或许正如他说的那样,由于Faas能较好的解决资源利用率和开发效率问题,2018年Faas将变得 ...
- 【转载】 AutoML技术现状与未来展望
原文地址: https://www.cnblogs.com/marsggbo/p/9309520.html ---------------------------------------------- ...
- k8s极简史:K8s多集群技术发展的历史、现状与未来
引子 随着云原生技术的普及,越来越多的企业使用Kubernetes来管理应用,并且集群规模也呈爆发式增长,企业也亟需应对随集群规模增长而带来的各种挑战.同时,为了更好地提供高可用.弹性伸缩的应用,企业 ...
- [004] .NET 的现状和未来
我们总是能听到一些人说,.NET 不行.学 .NET 没发展前途之类的言论,有的童鞋听多了便也开始怀疑自己选择的 .NET 方向是不是错了. 不得不承认,在 .NET 没有实现跨平台之前,市场行情确实 ...
随机推荐
- 【论文阅读】Causal Imitative Model for Autonomous Driving
Sensor/组织: EPFL Sharif University of Technology Status: Finished Summary: 看看框架图就行.高效缓解因果混淆问题,将因果作为学习 ...
- 中间件-Nginx
一.nginx反向代理 输入 http://xxx.com/plat/login 跳转: http://localhost:8383/plat/login 将某个指定的域名代理到指定的服务 http: ...
- k8s实战 ---- pod 基础
如果你对k8s还不了解,可以看下前文 k8s 实战 1 ---- 初识 (https://www.cnblogs.com/jilodream/p/18245222) 什么是pod,pod在 ...
- 请解释一下 JavaScript 的同源策略?
概念:同源策略是客户端脚本(尤其是Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载.这里的同源策略指的是: 协议,域名,端口 相同,同源策略是一种安全协议.指一 ...
- ajax过程?
1. 创建ajax对象var xhr = new XMLHttpRequest(); 2.告诉Ajax对象要向哪发送请求,以什么方式发送 //请求方式 请求地址xhr.open('get' ...
- Mybatis下划线自动映射驼峰字段
mybatis-config.xml <!--下划线自动映射驼峰字段--> <settings> <setting name="mapUnderscoreToC ...
- 爆破字典:linux 敏感文件-01
linux 中敏感文件 1.0 /apache/apache/conf/httpd.conf /apache/apache2/conf/httpd.conf /apache/php/php.ini / ...
- 最佳 AI 翻译工作流:全世界最信达雅的翻译
吴恩达老师提出了一种反思翻译的大语言模型 (LLM) AI 翻译工作流程--GitHub - andrewyng/translation-agent,具体工作流程如下: 提示一个 LLM 将文本从 s ...
- RHCA cl210 013 制作镜像 轮转key rabbitmq追踪 写时复制 keystone多域登录图形界面
undercloud 部署 overcloud overcloud控制节点上的组建rabbitmq 排错需要rabbitmq,开启追踪则会更详细,会消耗性能 环境问题 登录一下classroom os ...
- 一次url请求全过程
一次url请求全过程 1,从宏观总体来看url请求全流程 2,从家庭实际网络架构来看一看网络是如何搭建和传输的 3,从网络七层协议的角度来看一看网络在各个层次之间的传输过程 4,从三次握手四次挥手的角 ...