开源.NET项目是否受到微软冷遇?

   鉴于产品开发目的的不同,微软永远不可能与开源社区走到同一条道路上来,但并不排斥双方有合作的可能。然而,让我们感到奇怪的是,一直以来微软对于开源的态度始终让人捉摸不定,时而漠不关心,时而高调抨击,时而又主动示好。

   目前,我们唯一可以肯定的是,微软不再视开源为洪水猛兽,甚至于一步一步的,微软也在亦步亦趋的踏入开源社区的领域,例如微软成立的开源实验室,公布 Windows和.NET Framework的部分源代码,以及成立类似于SourceForge的开源网站CodePlex。分析动机,有业内专家指出,微软真正关心的的问题不是一个公司是否是开源性质,而是这个公司是否可以帮助销售微软的平台产品。真是一语道破天机!商业利益是凌驾于一切之上的。

    我们观微软的态度,已经有了与开源和睦相处的苗头。那么,微软对于开源项目,尤其是对于开源的.NET项目究竟保有怎样的态度呢?最近,Redmond Developer News的编辑Michael Desmond就提出了这样一个疑问,那就是:开源.NET项目是否受到微软的冷遇?

    文章提到了Redmond在去年六月对Jeff Atwood的专访。Jeff是Coding Horror Developer Blog的创始人,他对.NET领域的开源项目贡献良多,除了进行博客创作之外,同时还创建了自己的开源项目Stackoverflow.com。

    Jeff在Coding Horror Developer Blog上曾经承诺,会将广告收入的一部分回赠给开源社区。近日,Jeff兑现了他的这一承诺,将5000美元的奖金颁发给了ScrewTurn Wiki开源项目的开发者Dario Solera。ScrewTurn Wiki是一个基于ASP.NET的Wiki引擎。实际上,奖励仅仅表明了Jeff的一种态度,那就是感谢那些为.NET开源开发领域作出卓越贡献的开发者们。

    这正是Jeff举措的关键目的。Jeff认为“开源项目在微软体系中被当成了二等公民。”他说道:“微软错误地降低了对开源项目的支持,而事实上这些开源项目对.NET世界贡献良多。”他相信微软作为开发工具的提供商,其命运取决于公司是否愿意改变其一贯的做法。

    Jeff的观点颇具争议性。实际上,在全球的.NET开发人员中,有很多都使用了各种开源工具,例如DotNetNuke、MbUnit、NAnt、 NHibernate和ZedGraph。而开发人员使用的.NET开源工具还有很多,以上列出的仅仅是冰山一角而已。微软也正在积极地参与和响应与开源社区(CodePlex、IronPython和IronRuby项目、Mono开发等)的合作。

    那么,开源.NET项目的开发者们为何没有切实感受到微软对他们的支持呢?

    确实,微软虽然在自己的开发工具中集成了部分优秀的开源.NET工具,但这些工具终究是凤毛麟角。此外,微软虽然对开源项目提供了一定的支持,但这种支持与微软对其商业产品的庞大投入相比,实在是九牛一毛。

   很多时候,微软表面上对开源社区的支持,实质上却是醉翁之意不在于酒。例如,微软在四月初发布了与开源兼容的XAML/WPF规范,允许开源项目使用这些规范。这或许是微软的示好之举,对于开源开发起到了一定的促进作用,但此举的背后却代表着微软可以借助开源的东风进一步推广WPF与XAML。

    微软对开源.NET项目确实提供了一定的支持,但很多时候,微软却是以其强势地位对开源项目给与了沉重的打击。例如微软于去年推出的MVC Framework以及LINQ,它确实为.NET开发者带来了极大的便利。但随之而来的,却极大地影响了Castel MVC Framework以及NHibernate的发展。显然,集成在Visual Studio中,并作为.NET Framework一部分的MVC Framework和LINQ对于普通的.NET开发人员而言,更具有吸引力。但对于开源社区而言,却是极大的挫败。

   显然,Michael Desmond提出的所谓“开源.NET项目遭遇微软冷遇”的观点是站不住脚的。微软不可能忽视开源社区的力量。相反,微软会极度关注开源社区的发展,一旦意识到某个开源项目的商业价值,或者感觉到它对微软产品的威胁,微软这头猛兽就会主动出击,或者吞并蚕食,或者打造利器与之分庭抗礼,进而掠夺市场占有率。这是微软的一贯伎俩,因为微软在面对商业竞争时,永远都不会坐以待毙。

本文最初发表于IT168

