|
何がそうなのか。 ネット .Net自体は共通言語基盤(CLI)という独立した公開言語開発プラットフォームに基づいて実装されていますが、2006年に仕様化されて以来、Windows自体のみ(モノを除く)のみがサポートしており、開発言語のC#やVBも含まれます。 Netなど、CLI実装、.Netフレームワークなどがあります。 その中核には、Windows CLIに基づく仮想実行システム(VES)の実装があります。 Javaの仮想マシンに相当するはずです。 C#の開発。 なぜNet Appはクロスプラットフォームにできないのでしょうか? 共通言語インフラストラクチャ(CLI)自体はクロスプラットフォーム向けに設計されています。 しかし、最初のうちはMicrosoftはWindows独占の対象外であり、他のOSをベースにVESを実装するつもりもなかったので、C#開発者は基本的にWindows開発者のようなものです。 C#で開発されたアプリケーションシステムは基本的にWindowsプラットフォームに基づいています。 .Net Coreとは何か、またクロスプラットフォームでどのように動作するのか? 実際、CLIがLinux、主にそのVESに基づいて実装されている限り、C#で開発されたアプリはLinux上で動作します。 もちろん、過去のせいで。 Net FrameworkはWPFやWindows FormsなどWindows特有の多くのUIフレームワークを提供しており、これらのフレームワークに基づくアプリは理論上Linux上でしか動作しませんが、実際のサポートコストは比較的高く、現実的とは言えないかもしれません。 こうして.Net Coreが誕生しました。 Net Coreは.Netフレームワークを切り詰め(前述のUI関連フレームワークを除外)、JREに似たCLRを実装し、複数のOS向けにVESを同時に実装することでクロスプラットフォームを実現したものです。 なぜMicrosoftは.を必要としているのでしょうか。 ネットコア マイクロソフトがこれをやる理由は、ある程度強制的であったり、歴史の流れに沿っている。 現在の「クラウド」環境において、Azureのおかげでマイクロソフトは弱体化したWindows事業からクラウドサービスプロバイダーへとスムーズに変貌を遂げました。 PaaSは提供するクラウドサービスモデルの一つとして、Windowsだけでなく顧客が必要とするOSを提供できなければなりません。 もちろん、Azure上の異なるオペレーティングシステムが、提供する開発技術を使って開発されたアプリケーションを動かすことを望んでいます。 .Net Coreは明るい未来になるのでしょうか? しかし、仮想実行環境は開発されたアプリケーションのクロスプラットフォーム運用を可能にしており、JAVAは創設以来それを行っています。 そして今日、多くの言語初心者が美しさを競い合い、Oracleに買収されたJAVAはどんどん老朽化しています... C#はクロスプラットフォームを実現するために本当に頼りになります。 NetCoreは2つ目のスプリングで光る? 参考 CLI仕様 http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf
|