PHP 与 ASP.NET 正面交锋

如今当提到 Web 开发时,您有许多选择。这些方法中许多都涉及到预处理
即,利用特定的标记将代码嵌入到 HTML
页面中,这些标记告诉预处理器,它们包含代码,并且应对它们作出处理。与 CGI
非常相似,这些代码在服务器上运行,并返回一些内容,这些内容表现为发回给浏览器的结果
HTML 页面的部分外观。开放源代码脚本语言 PHP 和 Microsoft 的 ASP.NET
框架中的语言都属于这种类型;JavaServer Pages (JSP) 和 Perl/Mason
也以这种方式运行。

在本文中,我将重点讲述 PHP Oracle 已选择合并到其产品中的技术 和
ASP.NET。我将概述两者的各种优势和弱点,并着重讨论那些将帮助您决定开发项目应选择哪种技术的因素。有很多因素需要考虑,不同的项目可能诉诸于不同的技术。总之,您将看到在价格、速度和效率、安全性、跨平台支持等方面的逐项比较,以及开放源代码解决方案的优势。

什么是 ASP.NET?

ASP 最新的版本 ASP.NET 并不完全与 ASP
早期的版本后向兼容,因为该软件进行了完全重写。早期的 ASP 技术实际上与
PHP 的共同之处比与 ASP.NET 的共同之处多得多,ASP.NET 是用于构建 Web
应用程序的一个完整的框架。这个模型的主要特性之一是选择编程语言的灵活性。ASP.NET
可以使用脚本语言以及编译语言。新框架使用通用语言运行环境
(CLR);先将您语言的源代码编译成 Microsoft 中间语言代码,然后 CLR
执行这些代码。

这个框架还提供真正的面向对象编程
(OOP),并支持真正的继承、多态和封装。.NET
类库根据特定的任务组织成可继承的类。

除了编程语言和方法之外,数据库访问也是要着重关心的一个因素。当您用
ASP.NET 编程时,可以用 ODBC 来集成数据库;ODBC
提供了一组一致的调用函数来访问您的目标数据库。

优势和弱点

ASP.NET
的优势很明显在于它简洁的设计和实施。这是面向对象的编程人员的梦想:语言灵活,并支持复杂的面向对象特性。在这种意义下,它真正能够与编程人员现有的技能进行互操作。

ASP.NET 的另一个优势是其开发环境。例如,开发人员可以使用
WebMatrix、Visual Studio .NET 或各种 Borland 工具。例如,Visual Studio
允许设置断点、跟踪代码段和查看调用堆栈。总而言之,它是一个复杂的调试环境。许多其他第三方的
ASP.NET IDE 解决方案也将必然出现。

但您得到了强健性,就将以损失效率为代价。ASP.NET
在内存使用和执行时间方面耗费非常大,这大部分归因于较长的代码路径。对基于
Web 的应用程序,这些局限可能是一个严重的问题,因为在 Web
上,您的应用程序可能扩展为每秒成千上万的用户。内存使用率还可能成为 Web
服务器上的一个问题。

什么是 PHP?

PHP 是基于预处理 HTML 页面模型的一种脚本语言。当 Web 服务器中的 PHP
预处理器发现像下面这样的 PHP 语言标记时,将调用 PHP 引擎来执行该代码:

?php some code here ?

澳门新葡亰网站注册,任何使用过命令式编程语言的编程人员都会对 PHP 非常熟悉;您会发现它与
Perl、C 和 Java 在语法上的相似处。严格来讲,Java
是一种命令式编程语言,但它也利用了面向对象的结构和概念。PHP
在适宜的时候借鉴了这种结构,但它不是一种纯粹的 OOP 语言。

在上面对 ASP.NET 的讨论中,我提到了 ODBC
驱动程序,以及在考虑数据库抽象的情况下如何构建应用程序。在 PHP
中,您也可以使用 ODBC
与数据库对话,因此您已经有了一系列支持的数据库可供选择。也有
MySQL、Oracle 和 Postgres 的原生驱动程序。此外,如果要使用
Oracle,则有一个特殊的 OCI8 库将提供对 Oracle
更多访问功能,从而允许您使用诸如 LOB、BLOB、CLOB 和 BFILE 之类的特性。

这时您可能会问为什么与数据库相关的资料库被称为 PHP
的特性?数据库抽象或独立性是您在设法构建使用多种数据库或需要在数据库间移植的应用程序时所要考虑的一个因素。而这些确实是应该关心和考虑的。