前回、Visual Studioでプロジェクトを作成する際に.NETを選択しましたよね。
この.NETとは何なのか。これは知っておくべきなので、補足として解説します。
.NET
.NETとはMicrosoftが開発した共通言語基盤です。
より簡単に言うと、色々な便利機能を集めて、簡単にプログラム実装できるようにした仕組みです。
さらにマルチプラットフォームが採用されてるので、Windowsを問わず動作することができます。
ちなみに.NET自体はC#のためだけに存在するシステムではなく、他にもF#とVisualBasicで利用されます。
と言っても1番利用されてるのはC#、いや実質C#のために存在すると言ってもいいでしょう。
C#における最大のメリットは.NETに実装された数多くのライブラリを利用できることです。
特にWindowsとの親和性は素晴らしく、あらゆることが簡単に実装できます。
実はこの.NETは後述する.NET Frameworkの進化系(直系ではない)です。
この頃はWindowsしか動作しない制約がありましたが、.NETになったことでマルチプラットフォームに対応しました。
マルチプラットフォームって何?
OSを問わず動作することだよ。例えば.NETで作ったアプリはAndroidやiPhoneでも動くんだ。
.NET Frameworkの頃は完全にWindowsでしか動かなかったんだよ。
.NET Framework
.NETが主流になる前の標準です。バージョンは4.8まで存在していて、厳密には違いますが.NETをWindowsに限定した仕組みです。
先に書いた通り.NETに統合されたことで役目を終えました。さらにMicrosoftからも4.8以降は出さないと明言されてます。
基本的に特別な事情が無ければ選ぶ必要はありません。寧ろ機能が限定されるので選ばないほうがいいです。
.NET Core
.NETの昔の呼び方です。ただし、この頃は.NET Frameworkは統合されてませんでした。
.NET Coreは3.1で終了していて、そこに.NET Frameworkが統合され.NET5.0になりました。
つまり.NET自体は.NET Coreの進化系です。そこに.NET Frameworkが統合されてます。
バージョン
.NETや.NET Frameworkにもバージョンの概念があります。当然に最新版のほうが機能が多いです。
仮にゼロから開発するなら常に最新版を使うように心掛けましょう。メリットはあってもデメリットはないです。
どういう時に過去バージョンを使いますか?
すでに開発済みのシステムとか、利用するライブラリが旧バージョンにしか対応してない時とか。
何となくで過去版を選ぶくらいなら、何となくで最新版を使ってください。
ライフサイクル (製品サポート期間)
先程のバージョンですが、実はサポート期間と呼ばれる製品のライフサイクルが存在します。
これはリリースされたバージョンが、いつまで利用できるかを意味します。
ここで誤解しないように伝えると、利用すること = 単に使うって意味なら永久に使えます。
稀にニュースとかで聞きませんかね。Windows〇〇のサポート期間が終了とか。
それと全く同じです。.NETのような共通言語基盤にもサポート期間は存在するのです。
この期間内なら開発元、つまりはMicrosoftが何らかの問題があっても修正や改善の対応をしてくれます。
では、それを無視して利用を続けると何が起きるのでしょうか。結論は不明です。
致命的な問題に直面するかもしれないし、何も起きないかもしれません。
何も起きないなら使ってもいいの?
絶対に駄目です。一般的にサポート期間とはセキュリティ対策の有効期間を意味します。
はっきり言って機能が増えることは稀。大抵が不具合の修正やセキュリティ強化です。
つまり、サポート期間が終わると不具合も修正されないってこと?
うん。Microsoftも予め明記してるから修正に付き合う必要がないんだ。
そもそもサポート期間が終了する前に新しいバージョンがリリースされてるし。
LTSとSTS
.NETにはサポート期間が2種類あります。それがLTS(Long Term Support)とSTS(Standard Term Support)です。
両方とも英語のままの意味で、LTSが長期サポートでSTSが標準期間サポートです。
つまりLTSのほうが長く、具体的にはLTSが3年(36ヶ月)、STSが18ヶ月になります。
このLTSとSTSですが、どちらが適用されるかはバージョンごとにリリース時点で確定してます。
.NET 5.0 | STS |
.NET 6.0 | LTS |
.NET 7.0 | STS |
.NET 8.0 | LTS |
このように今後もMicrosoftの気が変わらなければ交互にリリースされます。
基本的にはLTSを選んだほうがいいのかな。
そうだね。学習って意味ならどっちでも良いけど、業務利用なら最新のLTS一択かな。
あとがき
プログラミングするほど.NETの素晴らしさが分かります。そしてC#で良かったと思うことも多々ありますね。
開発はほぼWindowsだし、動作環境がマルチプラットフォーム化してるなら、全部C#と.NETで良くねって思う。
◆ C#に関する学習コンテンツ
この記事は参考になりましたか?
こんにちは
いつも見させていただいております。
.NET、.NET framework, .NET Coreの関係性が整理されていて、わかりやすかったです。
1つ思ったのが、.NET はサポートが3年間のバージョン(LTS) と18ヶ月のバージョン (STS) があることです(URLを貼ったつもりですが、うまく見れるかな)。
都度新しいバージョンに更新すればよいとはいえ、より長くと思ったら、LTSを選んだ方が良いのかなと思います。
実は、Takemiさんと似た感じで最近、.NETとASP.NETについてまとめてみました。
.NET や ASP.NET の用語整理を目的としてまとめたので、もしよかったら見てみてください (https://abeginnerprogrammer.com/net%e3%81%a3%e3%81%a6%e3%81%aa%e3%82%93%e3%81%a0%e3%82%8d%e3%81%86/)
コメントありがとうございます。
確かにLTSとSTSの理解は大切ですね。普通に忘れていました。後に記事に追記させて頂きます。
学習利用ならその時点の最新版を選び、実際の開発であれば最新のLTS対応を選ぶのが最善と考えます。
記事見させて頂きました。時系列の説明が書かれていて分かりやすかったです。
ASP.NETなんかは仕事で触れることが少なかったので勉強になります。