周知のとおり、ASP は Microsoft によって廃止され、その後多くの開発者によって放棄されました。しかし、ASP はエントリーレベルのテクノロジとしても、開発プラットフォームとしても、継続的に使用する価値があると私は依然として考えています。 Google で検索すると、実行速度が遅い、例外処理機構が貧弱である、オブジェクト指向機構が欠如している、開発効率が低い、抜け穴が多いなど、ASP に関する悪いコメントがたくさん見つかります。 ASPを皆さんに正しく理解していただくために、まずはその名称を明確にしておきます。
数年前、私は Dongwang Forum プログラムを使用して BBS を構築しました。このプログラムは当時の古典的な ASP+Access アーキテクチャでした。また、フォーラムが遅い、時々固まるという人もいるという問題にも遭遇しました。ただし、SQL Server データベースに切り替えて以来、問題は解決されました。つまり、犯人はアクセスです。プログラムの実行に必要な時間はミリ秒レベルであり、10 ミリ秒であっても 100 ミリ秒であっても、実際には目立ちません。ただし、Access の同時実行性が低く、プログラムの実行の一部がブロックされ、ページがフリーズします。 。
以前は、私を含め、多くの人が VBScript を使用して ASP プログラムを作成していました。VBScript の例外処理メカニズムは実にひどいものでした。ただし、 JScript は、C# と Java に含まれるtry...catchステートメントをサポートしているため、すべての例外を処理するのに十分であるため、非常に優れています。
Ajax による Javascript の台頭以来、そのオブジェクト指向メカニズムがシミュレートされてきました。完全なオブジェクト指向ではありませんが、中小規模の Web プログラムとしてはこれで十分です。 ECMAScript を中核とする JScript も同様の仕組みを持っています。さらに、ECMAScript の言語の柔軟性は間違いなく最も強力であり、これはフロントエンド開発者が最もよく知っています。
ASP の SQL インジェクションの脆弱性は非常に深刻であるという話をよく聞きます。実際、問題は、プログラマがそれをブロックできるかどうかです。この問題は、ASP でパラメータ化されたクエリを使用することで簡単かつ効率的に解決できます。文字列の置換やデータの検証も必要ありません。
ASP (JScript) を学習する利点について話しましょう。
フロントエンド Javascript とバックエンド Javascript は両方とも ECMAScript コアに基づいているため、バックエンド Javascript を適切に作成すれば、フロントエンド Javascript のレベルも向上させることができます。
ASP.NET や PHP などのテクノロジは、Web の基礎となる層の多くをブロックするため、初心者が Web プログラムの原理を理解する能力に非常に悪影響を及ぼします。一方、ASP は間違いなく非常に基本的な部分から書かれています。たとえば、ファイルをアップロードするプログラムは、ファイル データを取得するためにデータ パケットを分析する必要があります。
ASP.NETは開発効率が高いと言われることが多いですが、私はそれには反対です。アプリケーションの機能要件が複雑でない場合は、ASP を使用して開発した方が確実に高速です。 ASP は解析されて実行されるため、コンパイルは必要ありません。変更とデバッグがはるかに簡単になります。 Windows は、追加の構成を必要とせずに、ASP 用の適切な実行環境 (IIS) も提供します。さらに、フロントエンドとバックエンドがすべて同じ言語を使用すると、多くのコードを再利用できます。これは他のテクノロジー プラットフォームでは実現できません。
近年では、 JaxerやJScript.NETなど、他のサーバーサイド JavaScript (SSJS)も登場しています。Mozilla にも SSJS プロジェクトがあります。バックエンド開発における ECMAScript のさらなる発展を楽しみにしています。
Ali Xixiの補足(技術専門家)
ASP はエネルギーが低いと言う人は、新人か学習すらできない人のどちらかです。ASP テクノロジーは誇示するためのものではなく、実際の価値を生み出すためのものです。実際、ASP にはすでに多くのアプリケーションが実装されています。参照用の一般的なソース コードが多数あるため、ASP は動的 Web ページ テクノロジの中で最も広範で成熟したテクノロジの 1 つであると言えます。もちろん、ASP には多くの欠点があり、それらを解決するには他のテクノロジーが必要です。
多くの人は、ASP がシンプルさと非効率性の代名詞であると誤解しています。ASP はエネルギーが少なく、時代遅れで、重要ではないと考えています。また、ASP は非常にシンプルであり、習得すればすぐに習得できます。
ASP は安全ではないという人もいます。ASP プログラムを作成するとき、安全なコードを作成するための仕様に厳密に従っているのであれば、作成したプログラムが安全でないという理由はありません。そういう人たちは、あたかも PHP や JSP プログラムでは SQL インジェクションが発生しないかのように、ASP は安全ではないと言います。
ASP は効率的ではない、という人もいます。本当に効率化したい場合は、Win32 プラットフォームでは COM の効率に匹敵するものはありません。単にスピードについて語ることに何の意味があるのでしょうか? Java の速度は決して高速ではありません。多くの技術的なソリューションは Java を学習している人が最もよく知っていますが、これを気にする人はいないでしょう。 Java がその速度のせいで勝てるわけではありません。特定のアプリケーション環境に関係なく、単純に速度について語るのは不合理です。
ASP ではあれもこれもできない、機能が非常に限られている、という人もいます。実際、Web の原理を理解していれば、ASP プログラムの作成は表面上でスクリプト言語をプレイするようなものであることが理解できるでしょう。しかし、あなたが命令しているのは Web サーバーであり、ASP が実行できる複雑な機能は数多くあります。一部の機能はまだ十分に完成しています。Web アプリケーション固有の制限により ASP がそれを実行できない場合は、JSP と PHP がそれを実行できるとは考えないでください。