说说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# 是手机游戏开发的首选语言


以上都是作者说的


你们怎么看?







...全文
1186 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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团队才是明智的。
笔者有幸接触过以下几种常用的配置管理工具:VSS、SVN、Clearcase,在此做一个小小的总结,并Ctrl+C了以前一些网友的对比评论,不一定准确,只是希望通过这些总结对自己和初学者有所帮助。如果想进一步了解这些工具,请baidu和google,如果想深入了解,敬请到图书馆借书并实践。一、 Visual Source Safe( 简称 VSS )VSS是微软的产品,是配置管理的一种很好的入门级的工具。VSS最初的名字叫Source Safe,是一家小公司的产品,92年曾经获了最佳小型管理工具奖,然后立即被微软收购。但是微软收购的只是source safe的Windows版本,在美国还有另外两家公司分别获得了继续开发和销售source safe的Mac版本和Unix版本的许可,在MS买进vss之后,基本上没有对vss进行任何的研发,MS内部自身也不用vss。SourceSafe长得很象早先土气的文件管理器,的确难看。但是难看不碍事,SourceSafe的优点可以用8个字来概括“简单易用,一学就会”,这个优点是它老妈Microsoft遗传下来的,是天生的。虽然SourceSafe并不是免费的,但是在国内人们以接近于零的成本得到它,网上到处可以下载啊。当然Microsoft也不在乎这个小不点的软件,它属于“买大件送小件”的角色。如果你合法地得到Visual Studio,你就得到了免费的SourceSafe。评价如下:易用性:★★★★★易学易用是 VSS 的强项, VSS 采用标准的 windows 操作界面,只要对微软的产品熟悉,就能很快上手。 VSS 的安装和配置非常简单,对于该产品,不需要外部的培训(可以为公司省去一笔不菲的费用)。只要参考微软完备的随机文档,就可以很快的用到实际的工程当中。功能:★★★VSS 的配置管理的功能比较基本,提供文件的版本跟踪功能,对于 build 和基线的管理, VSS 的打标签的功能可以提供支持。 VSS 提供 share (共享 ) 、 branch( 分支)和合并( merge) 的功能,对于团队的开发进行支持。 VSS 不提供对流程的管理功能,如对变更的流程进行控制。 VSS 不能提供对异地团队开发的支持。此外 VSS 只能在 windows 平台上运行,不能运行在其他操作系统上。安全性:★★★VSS 的安全性不高,对于 VSS 的用户,可以在文件夹上设置不可读,可读,可读 / 写 , 可完全控制四级权限。但由于 VSS 的文件夹是要完全共享给用户后,用户才能进入,所以用户对 VSS 的文件夹都可以删除。这一点也是 VSS 的一个比较大的缺点。总体成本:★★★★VSS 没有采用对许可证进行收费的方式,只要安装了 VSS ,对用户的数目是没有限制的。因此使用 VSS 的费用是较低的。技术支持:★★★★★由于 VSS 是微软的产品,可以得到稳定的技术支持。二、 SVN(Subversion) - CVS(Concurrent Version System)的替代和升级版本先CVS,CVS是开源代码的配置管理工具,其源代码和安装文件都可以免费下载。记得在学校读研的时候,学校实验室的代码全部都用CVS管理,为啥?很简单,两个字:免费!它与Eclipse配合,基本上Java的代码编写,代码管理和版本管理都可以“免费”搞定了。SVN(Subversion)是近年来崛起的版本管理工具,被誉为cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。虽然在 2006年时SVN的使用族群仍然远少于传统的CVS,但已经有许多开放源码团体决定将CVS转换为SVN。已经转换使用SVN的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团体。许多开发团队换用SVN是因为 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供SVN的支援整合。 除此之外,一些自由软件开发的协作网如SourceForge.net除了提供CVS外,现在也提供专案开发者使用SVN作为原码管理系统,JavaForge、Google Code以及 BountySource 则以SVN作为官方的源码管理系统。2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。易用性 : ★★★★Subversion支持linux和windows,更多是安装在linux下。svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。目前业界评价的SVN易用性正在提高。功能:★★★★SVN 的功能除具备 VSS 的功能外,还具有:它的客户机 / 服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的版本管理检出 (checkout :注 1)的模式避免了通常的因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样, SVN 也不提供对变更流程的自动管理功能。安全性:★★★★一般来, SVN 的权限设置单一,无法完成复杂的权限控制;但是 SVN 通过 SVN ROOT 目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。总体成本:★★★★★SVN 是开发源码软件,无需支付购买费用。技术支持:★★★同样因为 SVN 是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。三、 ClearCaseRational公司的ClearCase是软件行业公认的功能最强大、价格最昂贵的配置管理软件。ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。ClearCase通过TCP/IP来连接客户端和服务器。另外,ClearCase拥有的浮动License可以跨越UNIX和 Windows NT平台被共享。ClearCase的功能比CVS、SourceSafe强大得多,但是其用户量却远不如CVS、SourceSafe的多。主要原因是:ClearCase价格昂贵,如果没有批量折扣的话,每个License大约5000美元。对于中国用户而言,这无疑是天价。用户只有经过几天的培训后(费用同样很昂贵),才能正常使用ClearCase。如果不参加培训的话,用户基本上不可能无师自通。易用性:★★★ClearCase 的安装和维护远比 VSS 复杂,要成为一个合格的 ClearCase 的系统管理员,需要接收专门的培训。 ClearCase 提供命令行和图形界面的操作方式,但从 ClearCase 的图形界面不能实现命令行的所有功能。如果Unix/Linux服务器上安装了Samba服务,可以直接通过Windows下Clearcase的客户端直接访问源代码,相对比较简单。功能:★★★★★ClearCase 提供 VSS, SVN所支持的功能,但不提供变更管理的功能。 Rational 另提供了 ClearQuest 工具提供对变更管理的功能,与 VSS不同, ClearCase 后台的数据库是专有的结构。 ClearCase 对于 windows 和 unix 平台都提供支持。 ClearCase 通过多点复制支持多个服务器和多个点的可扩展性,并擅长设置复杂的开发过程。安全性:★★★★ClearCase 的权限设置功能与 SVN 相比, SVN 有独立的安全管理机制, ClearCase 没有专用的安全性管理机制,依赖于操作系统。总体成本:★★要选用 ClearCase ,需要考虑的费用除购买 license 的费用外,还有必不可少的技术服务费用,没有 Rational 公司的专门的技术服务,很难发挥出 ClearCase 的威力。如现在网上虽有 ClearCase 的破解软件,但尝试应用的公司大多失败的缘故。另外,对于 web 访问的支持,对于变更管理的支持功能都要另行购买相应的软件。技术支持:★★★★★Rational 公司已被 IBM 公司收购,所以有可靠的售后服务保证。四、总结工具对比一览表特性 VSS SVN ClearCase易用性 ★★★★ ★★★ ★★★功能 ★★★ ★★★★ ★★★★★安全性 ★★★ ★★★★ ★★★★总体成本 ★★★★ ★★ ★★★★★技术支持 ★★★★ ★★★ ★★★★★以上几种工具的总结如下: 1. VSS 的使用简便易学,但 VSS 的功能和安全性较弱,且只对 windows 平台进行支持,建议作为项目配置管理的入门时采用的工具;2. SVN 的安全性和版本管理功能较强,可以实现异地开发的支持,但 SVN 安装和使用多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用 SVN 进行管理。3. ClearCase 功能完善,安全性好,可以支持复杂的管理,但学习曲线和学习成本高,需要集成 ClearQuest 才能完成完整的配置管理功能。大公司如果采用异地多研发中心同时开发的模式,一般推荐使用ClearCase。

62,244

社区成员

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

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

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

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