王朝网络
分享
 
 
 

失去信心?还是再度迷惘(二)——Mono only is Mono,not .NET never

王朝c#·作者佚名  2006-01-31
宽屏版  字体: |||超大  

Mono only is Mono,not .NET never。当我继续写这个Post的时候,我专门到Mono的站点下载了Mono的运行时和类库的完整源代码。用来两天的时间阅读了一些类库如ASP.NET,XML等等的源代码,必须承认,通过这两天源代码的阅读让我原先的一些想法有稍微的改变。

从微软的战略来看,是希望将用户毫无条件的锁定在Windows操作系统之上,有人的地方就有计算机,有计算机的地方就有Windows。这是微软多年来倾其全力的追逐的梦想。在桌面操作系统上除了Apple的苟延残喘之外,还有一部分反微软斗士使用的基于Linux的桌面系统之外,其他无一不是微软帝国在统治。也许这里有人会攻击我对于Linux的看法,也不止一次的听到有人对我说“你根本不懂Linux”,所以一切的评论都是不够公允的。不曾经怀疑过Linux在服务器市场上的冲击力,也正是在服务器领域的成就让芬兰大学生Linus Torvalds的无心之作在短短的10多年内成为最流行的服务器操作系统,但是在桌面领域呢?你可以告诉我已经有很好的操作系统,包括我们国内那几家扛着“振兴民族软件产业”大旗的企业,从国家拿走大笔大笔的钱,也做出了一个表面看起来像模像样的“为中国人设计”的Linux操作系统,但是有多少人真正在用,明眼人都会看明白的。当然也有人会骂,用着D版的Windows在网上冲浪,然后愤恨不平的陈述微软霸权。

作为微软,总会尽可能的将用户锁定在Windows之上,那么.NET也不会例外,为了确保不允许被“拷贝”到其他操作系统之上,在类库的设计上正如上面提到的会采用“底层API”。尽管微软也提交了CLI,提交了C# Spec,但是遵循了ECMA标准的C#和微软自己的标准有多少区别吗?

有,正因为标准,所以有了Mono这样东西的出现

没有,因为Mono仅仅是Mono,而不是.NET。

你可以质疑我这样自相矛盾的回答,也可以说我不懂Linux,更加可以说我不了解Mono。我的朋友Kaneboy告诉我越来越发现Mono是一个好东西,等我阅读了部分的源代码之后我也认为Mono是一个好东西,但是它是.NET吗?也许你可以从我下面的文字中找到一些答案。

如果你是一个.NET架构师,那么我建议你一定要去阅读Mono的源代码,因为Mono可以告诉你很多你之前不可能知道的东西,你会看到很多你一直想看到却没有机会看到的东西,就比如ASP.NET、ADO.NET。相信在VS.NET或者Web Matrix的帮助下你能够写出很眩的页面,能够写出很漂亮的控件,也会感觉到比之前的ASP更加得心应手,但是你会发现一些东西你始终无法突破,比如很多文档会告诉你ASP.NET Page对象模型,会告诉你页面的在整个HttpApplication管道化过程中的迁移,会告诉你可以启用Session,可以启用片断缓存,但是始终无法明白Web应用中Session的底层是如何设计和考虑的,如何真正有效的提高你的缓存设计策略。一切尽在Mono,相信那些源代码能够解开你一些困挠许久的疑惑。

但是,目前的Mono仅仅是在跟Microsoft在走,如果你去阅读过源代码,然后也用Reflector看过微软自身对于类库的实现,你会发现作为追随者真的很辛苦,对于一些核心的实现,微软仅仅是对于原有的技术做了一个包装,然后通过.NET统一编程接口,而Mono却需要一切从零开始。前文提到了微软会不遗余力的将所有技术锁定在Windows操作系统之上,那么从这个角度来说他绝对不运行有一个同样的产品出现在非自己统计的操作系统平台上,对于Mono,也如同对于Application Server的策略是一致的,因为微软比谁都明白,如果让框架运行时(CLR)和应用服务器独立于操作系统,那么Windows就失去了最后的技术壁垒,不知道大家是否记得当年的Visual J++,为了将Java锁定到Windows,微软开发了WFC,并且允许使用Visual J++开发COM组件,Sun后来告发了微软一把,理由很简单,因为微软的“险恶用心”和破坏了Java世界的“纯洁性”,平心而论,如果忽略微软对于Java的改动,甚至仅仅将Visual J++当着一门新的语言(比如Pre-C#,当然了,这是我在胡扯),依托于WFC的强大,作为Anders加盟微软之后打造的第一个产品,Visual J++在windows开发上就我个人的感觉来看已经超越Visual Basic。

从文化而言,Mono是一个自由斗士,它打破了.NET只能够在Windows上运行的限制,同样也帮忙微软印证了.NET可以跨平台。但是微软真的系统跨平台的.NET吗?肯定不是的,如果所有的开发商都使用.NET开发,而.NET同样可以运行于任何操作系统,那么Windows就不是唯一的选择,开放源代码、免费(这里提及的可能不是特别准确)的Linux会更加成为主流。如果你是商人,你将如何选择?因此没有任何一个理由让微软的.NET要去跨平台,当然商业上标榜的跨平台是另外一个策略问题了。

鉴于上述,Mono注定是永远的追随者,1.1的框架还没有在Mono下面完全实现,而.NET 2.0又快要推出,如果你稍微那么了解一点点的Whidbey(Visual Studio 2005的开发代号),你知道.NET 2.0相对于1.1已经改变很多很多,那么Mono究竟有多少力量能够在时间上不被微软甩开太远。我这里没有答案,也许谁也没有。如果你是学习,那么有很多理由建议你去看看mono,如果是你研究,那么有更多的理由选择Mono。如果你是一个商人或者架构师,要找出在商业上选择Mono的理由确实很难,真的,很难……

Mono only is mono,not .net never

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有