1
2

.NETって何?

Posted at

.NETって何?

C#での開発を始めようとすると、まず、ん?となるのが「.NET」

開発を始めるために必要な機能をまとめて提供するプラットフォームなので避けては通れない

しかし、何を使用したらよいのか、そもそも「.NET」の定義がよくわからない

という人(私)向けの記事

ややこしくなっている原因

「.NET」という言葉が、なにを示しているかあいまいになっている

公式ドキュメントでさえも「.NET」に2つの意味があると明言している

.NET には 2 つの意味があり、目的の意味はコンテキストによって異なります。

  • .NET は、 .NET Standard およびすべての .NET 実装 ワークロードの総称として使用できます。
  • .NET は、.NET Core と呼ばばれ、以前は .NET のクロスプラットフォームで高パフォーマンスのオープンソース実装を指す頻度が高くなります。 また、 .NET 5 (および .NET Core) 以降のバージョン または .NET 5 以降のとも呼ばれます。

Microsoft公式ドキュメントより

.NETとは?

Q.つまるところ、.NETは何を示している?

A..NETとは、以下の3つを備えた開発プラットフォーム

  • CLR(共通言語ランタイム)

    人間の書いたコードを特定のOSに依存しない共通言語(中間言語)に変換する機能

  • BCL(基本クラスライブラリ)

    アプリケーション開発で頻繁に使用される機能をまとめたライブラリ

  • FW(フレームワーク)

    Webアプリケーションや、Windowsアプリケーションを作成するためのフレームワーク

3つの.NET○○

「.NET」とつく開発プラットフォームは、現行のもので3つある

  • .NET Framework
  • .NET Core
  • .NET

.NETの進化

ざっくりと

  1. .NET Framework

    Windowsの環境で動く!

    でも、時代の流れ的にクロスプラットフォーム対応しないとまずくない?

  2. .NET Core

    クロスプラットフォーム化できた!

    でも、WebアプリやCUIツールがメインでクロスプラットフォーム化しちゃった…

    GUIもクロスプラットフォーム化しないとな…

  3. .NET

    XamarinというGUIもマルチプラットフォーム化できるようになるツールを買収

    統合しちゃえ!

    ついでに、.NET Frameworkの内容も統合しちゃえ!

という順番で進化している

.NET○○の違い

進化の過程をみて分かる通り、それぞれには大きな違いがある

  • 対応OS

    .NET Framework:Windowsのみの対応

    .NET Core:クロスプラットフォーム(CUIメイン)

    .NET:クロスプラットフォーム(CUI+GUI)

  • コンテナをサポートするか否か

    .NET Framework:基本的にNG。無理やりコンテナ化できるが非効率的

    .NET Core:コンテナ化OK

    .NET:コンテナ化推奨

結局何を使用すればよい?

結論から言うと、.NET 6以上を使用すれば間違いない

この記事を執筆している2024/07/29現在、.NET 9がリリースされている

.NET xはxが偶数だとLTS(LongTermService:長期サポート)なので、.NET 6もしくは.NET 8を使用すればよい

その中で、ネット上に情報が多く存在する.NET 6を使用すれば問題なく開発が進められると思われる

最後に

.NET 6のコンテナを利用したWebAPIの立て方を↓の記事で紹介しているので、そちらもぜひ読んでほしいです!
https://qiita.com/unwissenheit/items/e06fe00f5557cbc8e886
勉強中の身ですので、解釈の誤りなどがあるかもしれません。
その際は、コメントで指摘していただけると幸いです<(_ _)>

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2