满意答案

liululu86

2013.05.27

采纳率:41%    等级:13

已帮助:16121人

你可以试试在Linux上运行C#和.NET在Linux上运行C#和.NET

众所周知,C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Windows 9x/Me/NT/2000/XP和Windows CE之类的操作系统。但是,现在却有了一个叫做Mono的项目,它的目标就是把.NET及其编程语言移植到非Windows的平台上。目前,C#是惟一被移植到非Windows平台的.NET语言。

在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库、编译器/解释器、运行环境。库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写。.NET框架也不例外,包含了许多类库。另外,把程序转换成可执行形式,并且运行执行文件时,编译器和运行环境是必不可少的。Mono软件包包含了.NET类库的一部分、一个C#编译器和.NET运行环境CLR(Common Language Runtime,公共语言运行时环境)。

Mono声称支持Linux、Solaris、FreeBSD和Windows。除了Intel x86系列的CPU(*86及各类Pentium等)之外,它还要支持Sparc、PowerPC和StrongArm处理器。

下面就来看看如何在Linux上运行Mono。

命令行应用首先从Mono主页下载软件。然后,执行下面的命令,安装所有RPM:

# rpm -ivh *.rpm

安装完成后,所有基本的动态执行库,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被复制到/usr/lib下。接下来,在Linux文本编辑器中输入下面的内容,把文件保存为HelloMono.cs:

class HelloMono{public static void Main(string[ ] args){ System.Console.WriteLine(“Hello Mono”);}}

执行下面的命令编译C#文件:

# mcs HelloMono.cs

mcs是Mono的C#命令行编译器。与MS .NET SDK的csc编译器相似,mcs也有很多命令行选项。上面的命令将生成可执行文件HelloMono.exe。注意,这个执行文件不是Linux执行文件,而是一个.NET执行文件,或者说这个文件的可执行代码形式是中间语言(IL,Intermediate Language)。要运行这个执行文件,必须执行如下命令:

# mono HelloMono.exe

Linux控制台上将显示出“Hello Mono”。关于mcs和Mono的更多说明,请执行man mcs或man mono参考其man文档。

GUI应用Mono不支持Windows Forms,但在C#编程中可用GTK #编写GUI。GTK #是GTK+图形库的C#支持工具,可从下载。下载完成后,先要安装RPM:

# rpm -Uvh *.rpm --nodeps

解开gtk-sharp-0.2.1.tar.gz:

# tar zxvf gtk-sharp-0.2.1.tar.gz

进入子目录gtk-sharp-0.2.1,执行:

# ./configure --prefix=/usr# make?# make install

完成这一步骤之后,重新启动一次。与GTK#有关的所有动态代码模块(gtk-sharp.dll、atk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都会被复制到/usr/lib目录。编译用GTK#制作GUI的C#程序时,必须通过-r参数引用它们。GTK#下载包中包含了几个示例程序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。编译这些文件的命令如下:

# mcs -r gtk-sharp -r glib-sharp HelloWorld.cs# mcs -r gtk-sharp -r glib-sharp -r System.Drawing Menu.cs# mcs -r gtk-sharp -r glib-sharp -r System.Drawing ButtonApp.cs

下面来看看如何通过-r选项引用前面各个.dll动态模块。执行startx命令启动X-Window,进入终端窗口,再进入示例程序所在目录,执行下面的命令分别运行各个程序:

# mono HelloWorld.exe# mono Menu.exe# mono ButtonApp.exe

Mono项目还在完善和发展之中,目前还没有移植好全部.NET类。但不管怎样,它对许多人来说将是一个好消息。有关Mono C#类库移植进展的信息,请访问。

考虑一个典型的服务器/客户机式.NET应用:最终用户只与客户端打交道,客户端最好是方便的GUI应用,许多人还会希望使用熟悉的Windows平台。但是,对于用户来说,服务器端使用Windows还是Linux完全无关。所以,服务器端可以用带有Mono的Linux构造,节省了配备专用Windows服务器的投资。Mono也将为应用迁移带来方便。如果Mono能够顺利发展,Windows开发者也将能够为Linux或其它非Windows平台开发应用。如果这样的话,不久之后出现一个类似Visual Studio .NET但免费或廉价的Linux开发IDE也说不定。

然而,所有这一切是否能够成为现实依赖于Mono是否能够茁壮发展,也依赖于Mono与Windows平台上的.NET框架兼容或相似程度。另外一些因素也很关键,例如Mono的性能、GUI的友好程度等。在Linux上运行C#和.NET在Linux上运行C#和.NET

众所周知,C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Windows 9x/Me/NT/2000/XP和Windows CE之类的操作系统。但是,现在却有了一个叫做Mono的项目,它的目标就是把.NET及其编程语言移植到非Windows的平台上。目前,C#是惟一被移植到非Windows平台的.NET语言。

