注:这是我第一次翻译文章,肯定有很多错误的地方,如果实在是觉得我说的不知所云的话那么请看原文: http://www.codeproject.com/cpnet/introtomono1.asp
这是第一篇,后面的还没有翻译,过两天再放上来,由于是第一次发帖,我在下面的选项中选择把它放到首页去了,不知道对不对,如果不对的话请通知我
如果您有经验想传授我一些或者愿意和我交流的话请给我发邮件:
Mono 初探 ----- 创建你的第一个 Mono 应用程序 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
By Brian Delahunty 翻译:雷波
这是关于介绍 Mono 的系列文章的第一篇 , 在这篇文章中将向你介绍怎样安装 Mono, 并将带领你去编译你的第一个跨平台的应用程序 .
介绍
不久前Code Project的工作人员对外宣布了一个新的跨平台的.NET SECTION.那时我正在使用C#和.NET平台来做完全基于WINDOWS的应用程序,让C#编写的应用程序在其他平台上运行,就像是梦想变为现实一样,怎么能让人不激动呢?我还从来没有这样做过呢.我是命中注定要跟着它了:在一个新的项目列表里,需要我工作在好几种不同的系统之间,这毫无疑问我一定会利用它跨平台的优势. 既然目前大多数的开发是基于windows平台的,那么技术模式还跟以前一样,而且还可以继续保持用.net开发的乐趣了.
不过那时我对于使用.NET进行跨平台开发的事情还不太清楚,但我还是慢慢的明白了.当然了,我以前就已经听说过Mono, Rotor和Platform.NET,并且也乱七八糟的读了一些文章,但我在对它们的实际使用上没有一点经验.在继续学习了一段时间后我有了一个想法,那就是在将来的项目中Mono将是最好的选择,所以我决定深入的学习下去.虽然在大学中学习的C,C++和java在Linux上使用方法都是一些很基本的东西,可我还是非常熟悉Linux并且使用它开发过一些应用程序.但在我继续深入学习Mono之前,那些试图在Linux上构建并运行Mono的windows开发者在BLOG上所写的东西让我有些担心.然而更令我吃惊的是,让Mono运行在Linux上其实是非常简单的.那不用说在windows上就更简单了.
Mono到底是什么?
当Microsoft将.NET展现给世界的时候,他们就已经将做的足够好的Common Language Infrastructure (CLI)连同C#一起交给了European Computer Manufactures Association,其实把这个组织叫做ECMA的话更广为人知一点.这就允许了为CLI和C#的开发提供一个ECMA标准,这些ECMA标准最终也就变成了ISO标准.读到这里你也许会这样想:”那么这和Mono是什么有什么关系呢?”.请放松,让我们慢慢来,我马上就说到它了.标准化就意味着确定了CLI应该怎样工作和C#这种编程语言的各种细节.这些都是公开的,任何人有时间并且愿意的话都可以实现他们自己的CLI,其实这在本质上就是做了一个他们自己的.NET版本.这时,Mono被提出了.Mono是一个”允许开发者自己去构建的一个基于.NET Framework的跨平台应用程序的开源开发平台”.在写这篇文章的时候,Mono最新的稳定版本是1.05,它提供了以下特性:
1. 一个和ECMA标准一致的Common Language Runtime
2. 一个C#编译器
3. 一个类库集合
4. 一些辅助工具,比如: Disassembler, Debugger和IDE等
虽然这些东西听起来不是很多,但是在成功的完成Mono项目后它们都给人留下了很深的印象.Mono的类库已经实现了ADO.NET,ASP.NET和System.Windows.Forms功能,其他的那些就像是.NET开发者所熟悉的FCL类库那样.很有特色的GTK# Library也被添加了进来,这样就能使用GTK+工具包来开发GUI应用程序了.所有的这些,都是非常令人印象深刻的.
你可以使用Mono开发并运行.NET应用程序,它们可以在Linux,Windows和另外一些平台上运行.你也可以在Linux服务器上创建一个ASP.NET应用程序,你甚至可以用Microsoft C#编译器编译你的应用程序,而让它在Mono Runtime和vice versa上运行.
我写这篇文章的意图是什么?
这篇文章是一系列文章的第一篇,在这个系列文章中,我将阐述如何使用Mono来开发跨平台的应用程序,也就是怎样在Linux和Windows上使用Mono来创建并运行应用程序.我将向你解释怎样安装Mono,然后我还会演示如何使用C#编译器来编译并运行它,这也许就是你的第一个跨平台的.NET应用程序.我也会列出一些同Mono一起使用的辅助工具.最后,我会向你演示如何来运行这个应用程序.
由于我还没有机会在Mac上使用Mono,所以在这篇文章中就不提它了.虽然现在还不能肯定,但在今后的文章中我会试着涉及它的.
预备知识
这篇文章不会教你怎样使用C#编程,这个你要自己去学了.在Code Project上有很多不错的介绍性文章,你可以读一读以加深你对语言的理解.虽然不要求你必须有.NET Framework的知识,但如果你懂它那就再好不过了.