PHPまたはASP.NETを使用する場合 [閉まっている]


46

私はPHPとASP.NETを使用してWebアプリケーションの開発に幅広く取り組んできましたが、顧客からよく聞かれる質問の1つは、PHP Webサイトとasp.net Webサイトのどちらに進むかです。

したがって、最初に頭に浮かぶのは、次のような質問に答えることです。

PHPはオープンソースであり、ASP.NETはMicrosoft製です。

通常、そのような何かが言われた後、顧客はそこに空白の外観を持っています。明らかに、一方がオープンソースであり、もう一方がオープンソースではないという事実は、実際にそれらをazeしていません。そして、正当な理由で、私が最初にそれを聞いたとき、それは本当に私に多くを語らないからです。

両方で作業して、ウェブサイトの開発に関してはそれぞれに違いがあることを知っています。

私の質問は、ASP.NETとPHPの違いは何ですか

  1. 特徴
  2. セキュリティ
  3. 拡張性
  4. フレームワーク
  5. 平均開発時間

適切な開発プラットフォームで十分な情報に基づいて選択できるように、顧客と比較できるように、事実のリストを編集しようとしています。


7
両方を使用しましたが、Visual StudioとASP.NETははるかに堅牢だと思います。IDEだけで勝ちます。
マフィンマン

7
PHPは私の最初のWebプログラミング言語だったので、常にソフトスポットがありますが、2年のASP.NET C#の後、戻ることができません... Visual Studio IDEは素晴らしいです!
ダル

はい、PHPに何らかのメインIDEがあればいいのにと思いますが、それはPHPがオープンソースであるという精神そのものを殺してしまうと思います。考慮すべき要素です。
エドワード

2
6.プロジェクトの存続期間中のコストは?
VirtuosiMedia

@VirtuosiMediaは、私が言及しなかったもう1つの重要な要素です。
エドワード

回答:


39

機能セキュリティ拡張性はほぼ同じになります。PHPでできることは、ASP.NETでできます。

フレームワーク -それがに来るときここでも、機能フレームワークの、それは多かれ少なかれ同じになります。ただし、言語自体よりも具体的であるため、次のことを検討する必要があります。

  • 開発者が最も使いやすいもの。 知識=効率
  • プロジェクトごとに、ある言語の1つのフレームワークは、別の言語のフレームワークよりも自然に適合している場合があります。言語自体よりも具体的であるということは、フレームワークが一部のタスクに適しており、他のタスクにはあまり適していないことを意味します。

平均開発時間 — Webホストは見つけやすく、マシンのセットアップも簡単なので、非常に小さなプロジェクトの平均開発時間はPHPの方が良いかもしれません。ただし、優れた開発者がいる限り、または既にどちらかに設定されている限り、より大きなものを使用すると、おそらく洗浄になります。


主な考慮事項は、クライアントが今後どのテクノロジースタックに結び付けたいかということです。 どちらも他方とうまく(簡単に)混ざりません。どちらかに精通している開発者がいる場合があります。

  • クライアントがMicrosoftに接続するというアイデアを好む場合は、ASP.NETを使用してください。一部のクライアントは、MSを使用した将来のサポート、アップグレードなどに関してより快適に過ごすことができます。

  • 彼らがオープンソースとLinuxサーバーのアイデアを好むなら、PHPに行きましょう。これは、Webホスト、フリーソフトウェアなどの転送可能性のために、一部のクライアントに関心を持たせることができます

そして最後に、彼らが気にしない場合は、あなたが最も快適なもので行く。それ以上のものはありません。


8
「あなたがすべき主な考慮事項は、クライアントが今後どのような技術スタックに結び付けたいと思うか」です。
システムダウン

セキュリティから分岐して、各プラットフォームのパフォーマンスを確認するリソースがありませんか?
エドワード

3
@loyalpenguin-それ自体が質問です。「各プラットフォームのパフォーマンス」がどういう意味かはわかりませんが、プラットフォームのセキュリティホール(ほとんどの場合、すぐにパッチが適用されます)について話している場合は、心配する必要はほとんどありません。ほとんどの場合、各言語はコードを書いている開発者と同じくらい「安全」です。
ニコール

良い点です。最後の質問ですが、それよりも安全な質問からどのように抜け出すことができますか?
エドワード

