对C# 程序员来说现在是到目前为止最好的时代

本文的标题来自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是一个致力于推动行业范围内采用信息和通信技术的非特定供应商的国际标准组织]标准化 ECMA 335和ECMA 334),比Java还早的标准化了.NET平台。Miguel de lcaza 看到了C#语言的优雅和高效率,Ximian内部对如何创建能有效提升生产效率的工具进行了大量的讨论,他们的目标是通过这些创建出来的工具让用户可以在更短时间内创建出更多的应用程序从而缩短开发周期和降低开发成本。Miguel所在的著名的Linux桌面环境"GNOME"的开发商,美国Ximian公司在2001年7月开始启动一个名叫Mono Project的开放源码版".NET"的开发项目,旨在使开发者能够编写同时在Windows和Linux上运行的.NET程序,Mono计划主要包括一个C#编译器、与Microsoft 公司的Common Language Infrastructure(CLI)兼容的类库、Linux版Common Language Runtime(CLR)编译器,它包含了一个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和Android,Mac和* nix平台使用.NET技术? MonkeySpace围绕着如何在.NET中使用开源技术为.NET社区提供场地,合作,分享和社交活动。


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


你可能感兴趣的:(Mono)