论Mono的意义

原创 2004年08月26日 23:00:00
下面这一段话是我一个朋友飞刀在我的BLOG上给我的留言:

“目前的Asp.net 2.0已经将WEB与Mobile统一起来,想必Mono必定又得重新跟随,一堆的Adapter就够烦的了。 而微软、IBM的终极目标,如果我没有猜错的话,是将GUI、WEB、Mobile的开发统一起来,这个难度很大,没有M$的直接支持,估计Mono很难一直撑下去。 
Asp.net 2.0号称支持230种设备,就目前这样的情况,Mono有这种实力去搞这种累死人的事情? 
而且微软每次变化都很大,主版跳跃很快,1.1了直接就2.0,Mono要做Linux中的.Net必定要跟随着,这种“跟风”,用得人都很累,更不要说照着模仿做了。 
而且我不看好的原因在于,以后的大一统,GUI与WEB,Mobile的大一统,这是一个耗人力物力的事情,没有像M$与IBM这样大集团不惜成本的支持,很难办到,支持Mono的Novell还是小了点。”


在这段话里,他认为Mono是一个没有意义和前途的项目,最主要的原因是Mono跟不上Microsoft的对.Net的更新速度(这里其实要补充一下,在Mono的开发计划中对.Net 2.0的完整支持是2005年第2季度,而.Net 2.0正式版也要到2005年才会发售也就是说Mono并不会比.Net慢多少。其实现在在Mono的安装目录中已经可以看到支持泛型的测试版C#编译器)。

他可能想到了当年C++开发工具大战的时候,Borland C++因为操作系统上的原因,在技术上一直比Microsoft慢半拍,导致被淘汰的历史。其实,他犯的一个最大的错误是没有认识清楚Mono的定位,Mono开发出来并不是要和.Net竞争,要取代.Net,而是作为.Net的补充而存在。理解这一点非常重要。Linux的桌面环境远远比不过Windows,而且要赶上Windows是非常难的,是不是可以说开发Linux的桌面没有任何意义?可能大部分人都不会这么认为,Linux至少可以给用户带来另外一种选择,有时候用户并不希望选择最好最先进的,他可能希望能选择最便宜的,正如Mono,他并不是像Borland C++一样是收费的,他可以为你提供完全免费和开源的.Net运行环境,也许这个环境不如Microsoft的先进,方便,但是却便宜,还开源。假如你的预算比较少,而且喜欢开源,又喜欢使用先进的技术,那么Mono你提供了这样一个选择。

这是对客户的意义。

如果说是竞争者,Mono的对手应该是Java,因为假如用户决定要使用Linux平台来构建企业级的应用的话,除了JAVA一般是没有选择。但是现在好了,作为一个比JAVA更先进,更开放,更自由的技术,Mono的出现打破了Java的垄断,Mono的出现将.Net的技术优势带到了Linux /Unix/MacOS平台,Java同时也失去了最后的一个胜过.Net的优势:跨平台。(也许有人认为还有一个比较成熟的优点,但是其实同时也失去了活力,看看对Web Service和泛型等的勉强支持吧,成熟的潜台词是快死了)

想想这样的情景,当竞标时,JAVA解决方案提供商在台上猛吹一通,哪怕在他们所列举的产品的十个优点中,有八个是Linux的,而你也不用像往常那样为Windows做辩护,你可以先告诉他们,你的产品也可以跨平台在Linux上运行,然后再来告诉他们盲目的追求开源其实对企业来说没有任何意义这个事实,这样会更加有说服力。

即使是当我们的客户拼命叫嚷着Windows病毒多,漏洞多,不安全,不开源的时候,我们的.Net开发人员照样可以使用平时很熟悉的,强大的Visual Studio .Net开发工具高效率的完成开发工作后,直接将应用部署到Linux或者Unix平台,而不是跟以前一样无可奈何的放弃。

这些是对开发者的意义。

C++ Builder 6 BizSnap/SOAP/WebService(2) -- 通过 SOAP 传递自定义类型数据(改)

    说明:本文经过一些改动,纠正了一些问题,因为原文无法修改,只好重发。不久前我收到几位朋友发来Mail说明他们在按照本文所述进行WebService应用开发时碰到的一个问题:在用ISAPI方式编...
  • Raptor
  • Raptor
  • 2002-08-19 16:31:00
  • 5073

论Mono的意义

下面这一段话是我一个朋友飞刀在我的BLOG上给我的留言:“目前的Asp.net 2.0已经将WEB与Mobile统一起来,想必Mono必定又得重新跟随,一堆的Adapter就够烦的了。 而微软、IBM...
  • asusharp
  • asusharp
  • 2004-08-26 23:00:00
  • 964

C#/mono开发Android应用程序入门(三)-平台的意义和思考

C#/mono开发Android应用程序入门(三)-开发后的思考           就开发而言,只能说你可以借由Mono开发Android或者iOs程序,至少以我现在的水平感觉C#比iOS...
  • wlanye
  • wlanye
  • 2012-02-12 19:40:58
  • 2724

Unity3D中的Update、LateUpdate和FixedUpdate的意义

1、MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用。 2、MonoBehaviour.FixedUpdate 固定更新  当Mo...
  • tyxkzzf
  • tyxkzzf
  • 2015-01-06 23:42:27
  • 6526

Unity中的各种[XXX]的意义与用法

[SerializeField] 在Inspector版面中显示非public属性,并且序列化;若写在public前面,等于没写……(至于序列化是啥,自行脑补……),上图: [NonSeria...
  • EasonEasonEasonEason
  • EasonEasonEasonEason
  • 2016-11-22 12:01:30
  • 706

【Qarth框架系列】单例实现

单例的使用非常常见,在Unity中我们会碰到普通的C#类需要实现单例的情况,同时也会碰到继承MonoBehaviour的类需要实现单例的情况。Qarth中分别提供了这两种情况的父类:TSingleto...
  • SnowColdGame
  • SnowColdGame
  • 2017-06-11 15:37:27
  • 169

ARB_precision_hint_fastest,ARB_precision_hint_nicest 的意义,作用

首先必须吐槽一下,百度搜任何跟技术相关的东西,简直是辣鸡的不行,还是vpn翻墙google王道,分分钟找到想要的内容。。。 其实之前知道这2个命令是干什么的,但是总是会忘记,鉴于这个情况,所以决定还...
  • WPAPA
  • WPAPA
  • 2016-05-11 01:35:11
  • 3776

[Unity&C#]浅谈接口interface 的意义

Interfaces 官方视频教程 通常如果要 定义 一个 接口类 Interface  public interface ITest { } 在Test前面加上 大写 的 I ,表示 int...
  • BuladeMian
  • BuladeMian
  • 2017-06-07 14:36:28
  • 1577

unity3D的面试题

第一部分 1.请简述值类型与引用类型的区别 2.C#中所有引用类型的基类是什么 3.请简述ArrayList和List的主要区别 4.请简述GC(垃圾回收)产生的原因,并描述如...
  • wjlsxl_whb
  • wjlsxl_whb
  • 2016-11-16 16:04:12
  • 3785

Unity3D面试题整合

Unity3D面试题整合 最近unity3d找工作有些受挫,自己也开始补课了。 下面把这段时间看到的些 面试题供出来让大家也学习下,题目只是面试官选拔人才的一部分,在研究面试题目的过程中,多检测下自...
  • husheng0
  • husheng0
  • 2015-08-16 00:44:31
  • 3354
收藏助手
不良信息举报
您举报文章:论Mono的意义
举报原因:
原因补充:

(最多只允许输入30个字)