PHP与ASP.NET正面交锋(二)_PHP

Jun 01, 2016 pm 12:40 PM
apache asp.net iis php フロント

接上一篇:PHP 与 ASP.NET正面交锋(一)

安全性比较

ASP.NET 官方要求您使用 IIS。不幸的是,IIS 易受攻击的历史由来已久,这使得许多管理员不愿意部署它来处理 Web 站点。这些弱点是因为 Microsoft 的缺陷或是因为 IIS 是黑客们攻击的目标无关紧要:这些系统有被黑或被攻击的历史。PHP 也运行在 Apache 上,Apache 快速并且是开放源代码的,并拥有很好的安全性记录。此外,正如我提到过的,Apache 可以在许多平台上运行。

如果您在考虑 ASP.NET,但您想用 Apache 作为 Internet 门户,那么很幸运您可以有一些选择。首先,您可以使用 Apache 将请求转发给在另一台计算机上内部运行的 IIS。然后 Apache 处理静态内容,并将 aspx 内容传送给 IIS 服务器(不暴露给 Internet)。

不过,如果您想利用 Apache 承载 ASP.NET,那么提供了一些选项,这些选项 Microsoft 可能支持也可能不支持。作为最后一种选择,有 Ximian 的 Project Mono,它致力于构建一个开放源代码模块。请浏览 www.go-mono.com,以获取更多信息。

数据库编码示例

您在选用 PHP 或 ASP.NET 时首先要考虑因素之一就是与数据库的连接。不过,利用 ASP.NET 更复杂,因为您可以从许多备选语言中选择任意一种语言。当然,这些代码示例将必须嵌入到 HTML 页面、实例化的类等之中。不过,以下信息将使您对二者的编码风格有所了解。

PHP 5 与 Oracle 连接

下面是一个 PHP 5 类,它提供了一个 Oracle 连接和断开例程,用以演示利用 PHP 5(也可以使用其他驱动程序(如 ODBC 驱动程序)和通用的数据库接口)与 Oracle 连接的一种方式:

class oracle_object {
protected $theDB;
protected $user;
protected $pass;
protected $db;

function __construct($u, $p, $d) {
$this->user = $u;
$this->pass = $p;
$this->db = $d;
}

function db_open () {
$theDB = @OCILogon($this->user, $this->pass, $this->db);
db_check_errors($php_errormsg);
}

function db_close() {
@OCILogoff($theDB);
db_check_errors($php_errormsg);
}

function __destruct () {
print ("so long...");
}

}



ASP.NET 与 Oracle 连接

如果您希望利用 VB.NET(Visual Basic 是 Microsoft 的默认 .NET 编程语言)与 Oracle 连接,那么请看一下这个来自 MSDN 的示例:

Imports System
Imports System.Data
Imports System.Data.OracleClient
Imports Microsoft.VisualBasic

Class Sample

Public Shared Sub Main()

Dim oraConn As OracleConnection = New OracleConnection
("Data Source=MyOracleServer;Integrated Security=yes;")

Dim oraCMD As OracleCommand = New OracleCommand
("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn)

oraConn.Open()

Dim myReader As OracleDataReader = oraCMD.ExecuteReader()

Do While (myReader.Read())
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}",
myReader.GetInt32(0), myReader.GetString(1))
Loop

myReader.Close()
oraConn.Close()
End Sub
End Class



作出选择

假定您还没有决定选用 PHP,我可以断言 PHP 的优势远远超过它的弱点。(请参见表 1 中的概要。)这些优势归结为价格、速度和效率、安全性、跨平台适用性和开放源代码机遇。它惟一的弱点是缺少一种纯粹和完美的 OOP 实现,不过,这是一个很小的缺点。虽然语言结构的确有帮助,但好的编码最终是由实践、执行、好的习惯和规范带来的。

表 1

PHP 4 PHP 5 ASP.NET
软件价格 免费 免费 免费
平台价格 免费 免费 $$
速度 强 强 弱
效率 强 强 弱
安全性 强 强 强
平台 强 强 弱(仅用于 IIS)
平台 任意 任意 win32(仅用于 IIS)
是否提供源代码 是 是 否
异常 否 是 是
OOP 弱 强 强