在任何一个平台(操作系统+硬件体系)上,编写和运行程序的三个最根本的需求是库、编译器/解释器、运行环境。库以类和方法(函数)的形式提供常用的例程,简化大型程序的编写。.NET框架也不例外,包含了许多类库。另外,把程序转换成可执行形式,并且运行执行文件时,编译器和运行环境是必不可少的。Mono软件包包含了.NET类库的一部分、一个C#编译器和.NET运行环境CLR(Common Language Runtime,公共语言运行时环境)。

Mono声称支持Linux、Solaris、FreeBSD和Windows。除了Intel x86系列的CPU(*86及各类Pentium等)之外,它还要支持Sparc、PowerPC和StrongArm处理器。

下面就来看看如何在Linux上运行Mono。

命令行应用首先从Mono主页下载软件。然后,执行下面的命令,安装所有RPM:

# rpm -ivh *.rpm

安装完成后,所有基本的动态执行库,包括System.Data.dll、System.dll、System.Drawing.dll、System.Web.dll和System.Xml.dll都被复制到/usr/lib下。接下来,在Linux文本编辑器中输入下面的内容,把文件保存为HelloMono.cs:

class HelloMono{public static void Main(string[ ] args){ System.Console.WriteLine(“Hello Mono”);}}

执行下面的命令编译C#文件:

# mcs HelloMono.cs

mcs是Mono的C#命令行编译器。与MS .NET SDK的csc编译器相似,mcs也有很多命令行选项。上面的命令将生成可执行文件HelloMono.exe。注意,这个执行文件不是Linux执行文件,而是一个.NET执行文件,或者说这个文件的可执行代码形式是中间语言(IL,Intermediate Language)。要运行这个执行文件,必须执行如下命令:

# mono HelloMono.exe

Linux控制台上将显示出“Hello Mono”。关于mcs和Mono的更多说明,请执行man mcs或man mono参考其man文档。

GUI应用Mono不支持Windows Forms,但在C#编程中可用GTK #编写GUI。GTK #是GTK+图形库的C#支持工具,可从下载。下载完成后,先要安装RPM:

# rpm -Uvh *.rpm --nodeps

解开gtk-sharp-0.2.1.tar.gz:

# tar zxvf gtk-sharp-0.2.1.tar.gz

进入子目录gtk-sharp-0.2.1,执行:

# ./configure --prefix=/usr# make?# make install

完成这一步骤之后,重新启动一次。与GTK#有关的所有动态代码模块(gtk-sharp.dll、atk-sharp.dll、gdk-sharp.dll、glib-sharp.dll以及pango-sharp.dll)都会被复制到/usr/lib目录。编译用GTK#制作GUI的C#程序时,必须通过-r参数引用它们。GTK#下载包中包含了几个示例程序,如HelloWorld.cs、Menu.cs、ButtonApp.cs等。编译这些文件的命令如下:

# mcs -r gtk-sharp -r glib-sharp HelloWorld.cs# mcs -r gtk-sharp -r glib-sharp -r System.Drawing Menu.cs# mcs -r gtk-sharp -r glib-sharp -r System.Drawing ButtonApp.cs

下面来看看如何通过-r选项引用前面各个.dll动态模块。执行startx命令启动X-Window,进入终端窗口,再进入示例程序所在目录,执行下面的命令分别运行各个程序:

# mono HelloWorld.exe# mono Menu.exe# mono ButtonApp.exe

Mono项目还在完善和发展之中,目前还没有移植好全部.NET类。但不管怎样,它对许多人来说将是一个好消息。有关Mono C#类库移植进展的信息,请访问。

考虑一个典型的服务器/客户机式.NET应用:最终用户只与客户端打交道,客户端最好是方便的GUI应用,许多人还会希望使用熟悉的Windows平台。但是,对于用户来说,服务器端使用Windows还是Linux完全无关。所以,服务器端可以用带有Mono的Linux构造,节省了配备专用Windows服务器的投资。Mono也将为应用迁移带来方便。如果Mono能够顺利发展,Windows开发者也将能够为Linux或其它非Windows平台开发应用。如果这样的话,不久之后出现一个类似Visual Studio .NET但免费或廉价的Linux开发IDE也说不定。

然而,所有这一切是否能够成为现实依赖于Mono是否能够茁壮发展,也依赖于Mono与Windows平台上的.NET框架兼容或相似程度。另外一些因素也很关键,例如Mono的性能、GUI的友好程度等。

00分享举报

