PHP VS ASP


Posted in PHP onOctober 09, 2006

PHP versus ASP
Thu, Aug 17, 2000; by John Lim.
序:
微软的ASP是一项强大的动态WEB页面技术,我已经使用了一年的ASP,用它创建了许多的WEB站点,但是现在我的公司正想转向另一项叫PHP的INTERNET技术,来进行以后的WEB站点开发。
问题是我们已经习惯于使用ASP,并且喜欢用它,为什么我们要转向PHP呢?

开放源码运动
首先,我们认识到,开源运动使我们获得了强大的技术支持和免费的代码供应。例如:在ASP中,上传文件、加密密码、发送邮件都需要第三方的商业软件的支持,是要收费的;但在PHP中,这一切是免费的!
但这还不足以说服我们转向PHP,因为我们已经投入了大量的时间和金钱在这些必需的商业软件工具上。

INTERNET程序和LINUX
我有一个梦想,我希望在将来每一个程序都是一个INTERNET程序。不用再需要购买软件包,不要再去安装它,它们能在INTERNET上得到,并且已经是安装好的,我们只要在浏览器中运行程序,这不会需要太多的配置。
大部分的网络应用程序都运行在LINUX和PHP上。它们通常不使用ASP,有一种软件叫Chilisoft ASP,它能在LINUX上运行ASP,但它是要钱的,同时它也不支持最新版的ASP,更重要的是创建高性能ASP站点所用的好的第三方DLL都不能运行在LINUX上。
于是,为了实现我们的INTERNET软件梦想,我们决定寻找一种更好的,接近于ASP的技术来替代它!

ISAPI的支持

ZEND团队正在开发的PHP核心引擎中就包括一个ISAPI引擎。
ISAPI是一种MICROSOFT的INTERNET WEBSERVER API,它的应用,使我们这些习惯于在WINDOWS下开发程序的程序员有了一条通向LINUX的捷径。

技术分析

每个人都声称自己的产品最快,这不是我真正关心的---我只关心“足够快”,对我来说,PHP足够快!
ASP支持多种程序语言。这种体系使得程序天生就带有慢和多内存占用,它的每一种语言解析就相当于一个PHP编译,(就是说,当ASP开始解析一条代码时,它相当于同时开动多个PHP),当ASP解析到一个ASP开始标记(<%)时,它需要跳出HTML解析进程而去选择另一个适当的解析进程,当它解析到一个ASP结束标记时,它又得退回到HTML解析进程。
同时,ZEND打算发布一个可以保护我们源代码的编译器,以及各种不同的优化技术(Zend Cache and Optimizer),甚至于实现PHP在WINDOWS下的良好应用,无疑,PHP在这一方面又将强于ASP!

一个使用PHP的商业决定

相对于PHP来说,这里有许多其它的开放源码选择,比如说perl,python/zope and jsp/tomact。对我来说,PHP最接近于ASP,同时也易于转换!
Perl: 一种不适用于大项目的语言.
Python/Zope:一种很好的语言,但它的体系不如PHP那般的接近ASP.
JSP/Tomcat: 我认为,比起脚本语言来,type-safe, type-bound, type-checking Java 不太好操作!

代码
我们注意到,我们用PHP开发的代码比用ASP开发的要短,这是因为,在PHP中HTTP GET和POST变量自动创建为全局变量,这样我们就不要再花费太多的时间去分析ASP REQUEST对象了。
同时PHP的include()函数非常好,我们能有条件的include代码,以使我们的代码尽量精简,更加易懂!
PHP有着相似于ASP的COOKIE和SESSION管理功能。

结论:
我现在还在使用PHP,在所有的地方使用“$”这个符号,它是非常酷的,同时它也是我最喜欢的一个符号!:)

PHP 相关文章推荐
一个ubbcode的函数,速度很快.
Oct 09 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php中explode与split的区别介绍
Oct 03 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
Oct 14 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
php生成带logo二维码方法小结
Apr 08 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
用PHP来写记数器(详细介绍)
Oct 09 #PHP
杏林同学录(三)
Oct 09 #PHP
福利彩票幸运号码自动生成器
Oct 09 #PHP
一个用php3编写的简单计数器
Oct 09 #PHP
php4的session功能评述(三)
Oct 09 #PHP
php4的session功能评述(一)
Oct 09 #PHP
php4的session功能评述(二)
Oct 09 #PHP
You might like
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
20个PHP常用类库小结
2011/09/11 PHP
php注销代码(session注销)
2012/05/31 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
Array对象方法参考
2006/10/03 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python+django实现文件上传
2016/01/17 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
python和ruby,我选谁?
2017/09/13 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Python argparse模块应用实例解析
2019/11/15 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
python re模块和正则表达式
2021/03/24 Python
25岁生日感言
2014/01/13 职场文书
司马光教学反思
2014/02/01 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android