Linux下.NET开发环境构建

     .net,C#,Asp.Net VisualStudio跟着微软一步步走来,有成功,有喜悦,有收获,但也有一种莫名的危机感,整理思路,规划下未来的道路:花四层左右的时间继续跟着微软的步伐,在比尔教主的大旗下继续开拓疆土,同时花六成左右的时间将重心转移到Linux,Php ,C/C++,分布式文件系统于存储,高并发、大数据量互联网架构上,看上去很多,当然梦想总是有的,只有一步一步往前走了!

   因此这两天转移到linux上折腾一番,把Linux上开发环境搭建起来了,首先是.NET开发环境。mono这个东西早就听说了,引用网上的介绍: Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET,能够使得开发人员在Linux用C#开发程序。一句话mono就是Linux上的.netframework。下面介绍mono的安装:

在下机器的环境ubuntu10.04。

1、首先到官网下载mono,版本是:mono-2.6.7.tar.bz2

2、解压、编译、安装

root@localhost:/home/guoyuanwei/下载 # tar -jxvf mono-2.6.7.tar.bz2

将解压后的文件夹放到常用的放软件的地方,我的是/usr/mysoft/目录下:root@localhost:/home/guoyuanwei/下载# mv mono-2.6.7 /usr/mysoft/

root@localhost:/usr/mysoft/mono-2.6.7# ./configure --prefix=/opt/mono这个是配置安装目录,准备将软件安装在/opt/mono下。(特别注意:在configure 编译过程中需要用到g++和其它一些相关的编译工具,在编译过程中可看报错信息,按照报错信息中提示安装所需要的工具。像我这里就有一个错误:configure: error: You need to install bison,意思所缺少bison这个东西,只有先安装在配置了。下载bison-2.5.tar.gz 进行安装。)

# make

# make install

完成mono的安装。运行命令

root@localhost:/opt/mono/bin# mono 初步测试下看安装是否成功。为了在任何地方都可以运行mono命令,下面修改下环境变量:

#vim /etc/profile

在文件末尾加上以下配置:

MONO_HOME=/opt/mono

PATH=$MONO_HOME/bin:$PATH

CLASSPATH=.:$MONO_HOME/lib/

export MONO_HOME

export PATH

export CLASSPATH

让/etc/profile文件修改后立即生效 ,可以使用如下命令:
# source /etc/profile

完成后重新登录,即可在任意位置运行momo命令

下面通过几个简单程序测试下mono环境安装所否正确

(1)创建一个hello.cs文件,敲入如下代码:如果熟悉windows下C#开发的话,一看就知道这就windows 下的控制台程序哦!

 

using System;
 
public class HelloWorld
{
	static public void Main ()
	{
		Console.WriteLine ("Hello Mono World");
	} 
}

 

编译文件: root@localhost:/home/guoyuanwei/GYWStudy# gmcs hello.cs(注意:如果这个时候没有安装gmcs编译器,会提示出错程序“gmcs”尚未安装。  您可以使用以下命令安装:
apt-get install mono-gmcsgmcs是C#的编译器,支持2.0的运行时,现在最新的好像是4.0的运行时里,命令所dmcs,可以查看官方文档看看2.0的运行时支持哪些C#特性

编译成功后会生存一个hello.exe的文件,运行下面命令,得到结果。

# mono hello.exe
Hello Mono World

(2)接下来在做个Windows窗体程序的实验。

using System;
using System.Windows.Forms;
public class HelloWorld : Form
{
	static public void Main ()
	{
		Application.Run (new HelloWorld ());
	}
 
	public HelloWorld ()
	{
		Text = "Hello Mono World";
	}
}

 Windows窗体程序开发,你必须在linux下面安装 System.Windows.Forms这个程序集所在的包,实际上就是一个GUI开发的工具包。不过在Linux下作windows窗体程序的开发,感觉没多大必要。选择mono的原因就所为了利用C#强大的语法特性在linux上开发高效的软件。

编译:# gmcs hello.cs -pkg:dotnet(注意:这里有一个编译选项-pkg:dotnet,这个是添加程序集的应用,因为我们在程序里面用到了标准的windows窗体程序的命名空间,如果编译出现找不到到包的错误,可能是环境变量的问题,添加一个环境变量PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig,这个是我的mono安装路径,具体情况看你的路径

运行:# mono hello.exe

结果弹出一个窗体程序出来。

(3)Linux上图形界面软件开发GTK#


using Gtk;
using System;
 
class Hello {
 
        static void Main()
        {
                Application.Init ();
 
                Window window = new Window ("helloworld");
                window.Show();
 
                Application.Run ();
 
        }
}

上面的程序用到了gtk库,所以要安装GTK#才能编译通过,按照配置-》编译-》安装进行。

root@localhost:/usr/mysoft/gtk-sharp-2.12.11# ./configure --prefix=/opt/gtk-sharp

配置的过此中我遇到了次错误:

checking for csc.exe... no
configure: error: You need to install either mono or .Net

这个错误害人不浅,搞了我好几个小时,表面上说是找不到csc.exe程序,实际上不是,是因为在配置的过程中找不到mono.pc这个文件所造成的,而这个mono.pc在安装后的mono下面。

所以需修改环境变量,增加一个PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig在文件etc/profile中。

# make

# make install 安转完毕。

有了此利器,linux下面的图形界面软件开发不再是难事。

 

 (4)上面的编码,编译,运行都所通过命令行完成,想想强大VisualStudio开发工具,在linux上自然也有,那就是monodevelop

 








 

 

 

 

 

posted @ 2012-03-04 02:39 郭远威 阅读(...) 评论(...) 编辑 收藏