火车头linux,火车头采集器 能在linux系统上使用吗?相关推荐

  1. iEmu:在Linux、Windows、Mac、Android系统上仿真运行iOS应用

    iOS 是一个"封闭"的系统,而Android是一个"开放"的系统,两者可谓是泾渭分明.现在,iEmu试图打破这两个操作系统之间的界限.iEmu是当年最 早破解 ...

  2. linux安装核显驱动程序,在Ubuntu系统上怎么安装英特尔核显驱动安装器

    Intel HD Graphics是Intel一系列的集成显示核心.不同于以往集成在芯片组的显示核心,显示核心是集成于处理器上,并且拥有独立的品牌.中国大陆官方中文品牌名称为"核芯显卡&qu ...

  3. linux系统安装teamview,在Ubuntu 18.04系统上安装TeamViewer的两种方法

    本文介绍在Ubuntu 18.04 LTS Bionic Beaver系统上安装TeamViewer的两种方法,第一种方法使用图形用户界面安装,第二种使用终端命令行安装,同时可以先参考在Ubuntu ...

  4. linux正在装入应用程序,在Fedora系统上快速重新安装所有已安装的应用程序

    在Fedora Linux上重新安装程序可能需要很长时间,主要是因为要做到这一点,你需要查看已安装应用程序的DNF,找出名称,并手动写出你想要设置的每个应用程序.你可以通过Fedora应用安装程序将所 ...

  5. redhat linux系统补丁,如何在CentOS和RHEL系统上安装或自动更新安全补丁

    在 Linux 系统上,其中一个最重要的需求就是保持定期更新最新的安全补丁,或者为相应的 Linux 版本更新可用的安全补丁. 在之前的文章中,我们分享了如何在 Debian/Ubuntu 上配置自动 ...

  6. 【转】将 Linux 应用程序移植到 64 位系统上

    原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...

  7. 火车采集器-对在固定网页上进行更新的文件的下载方法

    遇到的案例是这样的,在http://www.xxx.com/index.html 上有多个pdf的下载连接,不定时会有新的pdf增加(下载链接有变化),现在需要监控网页变化,并下载新增加的文件. 直接 ...

  8. 如何安装腾讯视频linux版,在优麒麟Ubuntu Kylin系统上安装腾讯视频Linux版DEB软件包...

    本文教你在优麒麟Ubuntu Kylin系统上安装腾讯视频Linux版Tenvideo_universal_1.0.10_amd64.deb软件包的方法. 一.下载腾讯视频Linux版客户端 由于优麒 ...

  9. linux nodejs 采集器,Linux记录-jstack采集namenode gc信息

    #!/bin/bash #以hdfs用户执行jstack每分钟采集一次namenode gc日志 #mkdir -p /tmp/jstack cd /log/hadoop/jstack_nn pid= ...

最新文章

  1. linux c 取消宏定义
  2. CodeForces 508E Arthur and Brackets 贪心
  3. micropython stm32f103_MicroPython技术及应用定义
  4. Invert Binary Tree
  5. 什么是java枚举_什么是java枚举
  6. linux amd64 界面,linux脚本编程---ubuntu-12.04-server-amd64如何配置图形界面
  7. PostgreSQL per database or per user audit use pg_log_userqueries
  8. 图像处理基础(三)_像素之间的3种关系
  9. 零基础学启发式算法(4)-模拟退火 (Simulated Annealing)
  10. 智慧医院建设方案_【聚焦医改】安泰创新智慧医院建设方案惊艳中国医院院长大会!...
  11. oracle j2ee数据库,J2EE连接远程Oracle数据库表
  12. 由一些公司的笔试题目想到的---模拟电路,数字电路最基本应该知道哪些
  13. iTextSharp
  14. aecmap快捷键_arcmap快捷键
  15. python培训中心-python培训中心
  16. 基于RK3568商显版开源鸿蒙板卡产品解决方案
  17. Web初学者-作业3-[聚光灯效果]
  18. linux kernel社区探索
  19. APP2SD图文储存卡分区教程
  20. 你的网站其实并不安全,真实的黑客攻防事件

热门文章

  1. kubelet cgroup driver与docker cgroup drive不一致解决方案
  2. 2C4T与4C4T在计算密集型任务下的效率对比
  3. 3.18 使用橡皮擦工具制作图像合成效果 [原创Ps教程]
  4. 使用Scratch进行少儿编程
  5. 破绕前——火箭开拓者第三战致胜的关键?
  6. sdio wifi 移植
  7. 计算机鼠标左键不起作用,为什么电脑的左键点了不起作用
  8. 岭回归实现鲍鱼年龄预测 MATLAB实现
  9. pam mysql安装_安装pam-mysql
  10. c语言 socket send,C语言中send()函数和sendto()函数的使用方法