質問

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

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

役に立ちましたか?

解決

.NET は Windows プラットフォームのみを対象としています。Java は、2 つのうちの唯一、プラットフォームに依存しないものです。

これらの言語は、次のようなさまざまな理由からサーバー側で強力な存在感を示しています。

  1. 問題のサブタスクを処理する多数のライブラリ
  2. どちらのフレームワークもセキュリティを念頭に置いて構築されています
  3. これらはマネージド言語であるため、ソフトウェアに対する典型的な攻撃を実行するのははるかに困難です。
  4. これらは成熟したテクノロジーとみなされており、かなり乱用され、試験に耐えてきました。
  5. 彼らは業界のサポートを受けています。
  6. どちらもオブジェクト指向です
    1. これは、再利用可能なコンポーネントまたはサードパーティのコンポーネントを使用して Web サイトを開発できることを意味します。
  7. どちらの言語でも、非管理コンポーネントの「サンドボックス化」が可能です (Java:JNI .NET:Boxing) [従来のコンポーネントを含めることができます]

他のヒント

実際、これらはほぼまったく逆の理由で選ばれています。

  • Java のプラットフォーム非依存性は、1 つのプラットフォームに縛られないことを意味し、最もコスト効率の高いプラットフォームや最も信頼性の高いプラットフォームをより柔軟に選択できます。また、古いプラットフォームがサポートされなくなったため、サーバー プラットフォームを変更する必要がある場合でも、アプリを実行し続けることができます。
  • .NET が選ばれるのは、OS に結び付けるのであれば Microsoft が最大のプレーヤーであり、そのためリスクが最も少ない選択肢だからです。あるいは単に企業が Exchange のようなゲートウェイ ドラッグによって「オール Microsoft ショップ」の罠に陥ったからでもあります。そして、そこに到達したら、.NET は Microsoft がユーザーに使用してもらいたいものであり、現在のすべてのツールをサポートし、統合します。

Javaと.NETの両方が、サーバー側のために独自の利点を持っています。

たとえば、.NETであなたが作業しているアプリケーションの一部のための最良の言語を選択して自由であり、これらの.NET言語のすべてが協力しています。

だから、あなたは、データ・マイニング機能のためのF#を使用したい場合があり、データベースで動作するC#のアンマネージC ++(薄いマネージドC ++層を通過する)は、高速ネットワーク接続、またはシステムコールのために、とのホストがあります他の言語。 .NETは現在、独立した以下のプラットフォームですが、言語に依存します。

Javaはあなたは、顧客が使用しているOSは何気にしないので、あなたはソリューションを販売している場合は有利であるいくつかの異なるOSでは、上で使用することができます。

今JVMは、Javaアプリケーションを設計するために、今より面白くなってきたように、ClojureのとScalaは、それの外で実行して、以下の言語に依存になりつつあります。

彼らは、基礎となるシステムを仮想化するので、彼らは、サーバーオペレーティングシステムの異なる種類の上で実行することができます。

そして、彼らは汎用のアプリケーション開発システムになるように設計されているので、彼らは、プロセッサを使って何上で実行されることを意図している。

1は、両方のJavaと.NET JITがダウンしてネイティブコードへのことを覚えておいて、抽象化レイヤのオーバーヘッドを受け入れるだろう、なぜあなたは理解していないので、あなたが求めている場合。

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

Web アプリケーションは、単に趣味で HTML をレンダリングしているのではなく、 物事をする サーバー側では、データベースとの通信、MOM へのメッセージの送信などが含まれる場合があります。

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

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

プラットフォームの独立性は、私は、Javaを言うために努力するのは素晴らしいですが 多数のフレームワークがあるようと.NETは一般的に使用されています それはそんなに簡単にエンタープライズレベルの開発を行うことが利用可能 アプリケーション。これは、あなたが持っているのjava、と特にそうです そのほとんどが、高品質な技術の信じられないほどの選択 あなたができるように、ほとんどのプロジェクトのニーズを満たすのに十分な柔軟性 お使いのアプリケーションの機能に焦点を当てています。

また、難戦争、Javaの起動と.NET持ってする意図なし 優れた開発ツールのサポートと開発が迅速/容易です あなたの平均的なプログラマのためでます。

初期の Web 時代では、主に Perl が使用されていましたが、Perl を好まない、またはよりパフォーマンスを求める勇敢な人々が C++ を使用することもありました。その後、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 は Sun に対抗するため、また複数言語のサポートを容易にするために VM を使用したと思います。Google の Go 言語が普及するかどうかは興味深いところです。安全性とパワーでは Java や C# を上回るかもしれませんが、VM はありません。

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

私はこの方法であなたの質問を理解する:クライアントがサーバーにアクセスするためにHTTPを使用しているため、セットアップに複数の他の快適な方法のサーバがある場合は、なぜJavaや.NETを選択し、

は、サーバーのOSやフレームワークは、一般的にクライアントに関係ないことを右です。

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

あなたはいくつかの素晴らしいグラフとグラフ作成ソリューション(Telerik、ダンダス、...または何でも - 広告を意味するものではないが - )を統合したい場合は、サードパーティからのあなたも、それらを実行するために互換性のあるサーバーインフラストラクチャを選択する必要があります<。 / P>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top