posted on 2008-04-29 22:27 张逸 阅读(4261) 评论(36)  编辑 收藏 网摘 所属分类: 业界时评

评论

#1楼 2008-04-29 22:41 李战      

http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif" alt="" />写书累了,来逛逛...   回复  引用  查看    

#2楼 2008-04-29 23:01 超晨      

书写--引用--------------------------------------------------
李战: <img src="http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif"" target="_new">http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif" alt="" />

--------------------------------------------------------
书写完没?不要到处闲逛哦!;)
  回复  引用  查看    

#3楼 2008-04-29 23:06 Jeffrey Zhao      

我觉得拿LINQ说事很不对,LINQ是语言特性,LINQ to SQL只是LINQ的一个实现。要和NHibernate比也是ADO.NET Entity Framework。
现在微软真是做什么都是错的了,如果不做,那么就是不作为不发展;如果做,那么很有可能和现有项目发生重合,那么就变限制了开源发展。
其实我觉得发展最重要,无论是开源也好还是微软。现在感觉微软的效率比开源要大不止一点两点,发展到最后结果也不错。
  回复  引用  查看    

#4楼 2008-04-30 00:04 Yok      

要让一般.net开发者接受开源非m$方案已经是很困难的事情了,很多有多年asp.net经验的程序员精通webform控件, ajax.net, ado.net, 却连什么是form post都不知道,他们离开了微软的工具就寸步难行   回复  引用  查看    

#5楼 2008-04-30 00:21 cipchk      

其实不管怎么样,站在巨头的角度来讲,也有他的难处,这也是一个行业在发展的过程罢了。   回复  引用  查看    

#6楼 2008-04-30 00:56 哇哈哈[未注册用户]

@Yok
连form post都不知道还敢说“精通”web控件?这应该是开发者自己的问题。
  回复  引用    

#7楼 2008-04-30 07:53 自由、创新、研究、探索……      

微软对SpringSource的收购案
这个是愚人节新闻吧,微软没有收购SpringSource吧. .NET社区上的技术进步还是离不开微软的推动,在微软开始涉足的开源社区的领域,就可以迅速在.net社区应用,微软加强同开源社区的交流才是关键,微软现在也是这么做的。
  回复  引用  查看    

#8楼 2008-04-30 08:54 Shawn Ji      

很希望微软能学IBM推出一个像eclipes那样免费的IDE,提供给开源社区使用,一定会鼓励和吸引大量的开发人员。   回复  引用  查看    

#9楼 2008-04-30 09:34 jejwe[未注册用户]

微软对SpringSource的收购案?
晕,这不是假新闻,怎么也拿来说事了
  回复  引用    

#10楼 2008-04-30 09:36 镜涛      

.NET开源项目我觉得对于.NET爱好者们是很有帮助的,能够通过分析提高水平。而.NET的开发者多了,Ms也受益。这个关系看来微软没必要冷落.NET开源把?   回复  引用  查看    

#11楼[楼主] 2008-04-30 09:56 张逸      

@自由、创新、研究、探索……
@jejwe
这是我较早写的一个评论,对这条新闻未验证。不过根据该新闻发布的日期,我当时也很疑惑。不过还是没有能够真正体会老外的娱乐精神,看新闻说得言之灼灼,就想当然了。

昨天发布此文时,又忘了修改,如今已删去。
  回复  引用  查看    

#12楼 2008-04-30 11:07 rex xiang      

@Shawn Ji

vs shell?
  回复  引用  查看    

#13楼 2008-04-30 11:21 SZW      

--------------------------------------------------
Yok: 要让一般.net开发者接受开源非m$方案已经是很困难的事情了,很多有多年asp.net经验的程序员精通webform控件, ajax.net, ado.net, 却连什么是form post都不知道,他们离开了微软的工具就寸步难行
--------------------------------------------------------
十分同意,同时也感觉这一系列的举措是微软有意图得在拉拢一些刚入门或者还没有入门还只是在观望的初学者。
  回复  引用  查看    

#14楼 2008-04-30 16:03 痴情客      

--引用--------------------------------------------------
Yok: 要让一般.net开发者接受开源非m$方案已经是很困难的事情了,很多有多年asp.net经验的程序员精通webform控件, ajax.net, ado.net, 却连什么是form post都不知道,他们离开了微软的工具就寸步难行
--------------------------------------------------------

完全不知道你在说什么 ,你看就知道是你 windows 的门外汉
你要是不知道就别说好不好,sb一个

哪个 windows 开发者不知道 form post ??
  回复  引用  查看    

