「.NET Core」と「Xamarin」の住み分け
すでにお気付きかもしれないが、.NET Coreを利用するメリットのひとつ目は、用途的に「Xamarin」と被っている。.NET Coreを最初に発表した時点ではXamarinはまだMicrosoft傘下ではなかったため、シナリオが重複していても問題なかった。だがXamarin買収を経て、両者の方向性の違いは明確になった。
具体的には、異なるデバイス(プラットフォーム)への対応を前提としたアプリ開発の場合、開発手段としては「Xamarin」を用いる。開発した.NETアプリケーションを特定用途でより高速実行したい、あるいはASP.NETのようなサーバ側のアプリケーションとして高速実行に期待したい場合には「.NET Core」といった形に、「水平展開」と「高速実行」で両者を使い分ける形になる。
次の図を見ると分かりやすいが、UWPを除くWindows 10は「.NET Framework」、UWPやASP.NETには「.NET Core」、スマートデバイスを中心としたクロスプラットフォーム開発には「Xamarin」といった具合だ。
ただ、その歴史的経緯もあり、3つのアプリケーション開発・実行環境ではAPIを含むライブラリの完全互換は実現されておらず、将来的に.NET標準のライブラリとして共通化と体系化を行なうことが表明されている。Xamarinが買収され、.NET Coreの利用が推進される中、Microsoftが提供する開発・実行環境として.NETが今後も継続していくのはほぼ間違いなく、このような形で用途に応じた使い分けがなされていくのだと予想する。