当我第一次开发网站时,我使用的是PHP和MySQL,那个时候还没有.NET,只有传统的ASP,我对它的安全性和性能持保留意见,它从来没有PHP好用,但微软并不甘心,于是决定上.NET试图改变游戏规则,事实证明微软的决策是英明的,从此对Web开发产生了深远的影响,现在.NET平台已经成为Web开发领域不可或缺的一个重要角色,但遗憾的是,.NET只能在Windows系统下运行,给很多想尝试.NET的Linux用户留下了无尽的遗憾,于是出现了本文的主角Mono,它能让.NET程序在Linux下运行起来。 .NET简介 .NET本质上是各种.NET程序使用的一个框架,基于这个框架写出来的程序可以在任意运行.NET框架的服务器上的执行,.NET框架包括大量的库,简化编程体验,提高Web开发的速度。 弥合开放和封闭之间的技术鸿沟 在这个世界上,使用计算机的人有三种,第一种总是站在微软一边,只使用Windows操作系统,只买Xbox游戏机,甚至连手机也只买安装Windows Mobile(现在应该叫Windows Phone 7了,)系统的产品,第二种人支持开源软件,他们只运行Linux,只在Linux上玩游戏,不买任何闭源产品(这意味着微软和苹果都将被排除),手机也只买运行Android的产品,第三种人则介于前两者之间,我也是这种人,我既使用Windows,又使用Linux,我不反对任何一方,也绝不偏袒另一方。 通常,谈到Web开发和Web设计时,我总会使用到Windows和Linux,我的笔记本电脑安装的是Linux,我用它来做开发,表现得非常好,我可以带着它坐在楼下开发我的网站(我的网站使用PHP和MySQL搭建的,它们在Linux上的表现更好),而我也用Windows机器,只不过我用它来做网站设计,我曾尝试过使用GIMP,虽然也可以设计出好的作品,但它还是没有Photoshop强大,由于性能问题,我的笔记本无法使用WINE运行Photoshop。 假设我已经在Windows上设计好网站,现在需要做的是在Linux下开发网站,我决定使用.NET开发,于是我安装了Visual Studio 2010和SQL Server 2008。 但我立即发现一个问题,我的开发效率远远赶不上在Linux下的效率,以前我在笔记本上连续开发4个小时,速度也不会下降,但现在在这台Windows PC上,总是有性能问题,我在Linux上的开发感觉也消失得无影无踪了,这样来形容我的感觉吧:当我在Linux下开发时,就象驾驶一辆手动档汽车,虽然要求高一些,但我可以灵活控制,现在好像换成了自动档汽车,虽然很好驾驶,但我却无法再灵活地控制它了。 是的,.NET降低了开发的门槛,让编程变得更简单,错误消息也很清晰,问题解决起来也比用PHP时更快速,但.NET只能在Windows下工作,我想在Linux下开发ASP.NET,幸好我找到了Mono。 Mono – 救世主还是恶魔的化身? Mono是.NET在Linux下的实现,有了它,我们就可以在Linux下开发.NET程序/Web服务了,并可以移植到Windows上的.NET平台,这真是一个伟大的工具!但也有人表示了担忧。 当我准备在笔记本上运行Mono时,我阅读了大量的资料,也听取了很多人的意见,奇怪的是,居然有很多人说它的坏话,还有人表示Mono可能侵犯了.NET的专利权,即便这可能是真的,我们也不用担心,因为微软还协助过Mono项目,当然也有人认为微软此举是拿Mono来渗透Linux,以便最终消灭Linux,我也曾认为微软并未给开源世界带来帮助,只不过在唆使人们在Linux上使用微软的技术,从本质上否定了Linux存在的必要,但这样的想法是错误的!这对于Linux来说是件好事,阻止Linux在工作和家庭中使用的障碍是它与Windows存在本质区别,例如,我喜欢玩足球经理,我也想在Linux上玩,但却很难做到,我只能选择在Windows上玩。随着Linux平台上Mono的接受度越来越高,将会有越来越多的程序可以跨Windows和Linux运行,只要兼容性问题得到解决,Linux可以自豪地向世人证明它是多么的强大。 很多铁杆Linux用户并不希望微软进入Linux搅局,他们恨那些在Linux系统中使用微软字体的人,他们认为这样做只会让微软消灭Linux的梦想成真,他们希望Linux取得真正的成功,但Linux如果不接受与Windows兼容的需求,它就不能进一步繁荣,有人认为Linux下的软件模仿Windows下的闭源软件(如OpenOffice模仿了微软的Office)也是值得表扬的,有些软件可以做到,但部分软件还做不到,与Windows下的软件比起来,Linux下的软件看上去都略显笨重,很业余,如果Linux要实现与Windows完全兼容,那么它的开源产品必须振作起来,并积极做出改进。 Mono,或Mono背后的想法是一件坏事吗? 不,不是坏事!Mono只是为Linux和Windows之间的鸿沟搭建了一座桥梁,为Linux获得更大的PC市场份额提供了一种全新的尝试和机会,如果有越来越多的人可以在Linux上使用Windows程序(不需要WINE),在转移到Linux前,人们心里也会再有以前那种恐惧感。 从最终用户的角度来看,他们已经习惯了Windows下的操作方式,因此不愿意移到Linux下,当初上网本开卖时,很多预装了Ubuntu操作系统,但很多用户因不熟悉它,或是他们熟悉的程序不能在Ubuntu下运行,基于这些原因,他们最后还是换回了Windows,出现这种现象归根结底要怪缺少Linux方面的教育,我坚信,如果Ubuntu能够做到完全兼容Windows应用程序,并且安装简单,大部分上网本用户是不会切回到Windows的。 不用质疑,Mono跨平台的特性会带来巨大的好处,不仅可以让Windows应用程序运行在Linux下,反之亦如此,有太多的Windows程序需要运行在Linux上了,我们等待这一天已经很久了,不是吗?! 因此,我想劝诫Linux爱好者,拥抱Mono吧,对于Windows爱好者,也拥抱Linux吧,我想对所有人说,顺应Mono带来的一切变化吧! |