#15楼 2008-04-30 16:03 痴情客      

还有 #13 的家伙 认识也有问题   回复  引用  查看    

#16楼 2008-04-30 16:40 Zealic      

即使是已有的且成熟的技术,M$也必须有自己的一套,至于为什么要这样,需要问M$的管理者。

想起了 NDoc 及 NAnt 之死。
下一个也许就是 NHibernate 、iBatisNet 和 Castle。

  回复  引用  查看    

#17楼 2008-04-30 18:20 GoGoSonny      

微软自己做,不一定比开源社区好,而且庞大。
关键是:我们这些开发人员用不用这些开源的框架。
开源项目还是得不到好的宣传。
而新的点子,新的项目肯定还是会出的。
语无伦次。。。
  回复  引用  查看    

#18楼[楼主] 2008-04-30 19:18 张逸      

@GoGoSonny
主要问题是,.NET的开源项目大部分都是跟风之作,比起Java世界的开源发展来,确实差得太远。
  回复  引用  查看    

#19楼 2008-05-01 00:27 Yok      

Castle虽然是跟ROR的风,但至少比Java的框架更敏捷   回复  引用  查看    

#20楼 2008-05-01 01:56 Jeffrey Zhao      

--引用--------------------------------------------------
GoGoSonny: 微软自己做,不一定比开源社区好,而且庞大。
关键是:我们这些开发人员用不用这些开源的框架。
开源项目还是得不到好的宣传。
而新的点子,新的项目肯定还是会出的。
语无伦次。。。
--------------------------------------------------------
至少目前看来,微软作的每个东西几乎比开源的要好很多。
  回复  引用  查看    

#21楼 2008-05-01 01:57 Jeffrey Zhao      

--引用--------------------------------------------------
张逸: @GoGoSonny
主要问题是,.NET的开源项目大部分都是跟风之作,比起Java世界的开源发展来,确实差得太远。
--------------------------------------------------------
Java的就是.NET的,区分两者就不够开源了。
  回复  引用  查看    

#22楼 2008-05-01 20:47 kiler      

@Jeffrey Zhao

请举出那些微软的东西比开源的好,说老实话,真正能说好的也就是ajax了。
微软花了那么大精力做的EnterpriseLibrary到头来还是那么臃肿,没有一点实际用途。

老实说开源对微软还是有不少贡献的,没有开源,微软抄都没的抄的,没有Nant哪来的MSBuild,没有NUnit哪来的MSTest,没有MagicAjax哪来的updatepanel,微软除了抄还会什么啊,水平还比较次,还只会抄。net才有开源,java的开源还不会抄。


  回复  引用  查看    

#23楼 2008-05-01 21:54 Jeffrey Zhao      

@kiler
赫赫,为什么说EntLib臃肿不好用?我用的就很好。
微软抄?请举出例子来抄在哪里,功能交叉不叫抄,否则还谈什么竞争?
微软比开源作的好的例子数不胜数,几乎微软任何一个产品都是这样,比如asp.net ajax,ent lib,parallel lib,估计ado.net entity framework和asp.net mvc也比开源已有产品好。
开源和开发参与者很有关系,如果不是非常热门的项目有很多人投入的话自然敌不过微软那么多牛人的专注。说Java开源多,那是因为那个领域没有微软这样的企业集中精神的投入。企业相对于社区就好比是军事化管理,战斗力自然高。
社区与企业相比最大的优势在于:
1、创造力,人多力量大,点子多。
2、生产力大。这个生产力大是体现在撒网面积能够非常广,而企业只能专注在几个地方。但是对于单个项目能聚集起来的人力有限,因此如果比单个项目,企业的生产力就大。
所以你看微软现在也在借用社区的优势,例如能够从社区里吸收好点子,也能够通过发布早期预览版来听取用户反馈。如果某个开源项目想和企业拼单兵作战能力,其结果几乎是确定的。
  回复  引用  查看    

#24楼 2008-05-01 22:26 kiler      

就拿ent lib的dataaccess模块来说吧,做了那么久,还是老样子,写来写去就那么几个方法,和以前的sqlhelper差不多,唯一的优点就是代码多了点,同样是用ado.net操作数据库spring.net的adotemplate比daab不知道要强多少。
ado.net entity framework和asp.net mvc好不好市场会说话,微软不是没有做烂的的东西的,强类型dataSet和。net1.1的一堆直接操作数据库控件就是最好的例子。ado.net entity framework刚刚接触一下,感觉就是强类型dataSet的翻版。

