.NET 跨平台开源项目——Mono介绍

Mono vs .NET Core:深入解析两大跨平台运行时的异同与发展趋势 本文对比了 .NET 生态中两大跨平台运行时 Mono 和 .NET Core 的技术差异。Mono 诞生于2000年代,主要解决 .NET 在 Linux 和移动端的兼容性问题,支持 Android/iOS 等平台。.NET Core 是微软为现代化云原生应用开发设计的轻量级框架,专注于容器化、微服务和高性能 Web 开发。两者在平台支持、性能优化和生态系统方面各有侧重:Mono 更适合移动和嵌入式开发,而 .NET Core 在云原生、微服务和容器化方面表现更优。随着 .NET 5/6/7 的统一,.N 阅读详情

引文:

李维先生曾讲过,“微软在垄断操作系统,SUN在垄断语言,他们都是垄断”。人们天生喜欢自由,不喜欢垄断。以前我一直在想,如果用Delphi开发的Windows程序能运行在Linux上,哪会是一幅怎样的场景?学习了一段时间.NET后,一天我突然想到,如果能把.NET平台移植到Linux或Unix上问题不就完美的解决了吗?

我们知道.NET比JAVA最大的不同就是他支持多语言,我们可以用我们熟悉的语言来开发.NET程序,但前提是我们的程序必须运行在Windows上;而JAVA程序则可以“到处运行”。如果把JAVA和.NET结合起来……

作者:郭方明

完成日期:2006年1月 version 1.0

联系信箱:gfm_job@163.com

Blog:http://blog.youkuaiyun.com/fanghong1999/

注:转载文章,请注明作者信息。

关键字: Mono .net跨平台 Linux

正文:

1、  什么是Mono

Mono在西班牙语中的意思,是“猴子”。 “猴子”两个字让人想起墨西哥人火辣直白的性格,与《西游记》中孙悟空的野性难驯别无二致。

“猴子”的身世:“猴子”生于2001年,创造他的是Miguel de Icaza和他的朋友。他创建的Ximian被Novell收购,所以,现在Mono项目由Novell赞助。

Mono是.NET Framework 的一种开源实现。

