人们接受Mono之前必须明确的事情

YapingXin 2011-08-29 12:17:22
和飞飞鱼一样,我也一直在向一些公司和个人推广Mono。不得不承认,现实世界中,人们一提到Mono,首先的需求就是能够把Microsoft .Net下的程序移植到Mono.Net。现实和人们的这个期望多少有些差距,虽然这个差距并不大。差距产生的原因是,Microsoft.Net和Mono.Net,并不是“同一个.Net”,它毕竟是“两套不同的.Net”。虽然这两套.Net之间绝大多数特性是可互相兼容、可互相移植的,但依然有一些特性,要么是Microsoft.Net具备而Mono.Net不具备,例如WPF;要么是Mono具备而Microsoft.Net不具备,例如Mono.Unix。要么是Microsoft.Net具备而Mono.Net正在努力追赶,例如WCF。总之,必须让人们明白,这两套.Net,它们有各自不同的发展历史和轨迹,所幸的是对于绝大多数的.Net特性,更甚一点说是对于绝大多数C#特性,这两套.Net都提供了完美的支持。必须明白这一点,然后再谈如何去接受Mono这个新鲜事物。

我不知道你怎么样,反正我在明确了这些之后,依然是选择接受了Mono,而且一直在充满激情地充当一个不拿工资的Mono义务宣传员。


此文来自imono.cc上的讨论:http://www.imono.cc/Forums/Thread.aspx?thread=83&mid=38&pageid=20&ItemID=13&pagenumber=1#post274


注:早在2001年就诞生的Mono,按理说已经不是一个新鲜事物了,但是直到今天了解它的人还不多,即使是一些从事.Net开发多年的开发者也未必了解它,所以我依然称它为“新鲜事物”。这里头有多种原因导致它依然是新鲜事物”。在Open Source、GNU、Linux的阵营中,不少人出于对Microsoft的排斥,进而排斥.Net。(这些人的一个显著特征就是在任何场合下拼写Microsoft的时候,必拼写为M$)另一方面,.Net阵营中的一些人也从来没有想过要把优秀的.Net/C#应用在非Windows平台,或者有这种需求的时候自然而然地就想到Java那里去了,也没有认真调研一下,到底.Net能不能运行在Linux上。其实只要大家屏弃一些技术领域中不应有的“宗教式的观念”,再多一些广闻博识,自然就会有强烈的愿望去了解Mono、接触Mono,进而喜欢上Mono。
...全文
116 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sntyy 2011-11-01
  • 打赏
  • 举报
回复
有人成功把hell word放到android上运行过吗?我在模拟器上可以运行,但放在android手机上一打开程序就报错,退出了
Ny-6000 2011-08-29
  • 打赏
  • 举报
回复
真地,第一次听说.
足球中国 2011-08-29
  • 打赏
  • 举报
回复
很多人拿他做反编译反混淆破解方面的工具。
自从mono几个月前重新组建。好象现在主要的研究方向已经是向商业软件靠拢了。
YapingXin 2011-08-29
  • 打赏
  • 举报
回复
谢谢shwicho!!!
  • 打赏
  • 举报
回复

老辛 您老辛苦了,老费周章的了,了解下Mono
YapingXin 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wood87654321 的回复:]
只会VB.Net且不想在.Net内部再费心搞语言移植的人路过
[/Quote]

1、无论Microsoft.Net,还是Mono,都支持VB.Net;
2、我这篇文章不是为了进行语言移植,而是为了进行平台迁移(操作系统平台)。
YapingXin 2011-08-29
  • 打赏
  • 举报
回复
文章略有修改,重新发表一下:


人们接受Mono之前必须明确的事情

作者:辛亚平
日期:2011年8月29日
网址:http://blog.csdn.net/xinyaping/article/details/6728807

和飞飞鱼一样,我也一直在向一些公司和个人推广Mono。不得不承认,现实世界中,人们一提到Mono,首先的需求就是把Microsoft .Net下的程序移植到Mono.Net。现实和人们的这个期望多少有些差距,虽然这个差距并不大。差距产生的原因是,Microsoft.Net和Mono.Net,并不是“同一个.Net”,它毕竟是“两套不同的.Net”。虽然这两套.Net之间绝大多数特性是可互相兼容、可互相移植的,但依然有一些特性,要么是Microsoft.Net具备而Mono.Net不具备,例如WPF;要么是Mono具备而Microsoft.Net不具备,例如Mono.Unix。要么是Microsoft.Net具备而Mono.Net正在努力追赶,例如WCF。总之,必须让人们明白,这两套.Net,它们有各自不同的发展历史和轨迹,所幸的是对于绝大多数的.Net特性,更甚一点说是对于绝大多数C#特性,这两套.Net都提供了完美的支持。必须明白这一点,然后再谈如何去接受Mono这个新鲜事物。

