mono8大優勢

Mono项目的目标就是提供一个符合 CLI mono 规范的跨平台语言虚拟机实现,让更多的人可以使用C#在Linux、Mac OS等这些系统上编写程序了,获得 C# 和 CLI 所带来的巨大好处。 公共语言基础(Common Language Infrastructure,CLI),又叫公共语言运行时(Common Language Runtime),已由Mono实现。 公共语言基础已被ECMA定义为标准ECMA-335。 要运行一个.NET应用程序,你必须使用相应的参数调用运行时。

这些只是自己出于一时兴趣的尝试,算是给想了解下用C#编写Linux程序或是跨平台程序的小伙伴一个引导吧。 个人文笔不好又有点懒,所以贴了这么多图,希望还算凑合。 前面是 使用C# 开发Linux上的控制台程序,这个虽说已经可以做很多事了,但是别忘了 C# 开发WinForm程序那可是很爽的,Mono怎么能不实现这一部分呢? 下面我们就在Linux 下使用 C# 开发WinForm程序。 在经过各种考量后,Unity选择了开源,并且平台支持性很好的Mono这一开源的.Net Framework跨平台实现方案。 从上面可以看出,C#或者CIL跨平台离不开对应平台CLR的支持。

mono: Unity C# 和 Mono

在Ubuntu帮助中心找到了方法,点击桌面左侧栏上的 Dash Home (下图中的Ubuntu图标),在弹出的搜索栏中输入要找的应用程序,找到有单击即可启动。 Mono 是跨平台的 .Net Framework 的实现。 Mono 做了一件很了不起的事情,将 CLR 在所有支持的平台上重新实现了一遍(包含手机上常用的安卓平台和Switch,PS4,这样的游戏机平台),并且mono还将 .Net Framework 提供的基础类库也重新实现了一遍。 转自维基 而且,确切的说,CIL也不仅仅只有C#可以生成,微软的全系列动态语言都可以生成CIL(C#、F#、VB.NET,VB),在维基百科上你还可以查到(C++、Python),上文提到的Unity和Boo两种语言最终也会编译成CIL。

  • 从上面可以看出,C#或者CIL跨平台离不开对应平台CLR的支持。
  • 并且Mono是一个开源软件,Unity也很方便在Mono的基础上做修改和微调。
  • 第三个选项则是昂贵的,甚至不可能的,这需要一定程度的运气。
  • 除此之外,还为该按钮的鼠标点击事件绑定了相应的处理函数,当点击按钮时弹出一个消息框。

很多移植到Mono的类库使用了CLI的这个特性,例如Gtk#。 命名空间是一种用于将逻辑上相似的类按层次结构分组的机制。 在这种结构化采用被点号”.”分隔的单词来实现。 通常最顶层的命名空间是System,例如System.IO和System.Net(完整的命名空间列表可以在Mono文档中找到)。 当然还有别的顶层命名空间,例如Accessibility和Windows就是这样的例子。

mono: mono noun

类库为应用程序开发提供一套广泛而有效的工具类。 这些工具类本是采用C#编写的,但是由于.NET采用的公共语言运行时,它们可以用于任何.NET语言。 类库被按命名空间进行了结构化,并被放置于称为程序集的共享库中。 在我们谈到.NET framework时,我们多数是指这个类库。 在ECMA-335的第六章详细说明了公共语言规范(Common Language Specification,CLS)并定义了提供给公共语言基础的接口,例如对于枚举类型的隐含表示类型的协定。 Mono的编译器负责生成符合公共语言规范的映射代码,即公共中间语言(Common Intermediate Language,CIL)。

  • MonoDevelop是一个用于创建Mono应用程序的集成开发环境。
  • 它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。
  • 在我们谈到.NET framework时,我们多数是指这个类库。
  • C# 是微软推出的一种基于 .NET 框架的、面向对象的高级编程语言。
  • 转自维基 而且,确切的说,CIL也不仅仅只有C#可以生成,微软的全系列动态语言都可以生成CIL(C#、F#、VB.NET,VB),在维基百科上你还可以查到(C++、Python),上文提到的Unity和Boo两种语言最终也会编译成CIL。
  • 一些程序集的例子有:mscorlib.dll,System.dll,System.Data.dll和Accessibility.dll。

ECMA标准先前还定义了一个符合公共语言规范的程序库作为应用框架。 Ximian内部对如何创建能有效提升生产效率的工具进行了大量的讨论,他们的目标是通过这些创建出来的工具让使用者可以在更短时间内创建出更多的应用程序从而缩短开发周期和降低开发成本.经过可行性研究后,他们清楚地见到创建这样的一项技术是可行的,于是Ximian从其它的项目抽调人员并创建了的开发小组Mono.由于缺少人力来创建整个. NET替代产品,他们在2001年7月19日的O’Reilly大会创建了的开源项目Mono. 由于改程序编译成了中间代码,因此该程序也可以直接拷贝到 Windows平台下运行,不过由于是使用Linux上的GTK来实现Windows上的 WinForm 所以在Window上运行时需要安装相应的GTK库或者Mono for windows。 在 上面的解决方案中添加新项目,在 弹出的对话框中选择一个 GTK 项目(WinForm是Windows上的技术,Linux上使用GTK等技术实现WinForm)取名”Windows”,然后在MainWindow.cs中编写如下代码,其所做的工作就是创建一个名为”OK”的按钮,并添加到该窗体中。 除此之外,还为该按钮的鼠标点击事件绑定了相应的处理函数,当点击按钮时弹出一个消息框。

