2

Javaと.NETは、プラットフォームへの依存を取り除くことを目的とした2つの言語です。これは、コードとOSの間に仮想マシン/フレームワークを追加することで実現されます。

では、すべてのWebサイトはブラウザー経由でアクセス可能であり、プラットフォームに依存しないため、サーバー側で使用する意味は何ですか?それらを使用する特別な理由はありますか?

4

9 に答える 9

9

.NETは、Windowsプラットフォームのみを対象としています。Javaは、プラットフォームに依存しないことを目的とした2つのうちの1つだけです。

これらの言語は、多くの理由でサーバー側に強力に存在します。

  1. 問題のサブタスクを処理する多くのライブラリ
  2. どちらのフレームワークもセキュリティを念頭に置いて構築されています
  3. それらは管理された言語であり、ソフトウェアに対する典型的な攻撃を阻止することははるかに困難です。
  4. それらは成熟した技術であると考えられており、かなりの悪用にさらされ、試練に耐えてきました。
  5. 彼らは業界のサポートを受けています。
  6. どちらもオブジェクト指向です
    1. これは、再利用可能なコンポーネントまたはサードパーティのコンポーネントを使用してWebサイトを開発する機能があることを意味します。
  7. どちらの言語でも、管理されていないコンポーネントの「サンドボックス化」が可能です(Java:JNI .NET:ボクシング)[レガシーコンポーネントを含めることができます]
于 2009-11-02T06:15:45.707 に答える
7

実際には、ほぼ完全に反対の理由で選択されています。

  • Java のプラットフォーム非依存性は、1 つのプラットフォームに縛られないことを意味し、したがって、最も費用対効果の高いプラットフォームまたは最も信頼できるプラットフォームをより柔軟に選択できます。また、古いプラットフォームはサポートされなくなったため、サーバー プラットフォームを変更する必要がある場合でも、アプリを実行し続けることができます。
  • .NET が選択されたのは、OS に自分自身を結び付ける場合、Microsoft が最大のプレーヤーであり、したがって最もリスクの低いオプションであるためです。または単に、企業が Exchange のようなゲートウェイ ドラッグを介して「オール Microsoft ショップ」の罠に陥ったためです。.NET は、Microsoft がユーザーに使用してほしいものであり、現在のすべてのツールをサポートおよび統合します。
于 2009-11-02T06:44:45.090 に答える
3

Java と .NET の両方に、サーバー側に独自の利点があります。

たとえば、.NET では、作業しているアプリケーションの部分に最適な言語を自由に選択でき、これらの .NET 言語はすべて連携して動作します。

そのため、データ マイニング機能には F# を使用し、データベースを操作するには C# を使用し、ネットワーク接続やシステム コールの高速化にはアンマネージド C++ (シン マネージド C++ レイヤーを使用) を使用する必要があり、その他にも多数の言語があります。.NET は現在、プラットフォームにあまり依存していませんが、言語には依存していません。

Java は複数の異なる OS で使用できます。これは、顧客が使用している OS を気にしないため、ソリューションを販売する場合に有利です。

現在、Clojure と Scala が JVM から離れて実行されているため、JVM は言語への依存度が低くなってきているため、Java はアプリケーションの設計においてより興味深いものになっています。

于 2009-11-02T06:33:54.677 に答える
2

基盤となるシステムを仮想化するため、さまざまな種類のサーバーオペレーティングシステムで実行できます。

また、汎用アプリケーション開発システムとして設計されているため、プロセッサを搭載したあらゆるもので実行することを目的としています。

抽象化レイヤーのオーバーヘッドを受け入れる理由がわからないために質問する場合は、Javaと.NETJITの両方がネイティブコードに至るまでのことを覚えておいてください。

于 2009-11-02T06:18:32.067 に答える
2

では、すべての Web サイトはブラウザー経由でアクセスでき、それはプラットフォームに依存しないため、サーバー側でそれを使用する意味は何ですか?

Web アプリケーションは楽しみのために HTML をレンダリングするだけではなく、サーバー側で、データベースとの通信や MOM へのメッセージの送信などを行うことがあります

それらを使用する特別な理由はありますか?

