PHP VS ASP

微软的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,在所有的地方使用“$”这个符号,它是非常酷的,同时它也是我最喜欢的一个符号!:)

时间: 2024-08-17 14:20:51

PHP VS ASP的相关文章

固定表头-在ASP.NET页面中,固定DATAGRID表头出现的问题

问题描述 在ASP.NET页面中,固定DATAGRID表头出现的问题 使用DIV标签加js纯页面固定表头,实际上就是将表头获取出来填充到一个DIV中,问题就是如何将表头和表中的内容对齐,特别是在表中数据动态改变列宽不固定的时候

学ASP动态网页必备:IIS 错误代码

iis|错误|动态|网页     400 无法解析此请求.     401.1 未经授权:访问由于凭据无效被拒绝.     401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝.     401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝.     401.4 未经授权:Web 服务器上安装的筛选器授权失败.     401.5 未经授权:ISAPI/CGI 应用程序授权失败.     401.7 未经授权:由于 Web 服务器上的 URL 授权策略而拒绝访问

Oracle大文本在ASP中存取问题的解决

oracle|解决|问题 在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解决了大文本数据在ORACLE下存取问题. 一.运行环境: 1.Microsoft Windows 2000 Server + IIS 5.0 2.Oracle8i中文标准版 二.建立数据表: CREATE TABLE SYSTEM.TEST( BLOB LONG, ID NUMBER) / 三.源程序: 1.数据存入程序:test.asp <% '表单提交处

ASP中一个字符串处理类(VBScript)

vbscript|字符串 这个类是用于处理字符串的,是老外写的,我把里面的功能和参数加了说明 使用方法: =============== test.asp================ <!--#include file="StringOperations.asp"--> <%dim strset str = New StringOperations test = str.toCharArray("check this out") respons

asp 用存储过程实现数据分页

存储过程|分页|数据 一.创建表 tiku_koushi if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tiku_koushi]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[tiku_koushi]GO CREATE TABLE [dbo].[tiku_koushi] ([id] [int] IDENTITY (1, 1)

如何用asp把sql server數據轉化為execl文件

server 1.ASP文件: <%@ LANGUAGE="VBSCRIPT" %><%option explicit%><%'EXAMPLE AS:把数据库中一个每天24小时在线人数放到一个EXCEL文件中去'AUTHOR :钢铁工人'EMAIL :hello_hhb@21cn.com'DATE :2001-3-25'TEST :在NT4,SP6,SQL SERVER 7.0,EXCEL2000中测试通过%><HTML><HEAD

在ASP中使用SQL语句之9:表单操作

语句 从某个页面表单中取出信息是ASP编程中常见的问题.但是,遍历通过表单传递的记录会花去多长时间呢?这取决于数据库的大小.简单的GUI界面都可能令循环遍历操作耗费太多的时间. 比方说,假设有个团队成员登录到GUI屏幕输入自己的名字姓氏和名字之间用点号连接:amy.cowen.这个值通过表单提交,她的当前项目列表就从数据库中取了出来并显示在屏幕上.为了快速地取出用户的记录以便显示在屏幕上,你可以编写以下代码. 假设HTML页面上包含以下代码:<FORM ACTION="login_post

在Visual J++中编写ASP COM组件

visual Java是一种以网络为中心的编程语言,许多只使用ASP脚本难以完成的任务可以用Java轻松地实现.同时,扩展ASP应用最好的方法莫过于加入COM组件.那么,可以利用Java为ASP开发组件吗?本文通过实例,说明了在Visual J++环境下开发COM组件的具体过程. 一.概述 自Java问世以来,各种开发工具.开发环境不断出现.这些环境和工具面向不同层次的用户,具有各自的优点.那么,使用Visual J++作为Java开发平台又有哪些优点呢?粗略地讲,这些优点包括: 熟悉的开发环境

ASP.NET系统用户权限设计与实现

摘 要 本文依据RBAC的基本思想,利用ASP.NET中的用户控件技术,设计了在电子商务系统中用户权限控制的一种具体实现方法. 关键词 ASP.NET 角色访问控制 用户控件 引言 电子商务系统对安全问题有较高的要求,传统的访问控制方法DAC(Discretionary Access Control,自主访问控制模型).MAC(Mandatory Access Control,强制访问控制模型)难以满足复杂的企业环境需求.因此,NIST(National Institute of Standar

如何使用ASP脚本制作异步装载的树形结构(一)

脚本|异步 树形结构是描述层次数据的常见方法.本文介绍的树形结构生成程序主要由一个ASP页面.二个JavaScript函数构成.该树形结构是异步的,也就是说,节点数据仅在必要时才读取,而不是一次性全部发送到客户端. 一.概述 树形结构中所有的节点都必须包含以下属性:本身的ID,父节点的ID,以及本节点的说明(节点文本).本文用到了一个Access数据库Tree.mdb来保存这些节点信息.Tree.mdb包含表tblTree,其定义如下: 字段名称 类型 说明 ElementID 自动编号 节点的