我不知道你怎么样,反正我在明确了这些之后,依然是选择接受了Mono,而且一直在充满激情地充当一个不拿工资的Mono义务宣传员。


此文来自imono.cc上的讨论:http://www.imono.cc/Forums/Thread.aspx?thread=83&mid=38&pageid=20&ItemID=13&pagenumber=1#post274


我只有一次机会在公司的商业项目中应用了Mono,但是那一次我们取得了辉煌的成功。之所以能够有机会应用Mono,来自于两个条件:

我们有明确的需求将产品同时部署在Windows和Linux平台;
我在这个项目中,承担了一部分关键的系统架构工作,并在实施阶段带领、主导了服务器端的开发工作。正式因为我有这样的主导权,才得以应用我所认可的Mono方案。

对于这个项目我写过一篇简短的介绍,但这个介绍里面的客户名称不是真的。出于商业利益方面的考虑,我故意用了假名称。不曾把这篇文章正式地放在博客上。以后整理一下我打算写一篇Mono工程实践类的文章,到那时再详细介绍这个项目(适当略去公司和客户的隐私)。


在我自己业余时间琢磨的一些事情上,我可能会尽可能地在Windows环境编写Microsoft.Net程序时尽可能兼容Mono,或者在Linux环境中编写Mono程序时尽可能兼容Microsoft.Net。


要做到这一点并不难,因为Mono已经为我们想到这一点了,它提供了一个兼容性检查工具:
MoMA - Mono Migration Analyzer
http://www.mono-framework.com/MoMA

有了这个工具,我们不仅可以方便地在开发软件之初就经常做兼容性检查,也可以在打算做Porting(无论from Microsoft.net to Mono还是from Mono to Microsoft.Net)时,对可以执行做一个正确的评估。


有关兼容性,再多说一点:这个话题,往往和产品设计有关,不仅仅和Microsoft.Net、Mono有关。

对于Java程序的平台兼容性来说也是如此。虽然大家都知道Java是跨平台的,但越是大型的Java应用越不能真正做到跨平台。虽然Java语言本身以及它的虚拟机可以做到跨平台,但host Java程序的Web Server(WebLogic、Apache+Tomcat、Resin)存在平台差异,Java程序所调用的数据库存在平台差异,Java程序所采用的一些第三方类库、中间件更是存在平台差异。所以,实际项目中,那些大型的Java项目往往一开始决定用什么平台,就一直用什么平台,并不做跨平台这种事情。


对于Mono、Microsoft.Net来说亦是如此。


但如果真的有跨平台需求,那么在做架构的时候就要考虑到这一点。比如说原本我们可能用Windows平台上的SQL Server作为后台数据库,为了以后跨平台,就得用一个Windows、Linux都能运行的数据库,比如说Postgresql。


现在已经有越来越多的第三方.Net类库申称其同时兼容Microsoft.Net和Mono。比如说Stack Service。


注:早在2001年就诞生的Mono,按理说已经不是一个新鲜事物了,但是直到今天了解它的人还不多,即使是一些从事.Net开发多年的开发者也未必了解它,所以我依然称它为“新鲜事物”。这里头有多种原因导致它依然是新鲜事物”。在Open Source、GNU、Linux的阵营中,不少人出于对Microsoft的排斥,进而排斥.Net。(这些人的一个显著特征就是在任何场合下拼写Microsoft的时候,必拼写为M$)另一方面,.Net阵营中的一些人也从来没有想过要把优秀的.Net/C#应用在非Windows平台,或者有这种需求的时候自然而然地就想到Java那里去了,也没有认真调研一下,到底.Net能不能运行在Linux上。其实只要大家屏弃一些技术领域中不应有的“宗教式的观念”,再多一些广闻博识,自然就会有强烈的愿望去了解Mono、接触Mono,进而喜欢上Mono。
YapingXin 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wood87654321 的回复:]
只会VB.Net且不想在.Net内部再费心搞语言移植的人路过
[/Quote]

Mono支持VB.Net。
wood87654321 2011-08-29
  • 打赏
  • 举报
回复
只会VB.Net且不想在.Net内部再费心搞语言移植的人路过
YapingXin 2011-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zanfeng 的回复:]
自从mono几个月前重新组建。好象现在主要的研究方向已经是向商业软件靠拢了。
[/Quote]

应该说是商业与开源都在发展。

一方面,Mono的主人Xamarin公司正在大力发展MonoTouch,应用在Android和iOS开发的商业领域;另一方面,Xamarin公司也在大力发展Mono基础类库,这是MonoTouch的基础,这部分走的是免费且开源的道路。

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