@loyalpenguinが別の質問だと言ったら、質問は「プラットフォームのセキュリティの問題がWebアプリの懸念の主な原因ですか? PHP、ASP.NET、Java、Ruby on Railsなど?」私には、私はそれが実際にそのようにはよく分からないです懸念のための大規模な原因。
ニコール

29

私が答えの根拠とする背景を説明するために、私は6年以上専門的にPHP開発を行い、過去3〜4か月間ASP.NET MVCをいじくり回し、C#を行っています。 PHPプログラミングと同程度のプログラミング。

私にとって、これはPHP対ASP.NETよりもPHP対C#の議論です。

機能/拡張性
ASP.NETがここで成功すると思いますが、これはC#のような言語を使用できるためです。C#は、OOサポートに関してはPHPよりもはるかに優れた言語です。私は静的に型付けされた言語を好む人でもあります(C#4.0で考えても、動的に型付けされた変数を実行できると信じています)。PHPが言語機能に関してC#よりも優れていたのはオプションのパラメーターだけでしたが、それはC#4.0で追加されたもう1つのものです(まだ試していないので、どのように機能するかわかりません)。

セキュリティ
私は、おそらくそれは2つの間の洗浄であると言うでしょう。どちらもセキュリティを支援する機能を備えていると思いますが、最終的にはアプリケーションが安全であることを確認するのがプログラマの仕事です。

フレームワーク
さて、PHPには、ASP.NETよりもはるかに多くのメインストリームフレームワーク(CakePHP、Codeigniter、Symfony、Zend Framework)と他の小さなフレームワークがたくさんあるようです。ASP.NETには、Microsoftの2つの主要なフレームワーク、WebForms(まったくのがらくた)とASP.NET MVC(ASP.NET開発に着手し始めた理由)があります。PHPにはより多くのフレームワークがありますが、ASP.NET MVC 3フレームワークはどのPHPフレームワークよりも優れていることがわかりました。

平均開発時間
PHPの場合、小規模なプロジェクトの開発時間ははるかに優れていると思いますが、プロジェクトのサイズが大きくなるにつれて、C#のスケーラビリティは向上します。

コスト
育てられるべきいくつかはコストです。PHPはこの面で勝ちます。LinuxのMonoでASP.NETを実行できますが、独自の問題があります。

小規模から中規模のプロジェクトを行っている場合やコストが要因である場合は、PHPが優先されます。大規模なプロジェクトを行う場合は、ASP.NET w / C#およびASP.NET MVCを選択します。


3
ただし、Webフォームには利点があります。たとえば、Webアプリを迅速に構築するためのすぐに使用できる数千のコントロールは、Webサイトで顧客を販売する上でプラスになりました。
エドワード

1
@ryanzec WebFormsはがらくたではなく、さまざまな観点からASP.NET MVCと同じくらい優れていることに同意します。商用環境での最初のバージョンのプレビュー2以降、ASP.NET MVCフレームワークを使用しました。また、過去7年以上にわたってWebFormsを使用しています。さらに、ASP.NETのコストについてもう議論することはできません。Microsoftは無料のツールを提供しています。今ではPHPが提供するものよりも優れています。また、Microsoftは無料バージョンのSQL CompactとSQL Serverを提供しています。.NETのサードパーティホスティングは、最近のLinuxに匹敵します。
ニックス

ASP.NETをホストするコストが向上したことに同意しますが、VPS Windowsホスティングよりも安価なVPS LAMPホスティングをはるかに簡単に見つけることができます。
-ryanzec

また、WebFormについて言えば、それはがらくたが厳しいかもしれないと言って、それはただのお茶ではありません。物事を速くすることはできますが、コンポーネントから提供されたもの以外のことをしようとすると、または既存のコンポーネントを大幅に変更すると、指数関数的に難しくなります。また、システムがポストバックなどで機能する全体の方法は、Web開発にはあまりにも不格好に思えます。ASP.NET MVCを好むのは、作成されたものを100%制御できるため、Web開発に適しているため、私の意見でははるかに優れています。
ライアンゼック

8

PHP対ASP.NETは、リンゴとオレンジを比較するようなもので、さまざまなソリューションを対象としています。