mono: mono 在英語-中文(繁體)詞典中的翻譯

C# 是微软推出的一种基于 .NET 框架的、面向对象的高级编程语言。 微软在 2000 年发布了这种语言,希望借助这种语言来取代Java,更多详细的介绍可以参看C#Wiki。 编译和调试与VS类似,有 VS 这么优秀的范例在前面,MonoDevelop为了方便用惯了 VS 的程序员,尽量采用了与 mono VS相似的界面布局。 对于一些问题,例如那些与协同工作和交互相关的,可能就只有一种解决方案。

这里先介绍一下Mono项目,Mono是微软 CLI 规范的一种实现,类似的还有 .NET Framwark、Portable.NET(该项目已于2012.12月停止). CLI 是 Common Language Infrastructure(公共语言基础)的缩写,它规定了一语言虚拟机结构规范,这点类似于Java虚拟机,只要遵循该规范编写的代码均可以运行于该虚拟机之上,只要该虚拟机针对各个实现,那么我们编写的代码就可以“一次编写,处处执行”了, Mono就是 CLI 规范的一个跨平台实现。 Mono是一个由Novell公司(由Xamarin发起)主持的项目,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。 它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。

mono: mono空间和程序集

命名空间经常被分拆到几个程序集中,而一个程序集可以由几个文件组成。 NET产生了兴趣.在查看字节码解释器后,他发现对于元数据没有相应的说明文档.2001年2月, deIcaza在. mono NET邮件列表中索要到了那段缺失了的关于元数据文件格式的信息,并开始了采用编写一个C #编译器的工作,作为对的实践C #. 2001年4月ECMA公布了那段缺失的文件格式,而在GUADEC (2001年4月6日- 8月4日) deIcaza展示了他的编译器的一些特性(那个时候他的编译可以解释自身).

Unity当年选用Mono而不是几乎只能在Windows上运行的.Net Core 就是看重了Mono的跨平台支持。 并且Mono是一个开源软件,Unity也很方便在Mono的基础上做修改和微调。 在原生的.NET/Mono应用程序中,所有代码都是托管的,也就是说,是受管于CLI式的内存管理和线程安全管理的。 其它的.NET或Mono应用程序可以通过使用System.InterOpServices库创建C#绑定来调用已存的非托管代码。

mono: mono更多的中文(繁體)翻譯

如果没有对应平台CLR对CIL的解析和对应机器码的实现,CIL就无法在当前平台运行。 如果一种语言实现生成了CLI,它也可以通过使用CLR被调用,这样它就可以与任何其他.NET语言生成的资料相交互。 众所周知,一般Unity游戏开发,都使用C#作为主要开发语言。 虽然Unity本身支持Unity(一种Java的扩展)和Boo(一种受Python启发的语言),但是在正常生产实践中,还是会使用C#作为主要开发语言。 打开 MonoDevelop,对于习惯了双击图标启动应用程序的我,最开始使用连个程序多不会启动,真是丢脸死了 囧。

mono

MonoDevelop是一个用于创建Mono应用程序的集成开发环境。 该软件原先是SharpDevelop向Gtk#的一个移植,而现今该软件已独立开发。 Unity因为方便和跨平台选择了C#作为主要的开发语言。 mono 而且C#的跨平台是基于.Net Framework框架下的(CIL,通用描述语言)和CLR(通用运行环境的)。

Java虚拟机(该虚拟机最初只为Java打造所以才叫Java虚拟机,跟Java语言应该分开看)就是一个语言虚拟机,它也有自己的一套规范,只要遵循Java虚拟机规范的语言编写的代码都可以跑在Java虚拟机之上, Java 语言就是遵循Java虚拟机规范的一种语言。 CLI 一开始就野心比Java虚拟机大,因为它一开始就打算打造一个语言虚拟机平台,上面可以支持各种语言,而不是像Java虚拟机最初只是为了Java设计的,造成Java虚拟机许多地方考虑不周全。 Unity第一推荐开发语言C#,之所以用C#的跨平台特性。 只要任何一个平台实现了当前平台对应的CLR,就可以在当前平台上解析和运行CIL。 随着移动平台的崛起,Mono也有Android 和 IOS 的实现版本,因此你也可以使用 C# 来开发 Android 和 IOS 应用程序。

mono

由于这个相同的原因,尽管第一个选项总是可行的,它却可能导致一个开发出来的产品并不能作为.NET的替代品。 mono 第三个选项则是昂贵的,甚至不可能的,这需要一定程度的运气。 它们跟Win32共享库一样都是dll文件,尽管不完全一样。 一些程序集的例子有:mscorlib.dll,System.dll,System.Data.dll和Accessibility.dll。

由香港SEO公司 https://featured.com.hk/ 提供SEO服務

mono

柯文思

柯文思

Eric 於國立臺灣大學的中文系畢業,擅長寫不同臺灣的風土人情,並深入了解不同範疇領域。