Mono项目将使开发者用各种语言(C#,VB.NET等)开发的.NET应用程序,能在任何Mono支持的平台上运行, 包括Linux, Unix。Mono项目将使大家能开发出各种跨平台的应用程序, 并能极大提高开源领域的开发效率。

作为一个有机的.NET整体, 它包括一个C#编译器, 一个公用语言运行时环境, 以及相关的一整套类库,他甚至还包括IDE、调试工具和文档浏览器。

Mono项目的网址是:http://www.mono-project.com

2、  Mono想干什么,能干什么

   Mono希望实现“一次编写,到处运行”。这不是java的口号吗?但是我们知道java可以跨平台但是他不能跨语言。而.Net可以跨语言但是由于微软的战略他不能跨平台。所有Mono的目标就变为跨平台,跨语言。如果Mono成功的话,语言和平台对开发者的影响将变的很小,这也是Miguel de Icaza在创建Mono的时候就希望的——Linux的普通用户可以编写自己的程序。这让我想到软件开发的根本任务和次要任务——根本任务是将复杂的概念结构转化为抽象的软件实体;次要任务是将抽象的软件实体的实现。如果普通人通过简单的学习就可以把自己的抽象思维变为现实,象我们这样的程序员不是都要失业了吗?

3、  Mono 的同伴

其实微软已经有了自己的.NET UNIX实现:Rotor。毕竟NET本质上是可以实现跨平台的,只是我相信微软不会战略层面上支持跨平台的.NET。 Rotor生于2002,微软是他的创造者。Rotor的目标:实现一个CLR运行环境,包括一个C#和Jscript的编译器,此外还有一系列诸如汇编/反汇编工具、调试器等等。

Rotor可以运行在Windows、FreeBSD以及MAC OS X上,并完全提供源代码。阅读Rotor的源代码,也许可以帮助程序员更好的理解的.NET的整体架构。
        不过,Rotor也许只是两年前微软的一个应景之作,Rotor已经许久没有更新了。有了Mono,Rotor的存在价值又有几何呢?

4、  Mono的过去与现在

Mono的历史还不长,从2001开始到现在也不过四五年时间。在这段时间里他默默的走着。当我们意识到他的存在的时候,他已经进度过了他的童年。

2006年1月11日 Mono 1.1.13 发布了。现在Mono已经重实验室走了出来,已经运行在一些服务器上了,虽然不多但是毕竟已经有了商业应用。Mono的路才刚刚开始。

5、  Mono的前途

Mono未来的处境不是很好,因为当今的两大巨头微软和SUN都不支持他。因为微软的头号敌人是Linux,微软和SUN的斗争其本质是OS的竞争,微软是绝对不会让Linux得到普及的。而SUN的最大砝码是JAVA如果大家的都不用JAVA哪SUN还由活路吗?所以Mono要想生存下去必须有一个足够有实力的公司和微软和SUN抗衡,Novell显然不被看好,但是如果Mono真的能发展起来的话哪Novell是不是会和微软和SUN平起平坐呢?三足鼎立的时代会来临吗?

6、  结束语

最后,我想说一下我对Mono的态度,我希望Mono成功,软件开发需要革命性的进步,一切事物的进化都符合客观规律。在一定的时候一定会有一场革命。

原文地址:http://blog.youkuaiyun.com/fanghong1999/article/details/579940

Linux Mono - 一个强大的跨平台开发框架 总结起来,Linux Mono 是一个强大的跨平台开发框架,它为开发人员提供了在 Linux 系统上创建和执行.NET 应用程序的能力。通过支持 C# 语言和丰富的类库,以及与现有技术的集成,Linux Mono 提供了灵活性和效率,使开发人员能够轻松地构建跨平台的应用程序。在编程领域,Linux Mono 是一个备受欢迎的开源开发框架,它提供了一个跨平台的运行时环境和工具集合,使开发人员能够在多个操作系统上创建和执行应用程序。Linux Mono 提供了一个丰富的类库,包含了许多常用的功能和工具。 阅读详情

相关推荐

ContextCapture导入点云进行重建

ContextCapture导入点云进行重建

天桥飞熊的博客 1万+

浅谈Unity与.Net、Mono、IL2CPP

一:什么是Mono? Mono是基于CLI和C#的ECMA标准提供的.Net的另一种实现,与.Net不同的是Mono具备了跨平台的能力 二:Mono的组成 ——C#编译器:C#编译器称为mcs,可以完成C#的编译工作,因为mcs是C#写的编译器而且还使用了很多.Net的API,所以在非WIndows平台上需要Mono运行时来运行mcs,而在非Windows平台上既可以用.Net运行时,也可以使用Mono运行时 ——Mono运行时:运行时实现了ECMA公共语言架构,提供了一个即时编译器(JIT)、预编.

L的博客 6409

变压器耦合放大器(低频应用+高频应用)

变压器耦合放大器(低频应用+高频应用)

m0_54943120的博客 2275

使用Mono让.NET程序跨平台运行

众所周知,Unity3D引擎凭借着强大的跨平台能力而备受开发者的青睐,在跨平台应用开发渐渐成为主流的今天,具备跨平台开发能力对程序员来说就显得特别重要。传统的针对不同平台进行开发的方式常常让开发者顾此失彼,难以保证应用程序在不同的平台都有着相同的、出色的体验,这种情况下寻找到一种跨平台开发的方式将会为解决这个问题找到一种思路。从目前的开发环境来看,Web应该是最有可能成为跨平台开发的神兵利器,可是长

素履独行 | 元培的个人博客 3万+

AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解

本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。

【Simon】的博客 7147

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 746

NET 跨平台开源项目——Mono介绍

 引文:李维先生曾讲过,“微软在垄断操作系统,SUN在垄断语言,他们都是垄断”。人们天生喜欢自由,不喜欢垄断。以前我一直在想,如果用Delphi开发的Windows程序能运行在Linux上,哪会是一幅怎样的场景?学习了一段时间.NET后,一天我突然想到,如果能把.NET平台移植到Linux或Unix上问题不就完美的解决了吗?我们知道.NET比JAVA最大的不同就是他支持多语言,我们可以

hurtmanzc的专栏 1172

基于STM32设计的太阳能智慧路灯_444

本文设计并实现了一种基于 STM32 的太阳能智慧路灯系统。系统以 STM32F103C8T6 单片机为核心,集成温湿度检测、空气质量检测、环境光照检测、行人检测和路灯故障检测等功能,实现对路灯运行环境和工作状态的实时感知。

462

【亲测免费】 wine-mono: 跨平台的 .NET 兼容库

wine-mono: 跨平台的 .NET 兼容库 项目链接: <> wine-mono 是一个开源项目,旨在为 Wine(一款在类 Unix 操作系统上运行 Windows 应用程序的兼容层)提供对 Microsoft 的 .NET Framework 和 Mono 框架的支持。 什么是 wine-mono? wine-mono 是一个跨平台的兼容库,它使得基于 .NET 平台的应用程...

gitblog_00090的博客 3032

uniapp - 解决控制台提示“同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示”,uniApp安卓/苹果App真机运行调试显示同步资源失败,无任何授权提示且无法连接

uni-app,报错,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,提示错误解决,HbuilderX,uniapp同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示同步失败,安卓基座调试,没有反应,真机没有提示怎么办,如何解决这个问题,苹果ios手机,电脑模拟器运行,adb连接,连接失败,报错出错,uniapp真机运行的时候显示同步资源失败,未得到同步资源的授权,plugins里面没有tools,找不到tools,还是不行,重新打基座

🏆 前端领域优质创作者 1万+

手把手教你学simulink(41.4)--逆变器电场景示例:基于Simulink的主从控制的多逆变器协同控制(Multi-Inverter Coordinated Control)

需求分析在现代电力系统中,分布式发电和储能系统的广泛应用使得多个逆变器并联运行成为常见的应用场景。为了确保多个逆变器之间的协同工作,实现系统的稳定性和高效性,通常采用主从控制(Master-Slave Control)策略。主从控制通过一个主控制器(Master)来协调多个从控制器(Slave),确保所有逆变器的输出电压、频率和功率分配符合预期目标。本项目将基于Simulink平台,开发一个多逆变器协同控制系统,采用主从控制策略,实现对多个逆变器的精确控制和优化。

MHD0815的博客 306

mono试用手记

先简单介绍一下。mono是Novell赞助的一个开源项目,目的是开发跨平台的Microsoft.Net Framework,而且还包括编译器、集成开发环境,目前也和微软同步到3.5版本,可用于Linux/Unix/Mac等非Windows平台。也就是说,Visual Studio编译的exe程序,直接可以在linux/Mac/Unix上运行了,至少目标是这样,不知道微软是会高兴还是担心。mono初

Building New Life 550

打开.nc降水气象数据制作年降水量地图

图层的单位为度,在反距离插值中也是以度为单位,比较麻烦,还是想用以m为单位的投影,这里是个bug,后续调整一下。该彩色部分是以2021年1月、2月、3月的降水数据分别作为RGB得到。因为该栅格的分辨率还是太大了,一个栅格就能覆盖一个县,若想要进行降尺度,可以做插值处理。下载的数据集为2021-2022年,因此有12+12=24个月,24个波段。想要得到廊坊市周围的数据,需要裁剪范围,在降水数据图层上导出数据。打开数据管理工具-投影和变换-定义投影。在降水数据图层上右击属性,添加投影。得到了降尺度的插值图。

所有专家都曾始于新手 4520

百万开发者拥戴!七大.NET著名开源项目

2010-09-08 09:47 | 37518次阅读 | 来源:IT168【已有27条评论】发表评论 | 作者:陈秋歌 | 收藏这篇资讯 尽管过了相当长的时间,花费了不少资源,微软和.NET社区还是在最近几年加入到了开源运动的阵营中来了,这令人相当惊讶,因为两大阵营一直都是经常对立的。然而,事实是依靠开源,微软社区中的开源开发工具日益发展壮大。本文将深入了解.NET领域的开源

lisky119的专栏 775

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Mono和IL2CPP

什么是跨平台 首先,什么是跨平台? 跨平台:一次编译,不需要任何代码修改,应用程序就可以运行在任意在平台上跑,即代码不依赖于操作系统,也不依赖硬件环境。 游戏肯定需要跨平台,不能只支持一种平台,不然每个对应的平台做出一种对应的编译器,那真的会累死。所以对于跨平台的需求,对于游戏开发而言,很重要。Unity的架构需求设计当然也需要这个特性。 Mono介绍 Mono是一个由Xamarin公司所主持的自由开放源码项目。 Mono的目标是在尽可能多的平台上使.net标准的东西能正常运行的一套工具,

漫漫无期的博客 3713

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

我也来说说.net开源

   看了阿不的 我会为开源和自由学习,使用JAVA.但我决不会为了开源和自由放弃.NET ,本想在后面回复,发现写了一下不短,就另开一帖。 开源和.net/java没有关系,更重要的是我们自己需要正确的认识,微软和Sun之间的关系创造了伟大的平台.net framework. 从2000年开始到现在走过了将近8个年头,.net 现在赶上了java甚至在某些领域超越了java,而且.net借助于...

weixin_34348805的博客 92

Github上十大C#开源项目排行榜

1.SignalR ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。当WebSockets可用时(即浏览器支持Html5)SignalR使用WebSockets,当不支持时SignalR将使用其它技术来保证达到相同效果。SignalR 将与客户端进行实时通信带给了ASP .NET 。当然这样既好用,而且也有足够...

weixin_33912453的博客 266

.NET开发人员值得关注的七个开源项目

<br />微软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET 开发阵营对开源工具的依赖正日益增强,本文就为所有.NET开发人员介绍7个应该关注的开源项目,也许其中正有你需要的。 <br />Ajax控件工具包<br /> 在Ajax术语诞生的短短五年内,这个混合了JavaScript、XML和异步通信的技术增强了用户的在 线体验,带动了Web技术的积极发展,现在随便浏览一个网站可能都应用了Ajax技术,随

pet products 381

盘点:七大.NET著名开源项目

 尽管过了相当长的时间,花费了不少资源,微软和.NET社区还是在最近几年加入到了开源运动的阵营中来了,这令人相当惊讶,因为两大阵营一直都是经常对立的。然而,事实是依靠开源,微软社区中的开源开发工具日益发展壮大。本文将深入了解.NET领域的开源项目,介绍七个在全球受到数百万.NET开发者拥戴和欢迎的开源项目。     AJAX 控件工具包   仅仅五年时间,自从AJAX的概念提出来以后,使...

weixin_33737134的博客 115

.NET开发人员应该关注的七个开源项目

<br />在Ajax术语诞生的短短五年内,这个混合了JavaScript、XML和异步通信的技术增强了用户的在线体验,带动了Web技术的积极发展,现在随便浏览一个网站可能都应用了Ajax技术,随着诸如日历,客户端表单验证等功能一应俱全的Ajax框架的出现,使Web开发朝快速,简单的方向迈进了一大步。<br />ASP.NET Ajax控件工具包(AJAX Control Toolkit)为.NET开发人员提供了丰富的解决方案,值得一提的是这个工具包是由微软和开发者社区共同开发的,Ajax控件工具包提供了几

每天進步一點點 805
上一篇: Unity程序闪退与卡顿原因
下一篇: Mono为何能跨平台?聊聊CIL(MSIL)
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值