本文的标题来自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。

转载于:https://blog.51cto.com/utalents/1394993

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

  1. 计算机知识太多了,计算机基础知识对程序员来说有多重要?

    原标题:计算机基础知识对程序员来说有多重要? 科班和培训生同比于自学者的优势就在于这些计算机专业的核心课程(数据结构与算法这种不管科班培训都要学的不算):离散数学.编译原理.计算机组成原理.操作与系统 ...

  2. 对程序员来说最难的是写代码吗?

    程序员,是专业写代码的,对我们而言,最难的,从来不是写代码.当然,刚入行的时候,可能会遇到不知该怎么写代码的情况,比如:我入职的第一个题目就是通过 zookeeper 实现两个应用之间的通信,当时不晓 ...

  3. 计算机基础知识对程序员来说有多重要?

    数据结构和算法,操作系统,编译原理,计算机组成原理这些课程对普通程序员来说是否需要去学习?会带来哪些帮助? 我们依次来了解这几门课程是在工作中有啥用,回答有点长,请保持耐心:) 一.数据结构与算法 正 ...

  4. 对于程序员来说养成规范的打字真的很重要

    大家好,我是曜耀. 今天,曜耀来说一下,曜耀认为程序员的基本拥有的技巧:打字. 对于个位来说,都是摸着键盘很多年了,一提打字就会不屑.不过曜耀是真的认为养成打字是对我们程序员来说真的很重. 目前曜耀正 ...

  5. 一年对于程序员来说有多长?

    聊这个话题,我表示又蛋疼了!你想看么? 还没写过这么有争议的话题,有点小小的不安! 一年有多长?让我来掐指算一算:1年=365天(今年是366天)=多少小时呢? 前方高能,等我去写个程序算一下!还用写 ...

  6. java数据库重要吗_我个人感觉数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的。为了帮助大家更好的来回顾T-SQL...

    我个人感觉数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的.为了帮助大家更好的来回顾T-SQL,本人利用空闲的时间整理的一下T-SQL ...

  7. 对程序员来说CPU是什么?

    对程序员来说CPU是什么? 前言 本文参照<程序是怎样跑起来> 这本书,不断更新我的博文,一是用于填补我的计算机基础"空白",二是通过对该书提到的知识进行总结和凝练以加 ...

  8. 练好打字对程序员来说真的很重呢

    大家好,我是耀曜 今天再此讲讲,对与我们程序员来说打字的速度真的很重的,就比如我,经过一定的锻炼,果然有了很大的效果.在我没注意到打字很重时,在一些写代码时大约写写停停,脑子有思路,但是写代码的速度跟 ...

  9. 英语对一个程序员来说有多重要?

    英语对一个程序员来说有多重要?不知道你这样问过自己吗? 英语对一个程序员来说重要吗? 答案是肯定的,肯定重要啊.可是,有多重要呢?换一个问题,问你,手对一个人来说重要吗?答案也是肯定的.肯定重要啊.可 ...

最新文章

  1. Python函数作为参数传递给函数
  2. 09_EGIT插件的安装,Eclipse中克隆(clone),commit,push,pull操作演示
  3. 详谈PHP垃圾回收机制
  4. Ubuntu字符界面输入密码始终提示错误 login incorrect 解决办法
  5. MySQL配置文件优化
  6. sqlite3打开中文路径数据文件失败解决方法
  7. 前端学习(1603):脚手架组件使用
  8. 待支付取件费用是什么意思_SEDEX验厂是什么意思,sedex验厂审核费用是多少?...
  9. 《半吊子全栈系列:Boostrap3》
  10. oracle catalog命令,使用Catalog命令注册RMAN备份集
  11. Application_Start 不执行
  12. 安卓图片框架:universal-image-loader的高速使用
  13. ubuntu 程序卡主解决方案
  14. TextView常用属性设置
  15. python与数据挖掘 分类和预测
  16. 《Rework》语句摘录
  17. excel打开时显示只读或服务器没响应而打不开怎么办,Excel打开时显示只读或服务器没响应而打不开怎么办...
  18. Maven安装和配置阿里云镜像(解决在idea中Maven加载依赖慢的问题,保姆级教学)
  19. 并发设计模式——保护性暂停(Guarded Suspension)
  20. Matpower软件执行方式

热门文章

  1. Windows下访问VirtualBox的mysql服务
  2. 《爆发》作者:大数据领域将有新赢家
  3. 这些故事说的都是你——译者带你读《硅谷革命》
  4. mysql添加普通用户用于管理单一数据库
  5. cacti及其相关插件的安装
  6. 【java设计模式之Command(菜单命令) 】
  7. [转]android 获取手机GSM/CDMA信号信息
  8. 前台jsp页面向后台传汉字出现乱码问题解决办法
  9. 关于数据仓库 — 总体工具介绍
  10. python3函数调用时间_Python3 time clock()方法