PHPは、小規模なスタートアップソリューションに適したフレームワークです。PHPは、Linux、Windowsをあまり多くの要件なしで実行します。Microsoft ASP.NETは、想像以上のあらゆるものを備えた産業用強度フレームワークです。ASP.NETは、すぐに使用できる非常に機能豊富な環境です。ASP.NETは高価であると多くの人が主張しますが、これは数年前にはそうでしたが、もはやそうではありません。まず、ツールは無料(エクスプレスエディション)で、データベースオプションは無料です(SQL CompactまたはSQL Server 2005以降のExpress)。購入ホスティングは非常に安価になったため、問題はどちらが優れているかではなく、何がソリューションに適しているかということです。個人的にはASP.NETを好みますが、それは柔軟性とスケーラビリティが非常に重要な企業環境で働いているため、ソリューションがフレームワークを決定するからです。

1つの非常に重要なことは、どの言語が得意ですか?これが決定の最後の要素になります。

クライアントを納得させることが目標であれば、asp.netの方が適しています。大企業名が言語を支持しているため、クライアントは安心できます。この場合、最適なオプションは(Microsoft)ASP.NETおよび(Oracle)Java JSPです。

編集:機能が豊富-ASP.NETは、WebサイトWebFormとMVCアプローチを構築するための2つの選択肢を提供します。.NETフレームワークの一部なので、WF(ワークフロー)、DLR(動的言語ランタイム)、Parallel Linq、Linq、ルーティング、さまざまな形式のデータ状態管理:HTTPContextアイテム、ViewState、ランタイムキャッシュなどの非常に強力な機能が必要です。出力キャッシュ、InProc、State、およびSQL Serverの3種類のセッション実装。ASP.NETは、メンバーシッププロバイダーやロールプロバイダーなどのさまざまな形式のセキュリティを実装します。PHPをバッグに入れたくありませんが、ASP.NETは別のリーグにあります。


5
私はいつも言い訳として、「Microsoft = Expensive」と聞いていたので、最初にPHPを学びました。しかし、私は本当にそうではないことに同意する必要があります。
エドワード

はい、競技場は今でもかなりです。最近はどの言語を使うべきかを知るのは難しいです。
ニックス

「産業強度フレームワーク」とは正確にはどういう意味ですか?「想像できるものすべて」「すぐに使える豊富な環境」PHPにはない方法で、ASP.NETはこれらのことをどのように行っていますか?あなたがそれを説明するまで、これは単なるマイクロソフトの広告言語です。
ニコール

設計目標-phpはもともと個人のホームページを表し、簡単なサーバーサイドスクリプトを簡単に作成できるように設計されました。asp.netは、エンタープライズレベルのソリューションとしてjava eeと競合するように構築されました。phpは、長年にわたって多くの機能を取り入れてきましたが、この「機能の追加」は、言語の不整合やプラットフォームの癖によって腐敗します。私は頻繁にphpを使用しますが、汎用プログラミングプラットフォームではなく、Web言語になるように設計されました。
bunglestink

6

両方で広範囲に取り組んでいるので、問題とクライアントによって答えが異なることをすでに知っています。非常に一般的な意味で:

  • PHPは、予算内で作業する必要があるプロジェクトに最適です。たとえば、大きなデータベースのライセンス料が発生することはありません。
  • ASP.NETは、Microsoftが提供する種類のサポートと開発者文化を必要とするプロジェクトに最適です。

クライアントのファクトのリストを編集している場合、知っていることに基づいてリストを作成してください。あなたの研究は、あなたの発見にどんな偏りがあっても、あなたの弾丸ポイントを得るために素晴らしいです。


8
.Netが自動的に「大きなデータベースライセンス料」に関連付けられると、それはちょっと気になります。もちろん。
クエンティン・スターリン

3
ExpressバージョンとWebバージョンのSQL Serverのライセンス料が大幅に高いことは言うまでもありません(Expressの場合は無料)。
クエンティン・スターリン

申し訳ありませんが、irkを意図したものではありません。MSはフルスタックとして売れているようで、Expressよりも大きなDBエンジンを想定していました。
フレッドウィルソン

1
個人的には取られていませんが、私は協会が非常に頻繁に行われているのを見ているようです。
クエンティン・スターリン

1
@loyalpenguin:私の経験では、.Netでサポートされていないストレージエンジンを見つけることはめったにありません。これがPHPに当てはまるかどうかについてはコメントできません。
クエンティン・スターリン

1

.netコントロールは、PhPプラットフォームで見つけることができるものよりもはるかに優れています。たとえば、Infragisticsを見てください。LAMPと同等のものは何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.