首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Mono 现状与未来:从Wine-mono 到.NET 9

编程知识
2024年08月29日 08:23

Mono 官网主页[1]和 Mono GitHub 页面今日发布公告[2],微软宣布将 Mono 项目移交给 WineHQ 组织,也就是 Linux 兼容 Windows 应用框架 Wine 的开发团队。

image

微软从 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 是可以并行安装了,并且可以按照用户需要的频率进行升级,我们有了千载难逢的机会来共同演进语言和运行时,而且你已经可以看到其中的一些东西了。


相关链接:

From:https://www.cnblogs.com/shanyou/p/18385885
本文地址: http://shuzixingkong.net/article/1545
0评论
提交 加载更多评论
其他文章 PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024
基于像素级分类器的单图像超分辨率方法(PCSR)是一种针对大图像高效超分辨率的新方法,在像素级别分配计算资源,处理不同的恢复难度,并通过更精细的粒度减少冗余计算。它还在推断过程中提供可调节性,平衡性能和计算成本而无需重新训练。此外,还提供了使用K均值聚类进行自动像素分配以及后处理技术来消除伪影。 来
PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024 PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024 PCSR:已开源,三星提出像素级路由的超分辨率方法 | ECCV 2024
推荐一个Python打造的开源自动驾驶平台:Donkeycar!
1、引言 随着人工智能和自动驾驶技术的飞速发展,自动驾驶车辆的研究和开发成为了科技领域的热点。对于初学者、爱好者和学生而言,一款易于上手且功能强大的自动驾驶平台显得尤为重要。Donkeycar正是这样一款开源项目,它提供了一个轻量级、模块化的Python自驾车库,旨在促进快速实验和社区参与。本文将详
推荐一个Python打造的开源自动驾驶平台:Donkeycar! 推荐一个Python打造的开源自动驾驶平台:Donkeycar!
什么是算法?一切皆算法
如果有人问我什么算法?我就一句话:算法就是对一类问题的最优求解路径。 1、计算机领域的算法概念 算法一直都是计算机领域非常重要的概念,具备极高的地位,各个公司对算法的考察也非常热衷。 我们只有在数学、计算机和人工智能领域会听到算法的概念,再加上似乎没人能讲清楚算法的概念。所以,一听到算法,很多人以为
什么是算法?一切皆算法
Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型
Funcion Calling介绍 函数调用允许您将模型如gpt-4o与外部工具和系统连接起来。这对于许多事情都很有用,比如为AI助手赋能,或者在你的应用程序与模型之间建立深度集成。 如果您了解或者使用过Semantic Kernel可能会发现除了OpenAI支持Function Calling的模
Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型 Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型 Semantic Kernel/C#:一种通用的Function Calling方法,文末附经测试可用的大模型
Oracle同一台服务器创建多个数据库
有时候我们需要再同一台机器上创建多个数据库服务(不是单纯的数据库实例),每一个数据库可以有单独的服务运行,只是在一个机器环境而已。可以在不同的端口上监听,也可以在相同端口监听 创建多个数据库步骤 安装完Oracle数据库后,会自动安装很多工具,这里我们使用Database Configuration
Oracle同一台服务器创建多个数据库 Oracle同一台服务器创建多个数据库 Oracle同一台服务器创建多个数据库
TimeWheel算法介绍及在应用上的探索
作者:来自 vivo 互联网服务器团队- Li Fan 本文从追溯时间轮算法的出现,介绍了时间轮算法未出现前,基于队列的定时任务实现,以及基于队列的定时任务实现所存在的缺陷。接着我们介绍了时间轮算法的算法思想及其数据结构,详细阐述了三种时间轮模型的数据结构和优劣性。 再次,我们介绍时间轮算法在 Du
TimeWheel算法介绍及在应用上的探索 TimeWheel算法介绍及在应用上的探索 TimeWheel算法介绍及在应用上的探索
MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题
大家好呀,我是summo,最近遇到了一个功能需求,虽然也是CURD,但属于那种比较复杂一点的CURD,话不多说,我们先看一下需求。 需求如下: 有三张表,学生表、课程表、学生课程关联表,关联关系如下图: 要求实现的功能: 支持输入名称模糊查询,可以是学生名称也可以是课程名称,但只有一个输入框; 要求
MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题 MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题 MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题
Python 项目及依赖管理工具技术选型
Python 项目及依赖管理工具,类似于 Java 中的 Maven 与 Node 中的 npm + webpack,在开发和维护项目时起着重要的作用。使用适当的依赖管理工具可以显著提高开发效率,减少依赖冲突,确保项目的稳定性、可靠性和安全性。 一、常见项目及依赖管理工具需具备的功能 1. 依赖管理