Mono简介

来源:互联网 发布:淘宝店铺付费推广 编辑:程序博客网 时间:2024/05/18 00:48
 Mono项目由著名Linux桌面GNOME创始人Miguel de Icaza发起,创建于2001年,先由其公司Ximian主持,后随Ximian并购于Novell.

    Mono是一个开源软件平台,是符合ECMA标准的.NET Framework开源现实。它包括一个C#编译器,一个公用语言运行时环境,以及相关的基类库和mono类库。

    Mono可以让.NET程序跨平台运行在Linux,BSD,Windows,MacOS,Sun Solaris,Wii,索尼PlayStation,苹果iPhone等几乎所有常见的操作系统之上。

    Mono已经原生代码支持86,X86-64,Ia64,PowerPC,SPARC(32),ARM,S390,S390x(32-64)等几乎所有存在的计算机系统,对于不能直接支持的计算机系统,也可以通过代码解释器支持。
    
    Mono的公用语言运行时支持编程语言的集成与互操作能力,有许多语言已经有提供了兼容于Mono CLR编译器,这些语言包括了:C#、Java、Boo、Nemerle、Visual Basic.NET、Python、Java Script、Oberon、Object Pascal、C、A#(ADA)、PHP、Kylix.NET、MonoLogo、Tachy(Scheme)等。
   
   Mono的优点不仅仅是跨平台,它更具有丰富的API。除了ECMA/ISO标准的CLI(Common Language Infrastructure)API之外,Mono也具有兼容于微软Windows Forms、ADO.NET、ASP.NET的API,和Mono自己的GUI API(Gtk#)。

   许多人也纷纷加入Mono的阵营,以Mono为基础,将许多既有的动态链接库包装成.NET版,例如:GdaSharp(源自GNOME Data Access,作用类似ADO.NET)、Cocoa#(源自MacOS X Cocoa)、X Sharp(源自X Windows)、Qt#(源自Qt)、Sharp WT(源自Java SWT)、wx.NET(源自wxWidgets)、CsGL(源自Open GL)、C#-SDL(源自SDL)、GeckoSharp(源自Mozilla Gecko)。Mono还有一个整合许多API的计划,称为Tao Framework。Tao整合了Cg、DevIL、FreeGLUT、GLFW、GLU、OpenAL、OpenGL、SDL、WGL。

  mono版本更新现已发布到2.6.4版。

  一句话总结:mono是一个跨操作系统和硬件平台、跨编程语言,兼容于.NET的运行环境、框架、开发平台和工具集。


   相关介绍:

   mono维基百科   http://zh.wikipedia.org/zh/Mono

   What is mono?  http://www.mono-project.com/What_is_Mono



于酷爱编程的朋友来说,怎么能够忘怀那个万人迷Hello World呢,很显然,这一篇也得从这里开始,当然前提条件是你已经安装了相关SDK并配置好MonoDroid开发环境,如果你还没有为此做好准备,请返回前一篇
    
    当准备工作做好以后,就可以开始了,很显然在vs.net中要创建一个MonoDroid Hello World与以前熟悉的那个Hello World一样,没有差别。

   文件--新建--项目--visual C#--MonoDroid Application,然后确定。  

   创建项目后,vs.net自动会创建一个Activity1.cs文件(如下),并打开它,实际上这是创建了一个Activity类的子类,至于Activity类是什么东西,有什么作用,并非Hello World要解决的问题。 

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace MonoDroidApplication1
{
    [Activity(Label = "MonoDroidApplication1", MainLauncher = true)]
    public class Activity1 : Activity
    {
        int count = 1;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            Button button = FindViewById<Button>(Resource.Id.MyButton);
            button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
        }
    }
}

    一个Activity是一个独立的应用实体,在一个应用程序中可能包含很多不同的Activity,修改一下上面的代码,在Activity1中,构建一个用户界面,代码如下:   

protected override void OnCreate (Bundle bundle)   
{   
    base.OnCreate (bundle);                
    var tv = new TextView (this);   
    tv.Text = "Hello, World";   
    SetContentView (tv);   
}

    至此,Hello World已经完成了,虽然你可能还不明白这些代码的实际意义,但总而言之,你用MonoDroid向世界示好了,这是所有程序员修炼的最境界了,也就是传说中的第一层。

    下面我们开始来运行这个程序了,如果你曾经是程序员,一定知道F5这个键,如果不知道也没有关系,工具栏上有一个绿色的三角符号非常抢眼。

    如果一切正常,首先会出现以下对话框,按“Start emulator image"即可。

    如果此前你已经建立过emulator image,就会出现图中Available images,当然要按“OK"了,否则,你得按“Create new emulator image",新建一个。

    请选择一个设备

    至此,MonoDroid Hello World已激动人心的展示在你的眼前了。


原创粉丝点击