`
lixinye0123
  • 浏览: 323463 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

在Ubuntu上安装和使用mono

阅读更多

微软的.NET框架与Linux开发和管理,是Buider AU和一个更广泛行业的两个最流行的主题。

大多数时候,这两个主题往往会产生冲突,很少有开发者需要同时了解这两个工具。但是,许多人都没意识到,其实我们可以通过开源mono计划,把二者组合起来。本文将说明如何在Linux上安装mono并运行基本的.NET应用程序。

首先你需要使用apt-get安装基本mono软件包。此时最好安装其它两个软件包:monodevelop——一个在某些方面类似于Visual Studio(虽然远不如Visual Studio复杂)的mono开发环境,和提供帮助和技术文档的monodoc。

启动一个根终端并输入:

% apt-get install mono monodevelop monodoc

完成后,mono应用即准备就绪,但这时你最好添加一些你需要的附加件。

% apt-get install mono-utils mono-xsp monodoc-http

如果你要从终端进行一部分开发工作,mono-utils可为你提供一些有用的实用工具。monodoc-http以Web服务方式提供 monodoc手册,它需要mono-xsp独立Web服务器才能运行。mono包括mono C#编译器mcs,但它仅能编译.NET 1.1代码,如果你希望使用.NET 2.0 C#特性(如非常有帮助的generics),那么你就需要gmcs:

% apt-get install mono-gmcs

如果你计划使用monodevelop编写你的代码,那么你可以安装一些SVN、Java、NUnit、Boo和MonoQuery支持的许多软件包:

% apt-get install monodevelop-versioncontrol monodevelop-java monodevelop-nunit monodevelop-boo monodevelop-query

同样,如果你计划使用monodoc(强烈建议使用),你可以为你将要用到的工具箱安装手册。

% apt-get install monodoc-nunit-manual monodoc-ipod-manual monodoc-gtk2.0-manual

在Ubuntu上安装和使用mono

在编写代码前,让我们了解一下我们刚才安装的一些工具。monodoc浏览器让你查看你安装的mono相关手册,包括有益的C#语言规范参考。

在Ubuntu上安装和使用mono

或者,如果你愿意的话,你也可以在Web浏览器中阅读该文档。monodoc-http程序启动一个本地运行的XSP服务器,允许你与任何Web浏览器建立连接。

在Ubuntu上安装和使用mono


如果你愿意,你还可以启动monodevelop IDE,虽然在我们使用的例子中,你不需要这么强大的功能。

现在我们通过试用一些代码,检查整个mono软件包。以标准的C# Hello World程序为例:

using System;

namespace Hello {

class HelloWorld {

public static void Main(string[] args) {

Console.WriteLine("Hello World!");

}

}

}

用mcs编辑后,通过mono命令运行;其结果如下:

在Ubuntu上安装和使用mono

上述代码正常运行,但这是一个非常简单的例子,它并不包括.NET最常用的部分:Windows Forms。下面我们来看看一个简单的Windows Forms应用程序是否能够运行。首先确保安装了相关的库:

% apt-get install libmono-winforms1.0-cil libmono-winforms2.0-cil

以下是源代码:

using System;

using System.Windows.Forms;

namespace HelloClickWorld {

public class Hello : Form {

public static void Main (string[] args) {

Application.Run (new Hello ());

}

public Hello ()

{

Button button = new Button ();

button.Text = "Click...";

button.Click += new EventHandler (Button_Click);

Controls.Add (button);

}

private void Button_Click (object sender, EventArgs e)

{

MessageBox.Show ("Hello Click World!");

}

}

}

这次编译程序集要更复杂一些,因为你需要告诉C#编译器包括Windows Forms库:

% mcs -r:System.Windows.Forms hiclickworld.cs

% mono hiclickworld.exe

在Ubuntu上安装和使用mono

最后你需要保证ASP.NET能够正常工作。以index.aspx为文件名保存以下代码:

<%@ Page Language="C#" %>

<script runat="server">

void Button1_Click(object sender, EventArgs e)

{

Label1.Text = "Hi Click World!";

}

</script>

<html>

<head>

<title>Hello World</title>

</head>

<body>

<form runat="server">

<asp:Button id="Button1" OnClick="Button1_Click" runat="server" Text="Button"/>

<asp:Label id="Label1" runat="server"/>

</form>

</body>

</html>

然后在那个目录中启动一个xsp服务器。

在Ubuntu上安装和使用mono

最后一步,在Web浏览器中输入http://localhost:8080/,检查你用Linux新建的ASP.NET网站:

在Ubuntu上安装和使用mono

如果一切功能运转正常,那么全部mono即安装完毕,这时你应该可以在Linux或Windows上开发应用程序,并在任意一个系统中进行部署。

警告:mono并不是一个完美的替代品,.NET框架的一些功能当前不能在mono中运行,特别是在Windows Forms部分;因此,如果你准备在mono中执行一些复杂的应用,或移植一个现有的.NET项目,一定要非常小心行事。

分享到:
评论

相关推荐

    适用于Ubuntu20.04的VINS-mono源码

    适用于Ubuntu20.04的VINS-mono源码,与官方源码比,修复了在Ubuntu20.04上编译时出现CV_FONT_HERSHEY_SIMPLEX未定义、‘CV_RGB2GRAY’ was not declared等错误。

    ubuntu mono apache mysql 安装指南

    ubuntu mono apache mysql 安装指南 各种安装问题研究总结

    ubuntu13.10编译安装mono环境(一)

    Mono是一个自由开放源代码项目。该项目的目标是创建一系列符合...Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris,甚至一些游戏平台,例如:Playstation 3,Wii或XBox 360。

    编程字体ubuntu_Mono Monaco 雅黑混合

    编程字体ubuntu_Mono Monaco雅黑混合,Consolas雅黑混合等5种编程字体

    Ubuntu18.04安装CMake、Mono和pgsql步骤

    Ubuntu18.04安装CMake、Mono和pgsql步骤 首先,荣幸小伙伴看到这篇博客文章。 Ubuntu18.04安装 Mono和pgSQL手册 一、安装操作系统镜像版本 Ubuntu操作系统镜像版本ubuntu-18.04.4-live-server-amd64.iso 二、安装...

    微软雅黑字体6.0及Ubuntu 上的安装步骤

    微软雅黑字体6.0 及 Ubuntu 上的安装步骤 1. 6个ttc字体可能是 6.0 版本的, msyh.ttf 是老版本的 2. VistaFont_CHS文件夹是 VistaFont_CHS.exe解压出来的, 里边有两个ttf文件。 可能也是老版本的。 3. others,...

    Ubuntu 下Mono环境Asp.Net的部署及问题解决方案v1.0

    基于Ubuntu下Mono+Nginx环境Asp.Net的部署一条龙方案,包含问题解决办法等。 一、所需材料 Windows 10电脑 SQL Server Management Studio VMware Workstation Ubuntu 16.04 Xshell 6 Xftp

    Mono环境winform开发

    Mono环境winform开发,可在windows操作系统和Linux操作系统下运行,需提前下载Mono部署环境

    ubuntu 13.10编译安装mono环境(二)

    先在VS2012上编译一个winform,代码如下: using System; using System.Windows.Forms; namespace FormsTest { static class Program { /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { ...

    mono4-coobook:从软件包和源代码安装和配置Mono v4 Framework

    安装和配置Mono Frameworkv4.x。 可以选择从源代码构建和安装Mono Framework。 要求 平台: Debian 7.8 Ubuntu 14.04 CentOS的7.0 红帽等 以下食谱是依赖项: 易于 百胜 百胜 吉特 必要的 菜谱 默认值-您要在...

    Ubuntu18.04下编译mono-unity-2019.2-mbe

    环境:Ubuntu 18.04.4 LTS Mono版本:mono-unity-2019.2-mbe 技巧:如果github速度慢,可以先拉到gitee上,之后到gitee上clone 注意:如果是直接下载的zip包,解压之后检查mono/external/bdwgc文件夹是否为空,是的...

    Droid Sans Mono Nerd Font.otf

    Ubuntu等宽字体Droid Sans Mono Nerd Font Droid Sans Mono Nerd Font Droid Sans Mono Nerd Font

    VINS-Mono代码注释,仅供学习

    VINS-Mono代码注释,仅供学习,适用于对vins-mono有一定了解的SLAM算法工程师。

    termux-mono:在Termux上构建单声道(Android终端)

    目前,除了有支持的Arch Linux和Ubuntu,目前在Termux上没有针对Mono的预编译二进制文件。 ( ) 在这里,我描述了在Linux上从源代码交叉编译Mono 6.12的过程。 Termux现在默认为Android 7.0(API级别24,/ /data...

Global site tag (gtag.js) - Google Analytics