《程序员》杂志试读:PHP与ASP.NET优劣势分析

mingwj1980 2007-01-24 09:30:02
主页上的,今天一大早来就看到了,地址是
http://blog.csdn.net/programmer_editor/archive/2007/01/18/1486621.aspx

PHP与ASP.NET优劣势分析
不管你是不是已经选择了PHP,根据它在如下表格中在价格、速度、效率、安全性、平台支持性和开源与否上的表现,我们都能判断出它的强项是远胜于弱点的。唯一不足的是缺少面向对象的支持。然而,这是个相对次要的缺陷,虽然不可忽视语言的结构,可是最终来说,优秀的编码还是归结于反复实践、执行、好习惯和纪律。

PHP 4 PHP 5 ASP.NET
软件价格 免费 免费 免费
平台价格 免费 免费 $$
速度 强 强 弱
效率 强 强 弱
安全性 强 强 强
平台安全性 强 强 弱(IIS only)
平台支持性 任意 任意 win32 (IIS only))
是否开源 是 是 否
异常机制 否 是 是
OOP 弱 强 强

价格:我不会单纯考量首次投资的价格,拿PHP来说,显然是免费的,但我们也要考虑开发、维护和调试的成本,你可能还要购买Zend优化引擎。对于ASP,你在一开始就要投资购买产品,而且你还会在额外的技术上开销,比如购买图形处理的类库,或是其它。但从长远来看,PHP不会要求你去缴纳升级费用或是购买更多的license。任何曾经接触过license的人都会知道公司往往会在确保产品的兼容性上花费大量时间和金钱。此外,发现bug并得到修复的反馈处理情况也不尽相同,这其实也可换算为时间的消耗,进而影响到整个开发的成本。
速度和效率:就像我前面所提到的,ASP.NET是一个允许你使用多种不同编程语言的框架。此外,它还号称拥有出色的面向对象编程模型。确实如此,可是这却带来了速度上的降低。谈到它的这些优点,对于相同功能的页面来说,比起PHP, 运行于ASP的页面需要其服务器分析、执行更多的代码。而PHP是“快餐型”的解决方案,先将功能搞定,还有很多健壮性上的问题可以留到2.0或是3.0里进行补充,而且它的核心代码得到编译的优化,程序可以高速运行。速度并非唯一的考量,内存的耗用也很重要。
安全性:ASP.NET运行于IIS之上,这是个曾无数次遭受攻击的系统,几乎每周IT的新闻上都会有类似消息。实际上,它已成为一项负债,不管整个市场投了多少美元在上面,很多IT的专业人士已经拒绝将他们的网络暴露于IIS Web服务器之下。而PHP与Apache工作在一起,它拥有良好的速度、可靠性的表现,还有过硬的安全性。
平台支持性:ASP.NET起初运行于IIS,现在也可以运行于Apache,而Apache能运行于所有平台。PHP天生就是设计运行于Apache上,所以你有很多被证明是可靠的平台去选择。
开源与否:开源并非只是那些理想主义程序员们的专利,也不是那些想要在license上节省几十美元的公司所特有的。当你碰到所购买的软件本身的bug的时候,开源可就是天赐良品。

无论是用ASP.NET还是PHP,都可能有很多用户用你的软件并发现bug。对于ASP.NET,这些bug就要经过一个官僚的过程来告知,修复,验证,然后再等到下一个补丁时发布。而PHP的修复和发布都很快。任何看过开源开发的人都知道新的产品发布或是补丁经常是几天内的事情而不是商业软件那样的几周或几个月。如果你认为那还不够快的话,如果你愿意,你也可以自己直接修复。
===========

大家来评论一下吧
...全文
447 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
c2u 2008-12-21
  • 打赏
  • 举报
回复
asp.net 提供的组件非常丰富,
所以初学者很容易滥用,像viewstate,masterpage,皮肤,UserControl,更加消耗资源
当一个页面都是这些高层组件,搭建起来的话从理论上讲肯定不及php直接操
作底层html元素来得快了……

这只是一种假像,其实asp.net本身是不慢的,
如果使用适当的方法使用接近底层的设计方法,速度是可以保证的。
如使用iFrame代替Usercontrol/MasterPage,不使用ViewState,
甚至全部使用htm写UI,并使用JQuery调用ashx程序,速度非常可观。
对高手而言,只不过是开发效率和运行效率之间的平衡而矣……

不同的人有不同的设计方法,asp.net是易学难精,给的选择更多……
qq196260188 2008-12-21
  • 打赏
  • 举报
回复
很多面试官都是这样说...呵呵,,,
不信的话,,你去打听打听,,,我做.net不下一年了,,呵呵。。。去面试的时候,,面试官要我说那种语言做同样一个功能,,运行最快,,我就说是.net的,,因为他是编译运行的,,,但那面试官,说我错了,,我当时就无语了........
hanghaigood 2008-12-21
  • 打赏
  • 举报
