【IT168 专稿】当我第一次开发网站时,我使用的是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可以自豪地向世人证明它是多么的强大。