MSのエコシステムがよくわからなくていろいろ調べている。調べたのはこんなところ。
- .NET のランタイム環境は複数ある
- Windows では、.NET Framework と .NET core
- macOS では、mono と .NET core
- mono はCLIで扱える (
mono
コマンド) - .NET core はCLIで扱える(
dotnet
コマンド)- というか、それぞれにコンパイラとかツールセットが付いてるんだろうけど、環境によってコマンド名などは一緒なんだろうか?
- Visual Studio では .NET Framework のアプリを作れる
- Visual Studio for Mac は mono のアプリを主に作れる?
- こちらも、他にもいろいろ対応している
- Visual Studio Code は基本的にはテキストエディタ
- ビルドすると
.exe
と.dll
ができるが、Macではmono
やdotnet
コマンドでランタイム経由で実行する - プロジェクトはアセンブリ(
.dll
または.exe
)と同じ粒度。それを、ソリューションでまとめてアプリとしてビルド - アセンブリは言語(
C#
F#
に関係なく使える)- これは強力だと思ってるが、まだ試せてない
- ビルドに必要なファイルが多そうな気がする?
.fsproj
ファイルとか、他にも必要?- Visual Studio や
dotnet
コマンドが隠蔽しててあまりわかってない
- ビルドに関しては、 F# だと FAKE.exe とかある (まだ使い方調べてない)
- F# の基本ライブラリは関数型チックな部品がほとんどなので、基本的には C# と同じ BCL (というか .NET Standard でいいのかな?) を使う・・・気がする
- どんな環境もそうだけど、道から外れるとハマる
なんか間違えてそうな部分もあるなー。そもそも C# と CIL を Java と .class
ファイルだろくらいにしか思ってないのだけど、さきにそっちをきちんと把握すべきなのかもしれない。