社区与企业相比最大的优势在于:
1、创造力,人多力量大,点子多。
2、生产力大。这个生产力大是体现在撒网面积能够非常广,而企业只能专注在几个地方。但是对于单个项目能聚集起来的人力有限,因此如果比单个项目,企业的生产力就大。

不赞同你的观点
1.成熟开源软件核心部分基本还是由几个牛人完成,人多基本没用,做做测试提点改进意见还差不多。
2.开源的东西之所以做的好是完全是因为兴趣,开源的是开发者不图回报用心制作的精品,不给钱都愿意做的东西,能做不好吗,商业产品是为了赚钱的,参杂了商业利益的话开发者很难全身心的投入的。

  回复  引用  查看    

#25楼 2008-05-01 23:24 xjb      

并非所有的net开源都是精品,也并非所有的微软主导的开源的net产品都是次品。   回复  引用  查看    

#26楼 2008-05-01 23:51 Jeffrey Zhao      

@kiler
data access可能的确不太好,但是难道ent lib只有这一部分?logging,cache,policy injection——还有object builder都是很好的东西。
强类型的DataSet也好,数据控件也好,现在看起来不是好东西,但是当时哪个不是非常受欢迎的?开发效率大大提高,有效地推广了.NET应用。技术发展了,理念发展了,现在当然不够看了,这难道不正常?微软也自然会有新的替代品出来,比如ADO.NET Entity Framework,当然我不同意你对它的评价。
至于你说“不给钱都愿意做的东西”就一定比雇佣员工作的好,呵呵,不多作评价。
很可惜,现在市面上只要微软出的类似产品,基本上总比开源来的有市场,难道不是因为微软的东西好吗?开源的哪个斗败了微软的产品呢?
呵呵,我虽然支持开源和自由软件,但是我反对开源盲目主义。
  回复  引用  查看    

#27楼 2008-05-03 09:32 kiler      

ent lib的logging,cache,policy injection,我都不想说了,和开源的东西一比实在是差了太多了。

先说logging,logging本身只支持7种日志输出格式,log4net则支持接近30种日志输出的格式,有点讽刺意味的是,logging不支持自家的asp。net trace的方式输出日志,但是log4net支持。

再说cache模块,这个模块也是做了好几年的,到现在为止还是停留在写一个cachemanage对象,用。add。remove来操作的原始阶段,看看人家castle的cache模块怎么写的,你只需要把一个cache标签加到对应的需要缓存的方法上即可,如下所示:
[Cache]
public decimal MyMethod(int a , decimal c)
{
decimal ret = a+c;

Console.Write(ret.ToString() + Environment.TickCount.ToString());
return (ret);
}
使用者的在使用的时候完全无需关心cache,写好程序加标签就ok了。以后再修改对于已经写好的程序也没有什么破坏。

policy injection说老实话,没怎么看过,但是像daab,logging,cache这些都是做了3年的模块,还是那个样子,我实在没什么理由对policy injection有多大期望的,参照daab,logging,cache几个模块的发展速度,就算是做到Enlib7,8 policy injection模块也不是castle和spring。net的对手。

微软早就该醒醒了,与其让自己的人搞开源,还不如把钱投给开源组织让他们自己做。

顺便再说一句,codeplex上面那些为数众多的小项目(我说的是大部分,不是全部)不等同于。net开源开发界的实力。
  回复  引用  查看    

#28楼 2008-05-03 18:00 hippo[未注册用户]

1.开源难道就不允许竞争么,有了第三方的开源组件,微软就不能做了么。
2.IBM的开源为了什么呢,和微软有什么不同么。
3.开源是世界上各种商业模式其中之一,是最好和最有效的么。如果没有定论,为什么要轻易下结论。仅仅是政治上的“立场”不同。
4.开源的是开发者不图回报用心制作的精品么,为什么会这样,他们为了荣誉。这样做是一种什么样的行为,具有普遍适应性么:所有人应当无偿奉献其知识技能时间来获得一种认可。这种行为还是不仅仅存在于开发领域里一小部分理想主义者的特定行为。这种行为是和你我为了生活而要求回报的劳作时对立的么。
.....
  回复  引用    

#29楼 2008-05-03 18:08 hippo[未注册用户]

--引用--------------------------------------------------
Yok: 要让一般.net开发者接受开源非m$方案已经是很困难的事情了,很多有多年asp.net经验的程序员精通webform控件, ajax.net, ado.net, 却连什么是form post都不知道,他们离开了微软的工具就寸步难行
--------------------------------------------------------
有众多的“开发人员”,专注于某个领域的快速实现,他们不会去做专业的程序员的,这些人也不应该被抛弃的。
微软的开发工具很容易上手,但是如果是真正的程序员,会知道如何inside。
  回复  引用    

#30楼 2008-05-03 20:01 kiler      

@hippo
1.没说不准微软做,但是微软做了没有意思,做了做的好(ajax)相当于自残,把自己的帮手(ajax。net pro,magic ajax)除掉了,做了的要是做的不好(enterpriselibrary),那就是丢人且浪费钱。微软想做可以啊,还有很多空白领域可以做啊,工作流引擎(wwf说老实话还有很大的改进的地方的),规则引擎,很多高端领域,。net都没有相应的开源项目,微软为什么不加大力量在这些领域去做,一定要重复开发。
2.IBM比微软聪明多了,不会去和开源项目去抢着做东西,主动捐献出Eclipse的代码给开源组织,节省了多少开发经费啊,说老实话做IDE绝对没有卖服务器没有卖中间件赚的多,ibm挺会做生意的
3.没说开源是最好的模式,但是微软不大力支持也就罢了,去打压开源的东西实在是说不过去的。
4.我举一个例子你就很明白了,你在上班的时候突然想起来,如果程序做了某某改动,程序会跑的更好,但是客户感觉不明显,而你改这个程序是要加班的,而且程序要重新测试,你会改吗(我敢打赌,你改了,你老板知道了,不但不表扬你,还要骂你)。
  回复  引用  查看    

#31楼 2008-05-04 00:01 Jeffrey Zhao      

@kiler
logging需要那么多格式做什么?这种通用组件要的都是灵活性,我在项目中几乎从来就是使用自己定义的Log Formatter,我看过log4net,和entlib相比真没觉得有什么优势。
至于你说的Cache,难道Cache不就是读取和写入两种基本操作吗?你举的Castle的例子已经不完全是Cache了,是AOP。事实上在EntLib的Policy Injection里早就有这种标记性的Cache做法了,可惜你没有了解过它,可谓偏见害人。
至于你说赚钱,微软净利润可是比IBM高的,服务器等销售额高,至于比利润么……
微软的人都不是傻瓜,我觉得微软的一直很令人佩服做法就是知道什么时候该做什么事情,所以从某一时刻往回看可能不会觉得他的做法很“高瞻远瞩”,但是在那个时候,就是它获得的回报最多,呵呵。
  回复  引用  查看    

#32楼 2008-05-04 10:17 搜索人生      

其实微软最擅长的就是:说的好听点是模仿!说的难听点就是抄袭了!
从他赖以起家的MS-DOS,到windows,哪一个不是抄袭的?还有IE,X360等等,太多了,从这么多的产品中,极少能发现自己的创新产品!微软从来的政策都是打压、甚至消灭被模仿的对手,不过,微软现在也在学着转变态度!最终,开源是不会被消灭的!微软也不会被开源消灭,竞争与合作是同时存在的,相互促进才是最好的结果!
  回复  引用  查看    

#33楼 2008-05-05 15:23 SZW      

@痴情客
我碰到过几个用asp.net做网站有几年的学生,确实不知道form post具体是怎么回事,甚至还有的把postback当作和post,get并列的第三种方式,可是我看他们用控件还确实用的很熟练的,不知道这个是现在大学的教育问题呢还是下一代“人才”的发展方向了。
  回复  引用  查看    

#34楼 2008-05-21 17:27 zhb32236[未注册用户]

对于微软来说,可以通过开源社区吸收优秀的东西,以求自身发展,这才是微软的真实目的   回复  引用    

#35楼 2008-05-30 09:45 Avlee      

其实微软也开始转变策略,从MVC可以看出,微软要推出.NET开源项目相竞争的项目,必须自己也开源,才能和平相处,最好独立发布。   回复  引用  查看    

#36楼 2008-07-02 20:48 凡人之旅[未注册用户]

永远支持开源!微软终究要没落的。   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1176904




相关文章:

相关链接:

导航

公告

我的个人主页:
logo.gif
我的著作与译作

《软件设计精要与模式》

《WCF服务编程》

MVP_Horizontal_BlueOnly.png

From 03-03-2006
Counter: site stats
审批小组成员时,如有超过6个待审批成员,无法翻页察看。操作不便。

与我联系

搜索

 

常用链接

我参加的小组

我参与的团队

随笔分类(266)

随笔档案(258)

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