打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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 可以使用脚本语言(如 VBScript、JScript、Perlscript 和 Python)以及编译语言(如 VB、C#、C、Cobol、Smalltalk 和 Lisp)。新框架使用通用语言运行环境 (CLR);先将您语言的源代码编译成 Microsoft 中间语言代码,然后 CLR 执行这些代码。

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

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

优势和弱点

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

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

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

什么是 PHP?

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

<?phpsome 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 的特性?”数据库抽象或独立性是您在设法构建使用多种数据库或需要在数据库间移植(例如,从开发到投产时的移植)的应用程序时所要考虑的一个因素。而这些确实是应该关心和考虑的。

但正如 Tom Kyte 在他的新书 — Effective Oracle by Design (Oracle 出版社) — 中指出的那样,数据库相关性将成为您真正的目标,因为这将使您在该技术中的投资最大化。如果您对 Oracle 进行一般的访问 — 无论通过 ODBC 或 Perl 的 DBI 库,那么您将无法使用其他数据库所不具有的特性。此外,优化查询在各个数据库中各不相同。

Zend Technologies 是一家商业软件公司,它对 PHP 作出了重大贡献。它创建了一个称为 Zend Studio 的商业开发环境,这个环境包含了一个复杂的调试器、一个监测器和其他特性。该公司还构建了免费的 Zend Optimizer,它与 Zend Encoder 结合使用来编译 PHP 代码,以提升性能。还有其他商业产品,如 Zend Performance Suite,它可以缓存预编译的 PHP 页面,从而进一步显著提升总体性能。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ASP.NET、PHP、JSP的简单比较
他该何去何从?
ADO的定义
asp,asp.net,php,jsp语言的区别各自的优势
网站设计语言ASP与PHP的优缺点,该如何选择?
什么是CMS,
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服