价格。在此,我们不应简单地考虑初始投资 — 对 PHP 而言,这很明显是免费的 — 还应考虑实施、维护和调试的成本。对 PHP 而言,您可能需要购买 Zend 优化引擎。然而,使用 ASP,您将从一开始就进行投资,而且您还要为附加的技术 — 例如,执行图形处理的库 — 支付费用。但从长远来看,PHP 将不会逼迫您升级并向您收取更多的许可费用。接触过复杂许可的每一个人都知道,很多公司花费大量的时间和金钱仅是为了确保其顺应性。此外,当在获得错误修复的时间上,您得到的反应也有所不同。这当然将转化成时间,时间又将转化成总体开发的成本。

速度和效率。正如我先前提到的,ASP.NET 是一个允许您使用各种编程语言的框架。此外,它据称拥有一个极好的面向对象模型。尽管所有这些都是真的,但在考虑到速度时,它却是不利的。基于以上原因,在 ASP.NET 中运行 ASP 页面与在 PHP 引擎中运行等效的 PHP 页面相比需要执行更多代码。PHP 是一种“快速粗糙”的解决方案,是为完成工作而设计的解决方案。虽然自 2.0 和 3.0 版本以来为其增强了许多强健性,但它仍然保留着核心的优化的高速方法。

速度不是惟一要考虑的因素。内存使用率也很重要。

安全性。ASP.NET 运行在 IIS 上,而 IIS 已被攻击了无数次 — 正如每隔一周的 IT 新闻报告所证实的。它已经成为这样一种负担,实际上,尽管其耗巨资进行销售宣传,但许多 IT 专业人员仍然拒绝用 IIS Web 服务器来开放他们的网络。而 PHP 使用 Apache。Apache 拥有已被证明的速度、可靠性和稳固的安全性的记录。请浏览 www.securityfocus.com,以获取更多信息。

跨平台适用性。ASP.NET 在 IIS 上运行,并且开始在 Apache 上运行(Apache 能够在许多平台上运行)。PHP 从一开始就设计用于和 Apache 一起工作,因此您拥有许多可供选择的已被证明和可靠的服务器平台。

开放源代码机遇。开放源代码并不只靠一些异想天开的编程人员或想要节省一些许可费用的公司来开展。当您处理软件本身的错误时,开放源代码可能成为真正的天赐之物。

在使用 PHP 或 ASP.NET 的情况下,您都会有一个大的用户群,他们使用软件并且可能遇到错误。使用 ASP.NET,这些错误必须通过一个官方程序来通知、修复、测试,并在一个新的补丁或版本中消除。然而,PHP 补丁可以快速地得到修补并发布。目睹开放源代码发展的任何人都知道,新的版本和补丁通常在几天内而不是像商业软件一样在几个星期或几个月内推出。如果这不够快,那么您通常可以自己来修补问题(如果必要的话)。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

2024 年の開発者向け PHP CMS プラットフォーム トップ 10 2024 年の開発者向け PHP CMS プラットフォーム トップ 10 Dec 05, 2024 am 10:29 AM

CMSはコンテンツマネジメントシステムの略称です。これは、ユーザーが高度な技術知識を必要とせずにデジタル コンテンツを作成、管理、変更できるようにするソフトウェア アプリケーションまたはプラットフォームです。 CMS を使用すると、ユーザーはコンテンツを簡単に作成および整理できます

PHPの配列の最後に要素を追加する方法 PHPの配列の最後に要素を追加する方法 Feb 07, 2025 am 11:17 AM

配列は、プログラミングのデータを処理するために使用される線形データ構造です。アレイを処理している場合は、既存の配列に新しい要素を追加する必要があります。この記事では、各方法のコード例、出力、時間と空間の複雑さ分析を使用して、PHPの配列の最後に要素を追加するいくつかの方法について説明します。 アレイに要素を追加するさまざまな方法は次のとおりです。 四角い括弧を使用します[] PHPでは、配列の最後に要素を追加する方法は、四角い括弧[]を使用することです。この構文は、単一の要素のみを追加する場合にのみ機能します。以下は構文です。 $ array [] = value; 例

PHP とソーシャル メディア: ウェブサイトを世界と統合する PHP とソーシャル メディア: ウェブサイトを世界と統合する Oct 11, 2024 am 11:54 AM

PHP は、Web サイトがソーシャル メディア機能を簡単に統合できるようにするツールを提供します。1. ユーザーがコンテンツを共有するためのソーシャル メディア共有ボタンを動的に生成します。2. OAuth ライブラリと統合して、シームレスなソーシャル メディア ログインを実現します。3. HTTP ライブラリを使用してソーシャル メディアをキャプチャします。メディア データ、ユーザー プロフィール、投稿、その他の情報を取得します。

See all articles