PHP 还是 ASP.NET:我做了正确选择么?

作者:   出处:互联网   2015-07-03 11:44:25   阅读:2

设想一下,如果你可以回到过去,改写技术生涯。哪些重要的时刻,你会想改变?在2001年,曾作为一家成功的网站咨询公司的共同合伙人,去处理有关 Classic ASP的事情。当时,这些事情是很了不起的。们是一家微软产品的经销商,并且为此感到自豪!但是……
 

 

在2001年, 曾面临一个选择,去学PHP或者ASP.NET。 最终选了后者,但依然怀疑这个选择其实不好。


 

那是2001年,面临一个选择。


 

设想一下,如果你可以回到过去,改写技术生涯。哪些重要的时刻,你会想改变?在2001年,曾作为一家成功的网站咨询公司的共同合伙人,去处理有关 Classic ASP的事情。当时,这些事情是很了不起的。们是一家微软产品的经销商,并且为此感到自豪!但是


 

曾用过早期的.NET 并且很痛恨它。讨厌Visual Studio。不知道 C#,而 VB.NET 看起来就像一个笑话。记得坐在奥克兰到旧金山的船上,决定学习ASP.NET的基础来应对工作,而一边又不停的问自己一个问题。


 

你究竟要多努力才能搞懂这些?那天去工作,并且和合作人坐在一起。告诉他 .NET 已经脱轨了。他笑了笑,然后那天,们有了一次关于们公司和未来的谈话。


 

熟悉classic ASP,IIS SQL 服务器,windows NT/2000 知道如何处理这些事情。并不知道 Linux 或者 MySQL, 但是通过阅读代码可以发现:新的框架其实基本上照搬Classic ASP,但有些针对MySQL和Apache的改动。


 

本可以预料到这些,并且这本可能成为一个有趣的挑战。一直喜欢学习直到现在。可以回去买书并且在一个月内掌握这些新技术。


 

但是们有一些不能流失的顾客。必须立刻服务他们,不能中断。这种情况下,学习一个新技术平台会非常困难,尤其是们顾客找们的理由是因为们是微软专家。(就像毒瘾一样,难以割舍。)


 

继续做自己熟悉的事情 是个想当然的选择。问题是过去的知识和经验并不能很好应用到.NET上。无论如何,需要学习一门新语言和新框架。


 

微软统治的年代


 

MVP


 

你需要记住2001年是微软统治的年代。大型的网站是由Linux和Java构建开发的。如果你那时在硅谷,并且和别人说你是一个微软开发者,你会被嘲笑的。(现在嘲笑的人更多了)


 

出了硅谷,对于任何企业,微软就是答案。这些公司已经购买了微软的Window和Office,而他们现在要网站。微软是他们想当然的选择。


 

不幸的是,(咨询公司在IT泡沫事件破产)去了一家 The Valley 的初创企业。这家企业的架构是由开源/Java/Emacs/Eclipse组成的。是唯一一个微软程序员,服务一个全部采用微软技术的重要客户。


 

其他开发团队需要数周来完成在客户网站上的一个小改动。而仅要几个时辰就可以用SQL服务器和Classic ASP达到。对于他们本打算放弃的任务,总能给客户满意的结果。


 

这就是选择成为一个微软专家和一个.NET的开发者的原因。除此之外,曾拼命地去成为一个微软认证工程师。(曾经做到了!)最终,貌似成为了一个微软方面的MVP。或者说,认为成为了。


 

现在看来这实在很愚蠢,但如果你是当时的,在那种工作环境之下,MVP的头衔意味着一切。去问问.NET朋友,他们会告诉你这些。


 

接下来的事


 

ods


 

BOM


 

因为对象数据源不能同数据列表绑定,所以Entity Framework不能被使用。


 

虽然现在发了这条Tweet,但是很多ASP.NET的程序员依然对这个问题很茫然。这不是恶搞,这是一个微软官方的教程。


 

这就是决定转行之前,职业生涯的真实写照。


 

从2002到2008年,微软网站产品曾经是(现在很大程度上依然是) 可视化组件开发 。这意味着你只需要不断地拖放组件,然后让组件实现功能。(生成HTML,连接服务器,CSS代码等等)


 

这项技术使得表格必须用 数据源 这种原始方式去生成。需要麻烦的写出一些XML文件去映射 数据源 。


 

这事从来没有顺利过,但还是坚持去做。请不要问为什么。


 

这些也发生了


 

2008年,开始用Rails,并且立刻喜欢上了它。但这并不意味着从此 义无反顾 的转向了。Rails令可以,像以前开发时一样,拥有全面的反馈。HTML和CSS不再可怕。(它们对ASP.net开发者而言很可怕)代码重新成为朋友。


 

在.NET的环境下,在某种程度上,们处理后台代码和服务器组件,而水平最高的开发者仅用最少的代码来完成程序。不知何故,在这一情形的驱使下,们背离了们原本的目标:网站开发者。


 

这一切想法向涌来。清楚地记得想远离.NET的想法。但当冷静下来,有了个想法:


 

如果将在Rails学到的带回ASP.NET,那么会发生什么?


 

从此启动了 亚声波 项目(受ruby的 活动记录 启发而写的ORM),并且尝试了5种不同的方法去构建一个基于.NET的MVC的框架。 喜欢C#,而且微软的产品市场很大。为什么要依赖微软的研究室来决定如何写堆栈?这构成接下来5年的职业生涯。被认为是一个 麻烦制造者 , 搅罐器 , 抱怨者 ,并且被认为是个 巨魔 。或许这些看法确实有点适合。 改革推动者 对而言是个新角色。(Twitter也是)因此 觉得公关技巧还需要改善。


 

这有些跑题了(但还是有联系)。真正想知道的是


 

如果当时不这么做,会发生什么?


 

今天提起这件事情是因为有一次被邀请去看一个 Ghost Blog 的模块。(作为一次随意讨论的一部分)而这个Node程序看起来就像用PHP写。


 

这不禁让想到 如果坚持用PHP,是否会用同样的方式写Node程序 ?很可能通过一个脚本开发者的角度去看网站,并且错过了一些从.NET开发中学到的 高级概念 。这种想法很正常,应该会这么写Node。


 

这当然引发了另一个问题:写Node程序是否和.NET开发者类似?


 

或许有一些。知道写ruby程序就是这样 那么这是个糟糕的事情?这些影响是否令更容易扭曲Node代码?


 

知道将会习得很多有关Linux或MySQL的知识,并且确定将会参加一些有趣的开源项目,如同写.NET时一样。可能会迷上Rails,并且尝试将一些Rails优点带到PHP中。


 

好似历史就会重新聚焦到此刻,但有一个重大的不同:将不会陷入ASP.NET的泥潭长达五年。


 

认为应该能做到:


更加了解Linux系统
更加了解MySQL和其他开源服务器。
不会像4年前一样害怕Javascript
不再依赖开发工具
喜欢HTML和CSS
 

这里有一个明显的缺点:.NET阻碍增加关于HTML/CSS/Javascript的知识。无须告诉你这些知识是如何重要,永远不需要。


 

另外,被迫使用 Visual 工具 ,而且现在每天还同它作斗争。在网站项目上,习惯于用TreeView控件来看数据库和文件里的表格。Visual开发已经被烧录进大脑!啊哈!


 

另一方面


 

或许当最终决定进入Rails的世界时,这些挫折迫使不断的学习。这团火始终和在一起,鼓励发了这条。借用Lewis Black的一句话:


 

my favorite joke lewis black header


 

要不是因为马,才不花时间上大学呢!


 

马就是 ASP.NET。
 

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat