.NET Frameworkとは何ですか?Javaに対するMicrosoftの答え

.NET Frameworkとは何ですか?.NET定義

 .NETは、デスクトップからモバイルデバイスまで、さまざまなプラットフォームにわたるアプリケーション開発を容易にするためにMicrosoftによって作成された、ソフトウェア開発フレームワークとそれに付随するツール、言語、およびランタイムのエコシステムです。.NET(ドットネットと発音し、.Netと表記されることもあります)は、00年代初頭にリリースされたとき、元々Microsoft独自のWindowsオペレーティングシステムとプラットフォームに関連付けられていましたが、.NETアプリケーションは、Web、MacOS、iOS用に作成できるようになりました。 、Android、Linuxなど。そして.NETは正式な標準であり、オープンソースとして正式に利用可能です。

Microsoftは、.NETを「オブジェクトコードがローカルに保存および実行されるか、ローカルで実行されるがインターネットに分散されるか、リモートで実行されるかにかかわらず、一貫したオブジェクト指向プログラミング環境」と説明しています。.NETは、コードの安全な実行を提供し、インタープリター言語よりも優れたパフォーマンスを提供し、さまざまなアプリで開発者エクスペリエンスの一貫性を保つことを目的としています。 

.NETFrameworkの主要コンポーネント

.NET Frameworkは20年近く前から存在しており、多くの変更が加えられており、コンポーネントはロールアウトされ、その後、その間に非推奨になりました。現時点では、.NETには3つの主要なレイヤーがあります。

  • .NET標準ライブラリには、作成するほぼすべてのアプリケーションのインフラストラクチャを形成するコンポーネントが含まれています。これは、文字列やプリミティブの処理、データベース接続の作成、I / Oの実行などの日常的なタスクの実行に役立つクラスとタイプです。操作など。
  • オプションのアプリモデルには、.NETアプリケーションをデプロイする可能性のあるさまざまなプラットフォームの配管コードが含まれています。Windowsアプリケーション(.NETとMicrosoftの進化し続けるフラッグシップOSとの密接な関係の遺産)およびその他のプラットフォーム用のアプリモデルがいくつかあります。たとえば、Webアプリケーション用のASP.NET、Macおよびさまざまなモデル用です。モバイルプラットフォーム。
  • 共通インフラストラクチャは、実際にコンパイラから言語へのランタイムコンポーネントを、実際に実行するエコシステム全体を有効成分のベース層です。これらは、.NETが提供するものを理解するために重要であるため、次のセクションで詳しく説明します。 

.NETFrameworkのしくみ

.NET Frameworkの主要コンポーネントが連携して、アプリケーションの作成プロセスを容易にします。標準ライブラリとアプリモデルは、基本的なプログラミングタスクを処理するための多くのコードを提供するため、ビルドするすべてのアプリケーションで車輪の再発明を行う必要はありません。そして、共通のインフラストラクチャが、これらのアプリケーションをデプロイするための多くの作業を処理します。

.NET言語のいずれかで記述されたコード(詳細は後ほど説明します)は、共通中間言語 CIL)と呼ばれる中間バイトコード言語にコンパイルされます。 CILコードは人間が読める形式ではありませんが、オペレーティングシステムやプラットフォーム間で移植できます。次に、CILは共通言語ランタイム CLR)によって再度コンパイルされます。 CLRの実装はプラットフォーム固有であり、CILコードを現在のプラットフォームで実行できる機械可読コードにコンパイルします。異なるCLRバージョンは、ジャストインタイムと事前の両方のコンパイルをサポートします。

ローカルのマシン可読コードを作成する過程で、CLRは、ガベージコレクションやスレッド化など、アプリのパフォーマンスにとって重要であるが開発者が対処するのが面倒なことが多い、多くの低レベルのアプリケーション機能も管理します。 CILとCLRは一緒になって、.NET共通言語インフラストラクチャを構成します(CLI、そしてそうです、これらの略語はすべて類似していて、混乱を招くものです)。

これはすべて、Javaプラットフォームを使用している人なら誰でも知っているはずです。これは、同じ基本パラダイムに従うためです。使用可能な大規模なクラスライブラリ、中間バイトコード、およびメモリ管理を自動化するプラットフォーム固有のランタイムはすべて、両方の製品の機能です。.NETは、Javaの最初の全盛期の90年代後半に開発され、当初はJava EnterpriseEditionプラットフォームの競合製品として位置付けられていました。Java言語とC#は、最初で最も著名な.NET言語であり、どちらもCから派生しており、意味的に類似しています。

.NETプログラミング言語とは何ですか?

2000年の.NETの発売時に多くのファンファーレで発表されたC#は、最も有名で広く使用されている.NETプログラミング言語です。これは、.NETイニシアチブの一部としてMicrosoftによって内部的に開発され、.NET標準ライブラリのほとんどのクラスはC#で記述されています。この言語はオブジェクト指向であり、C、C ++、Java、およびJavaScriptの開発者がすばやく学習して使用できるようにCと十分に類似するように設計されています。