これは部分的な回答ですが、ここでは少なくとも Java のケースを取り上げたいと思いました。Java は、安全で、堅牢で、ガベージ コレクションが行われ、オブジェクト指向で、高性能で、マルチスレッドで、解釈され、アーキテクチャに中立で、クロスプラットフォームで、流行語に準拠したプログラミング言語であると主張することから始めることもできますが、これは本当にあなたの質問に答えません。実際、サーバー側での Java の重要な点は、標準化されたエンタープライズ API (別名 J2EE) の恩恵を受ける IMO です。システムとソフトウェア ベンダーの独立性 (これは契約交渉にとって大きな利点です)。言い換えれば、Java は、ほとんどの場合、大規模な組織に当てはまり、閉じ込められない異種環境に最適です。

于 2009-11-03T01:53:29.440 に答える
1

Web の初期の頃、Perl を好まなかったり、C++ を使用してより高いパフォーマンスを求めたりしたのは、大部分が Perl であり、時には勇敢な人々でした。その後、Sun は Java 用の JDBC とサーブレット、およびその他の J2EE 部品を開発し、Java は Perl よりもパフォーマンスが高く、C++ よりも簡単になりました。J2EE とともに、大企業から多くのアプリケーション サーバー製品が登場し、現在では大規模な Java Web/アプリケーション サーバー コミュニティが形成されています。

その後、Sun との J++/Java 戦争に敗れた後、Microsoft が登場し、.NET を使用して同様の Web アプリ インフラストラクチャを作成しました。.NET を使用すると、選択肢が少なくなり、メリットとデメリットのすべてがもたらされます。

したがって、答えはまともなパフォーマンス、安全性、エンタープライズ機能、および主要な企業の支援の組み合わせだと思います. ほとんどの人にとって、C++ は難しすぎて危険です。Perl、PHP、Python、および Ruby にはファンがいますが、企業の支援はありません。Java/.NET が仮想マシン上にあるという事実は、サーバー側にとって重要ではないと思います。Java は、もともとクライアント用に VM を使用していました。Sun は、高速なサーバー VM を作成するために懸命に努力しなければなりませんでした。Microsoft は VM を使用して Sun と競合し、複数言語のサポートを容易にしたと思います。安全性とパワーでは Java と C# を凌駕するかもしれませんが、VM はありません。

于 2009-11-30T22:28:43.857 に答える
1

プラットフォームの独立性は努力するのに最適ですが、Java と .net が一般的に使用されていると言えます。利用可能なフレームワークが多数あるため、エンタープライズ レベルのアプリケーションの開発が非常に簡単になります。これは特に Java の場合に当てはまります。Java では、ほとんどのプロジェクトのニーズを満たすのに十分な柔軟性を備えた高品質のテクノロジを驚くほど豊富に選択できるため、アプリケーションの機能に集中することができます。

また、フレーム戦争を開始する意図がなくても、Java と .net は開発ツールのサポートが優れており、平均的なプログラマーにとって開発がより簡単/迅速です。

于 2009-11-02T08:43:34.300 に答える
0

ブラウザは、これらのフレームワークがアクセスできるサーバーリソース(データベース、ファイルなど)にアクセスできません。javascriptだけの(そして意味のあることをする)アプリケーションを持つことはできませんでした

于 2009-11-02T06:17:56.643 に答える
0

私はあなたの質問を次のように理解しています。クライアントは HTTP を使用してサーバーにアクセスするため、サーバーをセットアップするためのより快適な方法が他にあるのに、なぜ Java または .NET を選択するのですか?

サーバーの OS やフレームワークは通常、クライアントにとって重要ではないというのは正しいことです。

ただし、クライアント側には、サーバー上の対応する相手と通信する必要があるアプレットまたはコードを含めることもできます。次に、異なるクライアント OS を管理する必要がないため、JSP または .NET がより興味深いものになります。その後、ウェブサイトは簡単に拡張可能になります。

サードパーティ製の優れたグラフ作成およびチャート作成ソリューション (Telerik、Dundas など - 広告目的ではない) を統合する場合は、それらを実行するための互換性のあるサーバー インフラストラクチャも選択する必要があります。

于 2009-11-02T06:36:45.387 に答える