转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
HelloWorld——.NET on Linux!         ★★★★

HelloWorld——.NET on Linux!

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1358 更新时间:2009/4/22 20:45:46

作为一名.NET开发人员,我一直以来都有一个愿望,那就是让我的软件运行——不——是能够运行在所有的电脑里,不管它运行的是什么操作系统,不管它归属于哪个阵营。此前一直听说MONO(http://www.go-mono.org)正在做这方面的努力,然而真正让我走入跨平台世界的却是另一个名不见经传的项目——DotGNU。

 

什么是DotGNU?

 

从名字中就可以看出,DotGNU归属GNU阵营,它的目标是把.NET环境移植到以GNU/Linux为首的多种操作平台之上,从而实现真正意义上的跨平台.NET开发。目前,该项目已经能够支持GNU/Linux、Windows、NetBSD、FreeBSD、Solaris以及MacOS X等多种操作系统。如果你也和我一样对跨平台开发.NET应用有兴趣的话,那么请到DotGNU的主页(http://www.dotgnu.org)上去更多地了解有关该项目的情况,我在这儿就不多介绍了。

 

Hello World on Linux

接下来就让我们开发一个真正跨平台的.NET程序,为简便起见,我们就写一个简单的HelloWorld吧:)另外,由于我机器上目前只有Windows和Linux两种环境,所以只能演示跨越这两个平台的应用,如果你有Mac OS、Solaris或者其它环境并且感兴趣的话,那么也请你帮我来完成在其它平台上的移植:)。

 

让我们开始吧。首先需要配置一套DotGNU运行环境(就如同配置.NET SDK一样)。可以从DotGNU网站上免费下载最新的安装文件(约210M),直接执行安装即可。当然你也可以只下载它的源代码并在本机编译,甚至从CVS中即时获取最新的版本。安装之后,请把安装目录下的bin子目录的绝对路径添加到机器的PATH变量中,以方便随时调用编译器及其它辅助开发工具。

 

开发环境设定好之后就可以进行编码了。请在Windows里打开你惯用的文本编辑器,写一个最简单的C#版Hello World如下(我用的是Emacs):

把它存盘成HelloWorld.cs之后就可以编译了。由于是在Windows操作系统里,所以你既可以用微软的csc也可以用DotGNU的cscc。前者大家日常接触的最多,所以在这儿我就演示如何调用cscc进行编译。在Emacs里调出shell(或者在cmd.exe中),运行以下命令(请确保HelloWorld.cs所在目录是当前目录):

 

cscc –o HelloWorld.exe HelloWorld.cs

 

其中,o指示生成文件的名称。整个用法与微软的csc几乎一样。

 

如果编译成功,接下来就可以运行HelloWorld.exe了。与编译一样,由于这是在Windows操作系统里,因此你可以有两种方法运行它。首先便是在cmd.exe里直接运行HelloWorld.exe,这也是Windows下运行应用程序的惯例;当然你也可以试试DotGNU提供的ilrun.exe工具,它的作用就是让应用程序在DotGNU提供的.NET运行时环境中运行。调用方法如下:

 

ilrun HelloWorld

 

运行成功:

好,既然这段代码在Windows下可以编译和运行了,那么我们接下来就把它拿到Linux下面编译并运行,看看奇迹能不能发生:)

 

打开VMWare,启动Red Hat Linux 9虚拟机。由于.NET程序的运行需要.NET运行时环境支持,因此我们在Linux下面也同样应该安装DotGNU环境。DotGNU安装文件中针对不同的操作系统提供有不同的安装方式,按提示一步步执行正常安装即可。

 

接下来就请找到刚才编写过的那个HelloWorld.cs文件(你可以通过与Host建立网络连接实现,也可以用最简便的方法——拷贝了事:),在Bash中(如果你安装的是其它不同的shell,如CSH,则操作方式略有不同)执行和Windows下一样的编译命令:

 

cscc –o HelloWorld.exe HelloWorld.cs

 

注意,output文件不一定要采取.exe后缀,这里我只是为了延用Windows下的习惯。

 

如果没收到任何错误提示,那么恭喜你,编译成功了!现在就可以运行ilrun来执行我们的HelloWorld.exe了:

 

ilrun HelloWorld

 

哇!

由于我在源代码中增加了一个处理命令行参数的逻辑,因此你也可以像上图中那样随便输入一些字符串,HelloWorld.exe都会把它们分别打印出来。

 

好了,我们可爱的HelloWorld真的已经实实在在地跨越了不同的平台,真正实现.NET了!如果你有兴趣,还可以给它增加不同的功能,测试看DotGNU是否已经把你关心的功能予以移植。另外,可能所有人最关心的一个问题是:DotGNU能把System.Windows.Forms命名空间移植成功吗?答案是肯定的!在DotGNU的主页上就有WinForms应用程序运行在Linux、BSD、Mac OS等上的截图,DotGNU提供有多个demo及源码以供开发人员参考,我在Cygwin下也的确成功编译并运行了WinForms应用程序。然而由于我目前还无法成功配置Linux下完整的DotGNU运行环境,因此只能编译而无法成功运行WinForms程序。不过我相信这点困难只是暂时的,我会尽快把问题解决然后给大家附上WinForms版的HelloWorld。:)

 

目前DotGNU项目还在快速地进行之中,因此我们有理由相信DotGNU的工作,相信我们喜爱的那些.NET程序总有一天会成功地运行在不同的操作系统上!

 

------------------------------

musicland

http://blog.joycode.com/musicland

[1] [2]  下一页


[C语言系列]NET 中C#的switch语句的语法  [网络安全]winlogon.exe 病毒症状及查杀方法
[Sql Server]不用SqlTransaction执行数据库事务处理  [Web开发]web.config更改网站上传文件大小的限制
[Web开发]增加或修改Session的会话时间  [Web开发]Web.config文件详细介绍
[Web开发]分析器错误信息:无法识别的配置节“connectionStr…  [Web开发]如何NET使用web.config配置文件连接SQL数据库
[Web开发]authentication mode=Windows/之“/”应用程序中的…  [Web开发]出现SqlTransaction 已完成;它再也无法使用的错误…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台