Microsoftは現在、.NETFrameworkの記述に使用できる他の2つのプログラミング言語も前景にしています。 1つはF#です。これは、最終的にLISPにルーツを持つML言語ファミリーの一部である関数型プログラミング言語です。もう1つは、クライアントサーバーアプリケーションを開発するためのマイクロソフトの由緒ある、習得しやすいプログラミング言語であるVisualBasicです。しかし、これらは氷山の一角にすぎません。.NETはオープンスタンダードで構成されているため、CILバイトコードにコンパイルされ、CLRで実行できる言語を誰でも作成できます。ウィキペディアには、現在維持されている20を超えるCLI言語プロジェクトのリストがあります。それらのほとんどすべては、PascalからJavaScript、さらにはCOBOLまで、既存の言語の.NETポートを表しています。

この多様な言語が.NETFramework内で共存できるという事実は、プラットフォームの強みの1つです。コードはすべてCILバイトコードにコンパイルされるため、.NETはどの言語で記述してもかまいません。自分の好み、各言語のさまざまな長所と短所、または各言語がアクセスできる.NET Frameworkのさまざまな側面に基づいて言語を選択できます(ここにはいくつかのバリエーションがあります)。前述のように、ほとんどの標準ライブラリはC#で記述されていますが、他のCLI言語で記述されたコードからこれらのクラスにアクセスすることを妨げるものではありません。実際、異なるCLI言語で記述されたコンポーネントは、.NETアプリケーション間で自由に相互運用できます。

.NETFrameworkと.NETCore(およびそれ以降) 

この記事では、プラットフォーム全般を指すために「.NETFramework」を使用していることに気付くでしょう。厳密に言えば、それは正しくありません。Microsoftはそのフレーズを使用して、Windowsのみに焦点を当てた.NETStandardの独自の長年の実装を指します。歴史的に、.NETの他の実装がありました。最も有名なものの1つは、Linux上で.NETアプリケーションを実行できるようにした2004年に最初にリリースされたオープンソース実装であるMonoです。 (このリリースは、Microsoftとオープンソースコミュニティの間にまだかなりの悪循環があった時代であったため、いくつかの論争を引き起こしました。)MonoはXamarinプラットフォームのベースを形成し、.NETの構築を可能にします。 iOS、Android、MacOS、およびLinux用のアプリケーション。 Xamarinは、Monoの創設者の発案により誕生しました。しかし、彼らがプロジェクトを支援するために設立した会社は、最終的にマイクロソフトに買収されました。

Microsoftからの3番目の主要な.NET実装は、2016年にオープンソースとしてリリースされた.NETStandardのクロスプラットフォーム実装である.NETCoreです。.NETCoreはゼロから新たに構築され、蓄積された残骸の一部を取り除きました。 .NET Frameworkでは、すべての機能が不足していましたが。 .NET Standardの複数のバージョン(すべてMicrosoft製)があると、当然のことながら多少混乱します。 2017年、コラムニストのSimon Bissonは、どの実装をどのコンテキストで使用するかという問題に取り組みました。

しかし、それはそれほど遠くない将来にすべて変わるでしょう。2020年11月、Microsoftは3つの.NET実装を.NET5として統合する予定です。.NET5は本質的に次世代の.NETCoreであり、.NETFrameworkとXamarinの多くのコンポーネントが組み込まれています。ただし、多くの.NET FrameworkAPIは.NET5に移行しません。この動きは、開発者の作業を簡素化し、Microsoft自身の努力に集中することを目的としています。

どの.NETFrameworkがありますか?

ただし、この記事の執筆時点では、1年以上経過しています。現在の最新の.NETFrameworkバージョンは4.8です。.NETCoreの現在のバージョンは3.0です。Microsoftには、現在コンピューターにインストールされている.NETFrameworkのバージョンを確認する方法についての説明が記載されたページがあります。

.NETは何に使用されますか? 

だから、それはあなたにどのようにたくさん与えるか。しかし、あなたがまだ疑問に思うかもしれないのは、その理由です。なぜ.NETFrameworkを使用するのですか?Altexsoftブログには、.NETの長所と短所の詳細が記載されています。良い面として、.NETは、信頼性が高くシンプルなキャッシュシステムと成熟したIDEを備えたオブジェクト指向プログラミングモデルを提供し、柔軟な展開と簡単なメンテナンスを可能にします。さらに、.NETのクロスプラットフォームの性質により、コードをさまざまな種類のエンドポイントに移植できます。.NETは、完全にツールを変更せずにスケールアップできるようにしたいエンタープライズ規模のインフラストラクチャでクロスプラットフォームアプリを構築する場合に最も適しています。

.NETFrameworkをダウンロードする

.NETの実験を開始する準備はできましたか?MicrosoftのWebサイトから.NETFramework(Windowsの場合)または.NET Core(Windows、Linux、またはMacOSの場合)をダウンロードします。Dockerイメージも利用できます。Xamarin foriOSおよびAndroidはGitHubにあります。幸せな探検!