回复
PHP运行速度比asp.net,你听谁说的??????
qq196260188 2008-12-21
  • 打赏
  • 举报
回复
还有我是一个asp.net C#和程序员,,asp.net C#真的有很多优点,,,但是我真的是看不下去了,,

像一个注入问题,,做的比asp还烂,VIEWSTATE来说话吧,,好处是明显的,,,但是对于新手来说,,,看到一个巨大数据的VIEWSTATE,,不知怎么去外理,,对做 SEO非常不友好,
qq196260188 2008-12-21
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 hanghaigood 的回复:]
引用 20 楼 qq196260188 的回复:
很多面试官都是这样说...呵呵,,,
不信的话,,你去打听打听,,,我做.net不下一年了,,呵呵。。。去面试的时候,,面试官要我说那种语言做同样一个功能,,运行最快,,我就说是.net的,,因为他是编译运行的,,,但那面试官,说我错了,,我当时就无语了........


那面试官有说哪种语言运行最快??原因??
[/Quote]

PHP,,呵呵,,,我当时也郁闷了,,,这样都可以做技术经理.....php是比asp好,,但是...
hanghaigood 2008-12-21
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 qq196260188 的回复:]
很多面试官都是这样说...呵呵,,,
不信的话,,你去打听打听,,,我做.net不下一年了,,呵呵。。。去面试的时候,,面试官要我说那种语言做同样一个功能,,运行最快,,我就说是.net的,,因为他是编译运行的,,,但那面试官,说我错了,,我当时就无语了........
[/Quote]

那面试官有说哪种语言运行最快??原因??
yingshao419 2008-12-21
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 c2u 的回复:]
asp.net 提供的组件非常丰富,
所以初学者很容易滥用,像viewstate,masterpage,皮肤,UserControl,更加消耗资源
当一个页面都是这些高层组件,搭建起来的话从理论上讲肯定不及php直接操
作底层html元素来得快了……

这只是一种假像,其实asp.net本身是不慢的,
如果使用适当的方法使用接近底层的设计方法,速度是可以保证的。
如使用iFrame代替Usercontrol/MasterPage,不使用ViewState,
甚至全部使用htm写UI,并使…
[/Quote]

好家伙,IFrame都用上了,Iframe能用在前台页面级吗(除用于用户管理中心)?页面不友好,不利于SEO..
qq196260188 2008-12-21
  • 打赏
  • 举报
回复
php罗,,不过,,我了解过zend优化过后的php网站也不含糊,,,,,,
qq196260188 2008-12-20
  • 打赏
  • 举报
回复
不是乱说,,,php的zend优化是可以提高php的速度的3-5倍,,,所以现在很多程序员都认为php是执行速计度最快的.
sunxw18 2007-01-24
  • 打赏
  • 举报
回复
自己喜欢就可以了~~
mingwj1980 2007-01-24
  • 打赏
  • 举报
回复
22
hymxtang 2007-01-24
  • 打赏
  • 举报
回复
喜欢就好~~
  • 打赏
  • 举报
回复
其实拿什么cgi、com来照样可以套在它的结论上。其实现在可以开发web程序的语言不下百种,那些越是低级越有优势的“分析”一看就是学术水平很低的托写的。不过没有什么可去辩驳的,根本没有可比性,大家自重就可以了。
winner2050 2007-01-24
  • 打赏
  • 举报
回复
如果那么好,为什么不像现实社会里面免费能引起哄抢的效果??

大家也听说过一些例如一元冰箱、空调的促销活动,把门挤爆、防暴警察在旁待命,120在旁待命。
leahb 2007-01-24
  • 打赏
  • 举报
回复
就像我前面所提到的,ASP.NET是一个允许你使用多种不同编程语言的框架。此外,它还号称拥有出色的面向对象编程模型。确实如此,可是这却带来了速度上的降低。
=====================
我只能说编辑是外行,编辑不是程序员,可以理解。
.NET 不支持跨平台是出于商业考虑,技术不是问题。
winner2050 2007-01-24
  • 打赏
  • 举报
回复
开源与否:开源并非只是那些理想主义程序员们的专利,也不是那些想要在license上节省几十美元的公司所特有的。当你碰到所购买的软件本身的bug的时候,开源可就是天赐良品。
=======================================
这么说开源比盗版还过分,免费给人家分享劳动成果,而且还要给人家知识产权用来维持自己公司的运作。

而且有bug以后有人修改吗?几个人能修改得了?
mingwj1980 2007-01-24
  • 打赏
  • 举报
回复
12
lr21shiji 2007-01-24
  • 打赏
  • 举报
回复
uno 2007-01-24
  • 打赏
  • 举报
回复
不过这家伙说得基本上都站不住脚
uno 2007-01-24
  • 打赏
  • 举报
回复
没错

实际应用效果比理论分析更有说服力
加载更多回复(3)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