说说Mono,你怎么看?

一片冰心在玉壶 2013-05-18 10:09:58
博客园看到的一篇文章:

地址:http://www.cnblogs.com/shanyou/archive/2013/05/18/3084963.html


本文的标题来自Scott Hanselman 的 Xamarin Evolve 2013 Talk Video - How C# Saved My Marriage,想写下这些东西主要是今天看到了CSDN的一个极客头条《观点:.NET向何处去?》和传智播客.Net学院:《Linux+Mono公开课》的视频看了2个开头的视频,邹华栋 老师讲的很不错,适合初学者,期待后续Jexus 和 nginx 公开课。但是课程中也有一些错误的地方, 本文将自己的一些看法及时记录下来和更多的人分享。

公开课提到Mono才刚出来不久还不成熟,这里涉及到一个Mono的历史,具体的历史在园子里有很多同学也介绍了,我都收录在这篇博客《Mono在国内的发展历程(相关文章汇总)》,2000年8月,微软、惠普和英特尔共同制定CLI和C#编程语言的标准规格,微软在2001年把CLI和C# 提交给了ECMA标准化 ECMA 335和ECMA 334),比Java还早的标准化了.NET平台。Miguel de lcaza 看到了C#语言的优雅和高效率,Ximian内部对如何创建能有效提升生产效率的工具进行了大量的讨论,他们的目标是通过这些创建出来的工具让用户可以在更短时间内创建出更多的应用程序从而缩短开发周期和降低开发成本。Miguel所在 Ximian发起的Mono开源项目,它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库。早期主要关注点是Linux桌面的软件开发。2001年.NET 1.0刚发布beta版本的时候,Mono项目就开始了。2003年4月份的时候微软提交到ISO ( ISO/IEC 23271和ISO/IEC 23270).尽管微软及其他合作伙伴持有CLI及C#的专利,ECMA和ISO要求所有专利都应该遵守“合理与非歧视准则”。除此之外,这些公司亦同意让用户免费使用这两项专利。差不多三年后,Mono于2004年7月30日发布了1.0版本。 从1.0版本到今年的3.0版本,已经发展了10几年了,所以说已经是历史悠久,而不是刚出来的。

公开课还提到了Mono最近更新非常快,最近2年微软不断地走向开放,把相关的开源项目的协议都更改为了Apache Licence 2(asp.net mvc/dlr/ironpython/ironruby/f#等等),这样就可以直接集成进入Mono项目了。最近2年微软还有一个重要的开源项目是Nuget,Nuget相当于是在把.NET社区的资源进行汇集,最新发布的2.5版本对Mono也提供了支持(虽然还有瑕疵)。相信生态系统进入良性循环会更加的繁荣。Mono项目在发展的过程中一直比较关注客户端的开发,对Web的开发重视不够,可以从Mono默认提供的ASP.NET服务器XSP看出来,XSP最早还是来自于微软的内部团队,至今一直不能承担起ASP.NET服务器的重任,这些年偏偏互联网的发展非常的迅速,Linux服务器的发展更加迅猛,可以说Mono错过了一个机会。Mono上由于Web服务器上发展欠缺,国内出现了一款LINUX ASP.NET WEB服务器:JEXUS,2011年我在InfoQ上写了这篇文章介绍,目前这款服务器非常的强劲,网上也有相关的测试数据,这里要强调一点的是,在做IIS/Jexus 这样的Web服务器的时候,需要考虑到.NET的特点,先预热一下再开始压测,不然测试结果有失公正。大家在Linux上选择Linux ASP.net web服务器就选它准没有错,这样Windows搭配IIS ,Linux搭配Jexus,在Web领域可以活的很轻松。不过iPhone所掀起移动互联网浪潮的出现又把重点回归到了云+端。在Novell公司被卖之前Mono开发团队就开始了Monotouch的开发,而且取得了非常的成功,即使是在Apple的强硬的绝不允许在ios上运行动态库,Mono团队通过AOT技术完美解决,同时把目光转向了Android平台,经过对Android的深入的研究,完全使用C#移植了Andorid。发展到今天已经在移动开发方面让C#程序员有了最好的工具,可以跨越主流的移动开发平台。所以说Mono是非常成熟的一个平台。

今年的.NET开源社区的会议不断,在不久前结束的Xamarin Evolve 2013开发者大会上,Xamarin团队成员向600多名C#开发者介绍了该产品的新功能并通过授课的方式让大家更加了解Xamarin的使用方法。接下来还有2013年7月22日-25日举办的MonkeySpace ,具体可以访问官方网站 http://monkeyspace.org/。MonkeySpace 之前叫做MonoSpace,现在是官方的跨平台和开源.NET会议。想更多了解有关iPhone和Andr​​oid,Mac和* nix平台使用.NET技术? MonkeySpace围绕着如何在.NET中使用开源技术为.NET社区提供场地,合作,分享和社交活动。

CSDN的一个极客头条 观点:.NET向何处去? 通过上面的介绍,大家应该很容易自己做出判断。从移动开发的ios,android,wp,windows开发,再到web/cloud等等开发领域都可以用C#。而且国内对.NET开发的应用也在深入,比如园子里陈贞宝的OSGI.NET开放工厂,陈晴阳的面向领域驱动的企业级应用开发框架Apworks,Linux ASP.NET Web服务器Jexus。


作者认为:C# 是手机游戏开发的首选语言

行吧,感觉我很久没喷人了,但我可以告诉你一个事实。现在mono是手机游戏的首选。55%以上的IOS的游戏是基于mono的!!!!
你还不知道把,用C#能开发ANdroid游戏,IOS游戏。直接发布。这种方式,已经成为手机游戏首选的方式!!!
神庙逃亡知道不?? 基于mono的
致命空袭知道不?? 基于mono的
武士2知道不?? 基于mono的
王者之剑知道不??基于mono的

蒸汽之城,WEB的游戏,页游,你百度下!!C#开发的!!!
..........

总之,C# 是手机游戏开发的首选语言


以上都是作者说的


你们怎么看?







...全文
1129 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaojunyi3721 2013-12-25
  • 打赏
  • 举报
回复
我想问句Xamarin 也就是mono如果购买了android和ios版本 是写一份代码就可以发布到android和ios平台吗 像appcan phonegap一样跨平台的
j66 2013-11-17
  • 打赏
  • 举报
回复
楼上,如果你用Jexus web server,你会得到更好的ASP.NET性能。 Nginx通过mono-FastCGI运行ASP.NET,本质上是通过fastcgi这个中间层调用mono.webserver这个类库实现的,由于mono.webserver没有对linux进行针对性的优化,加上fastcgi中间层对资源的消耗,因此,这种架构方式很难完全体现出mono ASP.NET的性能。
jayrao5566 2013-05-21
  • 打赏
  • 举报
回复
mono搞了一年.觉的还可以.做ios开发.
  • 打赏
  • 举报
回复
这里有一个关于Mono的性能测试: http://www.imono.cc/Blog/ViewPost.aspx?pageid=26&ItemID=126&mid=66 这个站点还有一些介绍。。。Mono这个东西前景如何?
足球中国 2013-05-19
  • 打赏
  • 举报
回复
个人认为ios很有潜力。 winxp明年一但不再能用。转mac的会更多。 现在很多硬件厂商都在推mac机的驱动。 到时候绝大多数普通的pc都可以装得上mac机。 老乔的影响正在减小,苹果可能为了占市场让iphone ,ipad,mac大跳水去占领市场。 而且苹果在用户界面的体验上很会抓人心。 对于开发工具。这个不是由开发人员选的。
  • 打赏
  • 举报
回复
要是个人开发者,Mono for Android 收费也不便宜。。
  • 打赏
  • 举报
回复
我不打算接触linux。对于iOS,计划中暂时还没有需求。
  • 打赏
  • 举报
回复
我接触过好几种手机开发,从mobile的5、6,以前的symbina、j2me开发,实际早期手机SDK卡上固定的一些增值服务的开发我也接触过,当然WinPhone更不用提啦。可是我使用 Xamarin 之后,有一件事让我非常爽,“我可以扔掉模拟器而飞速地直接用vs调试并在真机上运行”,我可以在真机运行自己写的Android测试引擎,来测试和调试我的 Mono for Android 程序。那么以后我就再也不会使用必须用手机模拟器的环境来写手机程序了,我甚至都懒得理Windows Phone了。唉!
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
至少微软在手机平台,是个失败者。此时多多靠mono团队才是明智的。
近距离膜拜大神。。。 对于Mono的跨平台,也就是文中所说的Linux Android IOS,您,怎么看?
  • 打赏
  • 举报
回复
至少微软在手机平台,是个失败者。此时多多靠mono团队才是明智的。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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