Help us understand the problem. What is going on with this article?

.NET XXXの違いについて、ざっくりまとめてみた。

More than 1 year has passed since last update.

前々から疑問に思っていた.NET XXXの違いについて調べてみました。
すでに、まとめは色々な方がされていますが、それでも理解できなかったことがあったので、
それを踏まえて、ざっくりとまとめます。

関係性

DotNet.png

.NET Framework:

Windows環境向けのフレームワーク。

.NET Core:

様々なOS上(Windows, Linux, macOS)で動作するアプリケーション開発用のフレームワーク。
主にサーバーアプリ/コンソールアプリとして使われる。

Xamarin

様々なOS上(Linux, macOS, Andoriod, iOS)で動作するアプリケーション開発用のフレームワーク。
モバイル環境上にも対応している。

.NET Standard

仕様。各.NET実装(.NET Framework, .NET Core, Xamarin)での共通で使用できるAPIをまとめたもの。
各.NET実装(.NET Framework/.NET Core/Xamarin)のベースライブラリ(Base Class Library/Core Library/Mono Class Library)の共通部分をまとめたもの。
.NET Standardプロジェクトで作成したDLLは、どの.NET実装環境下でも使用できる。

.NET Core と Xamarin との違い

どちらもクロスプラットフォーム開発を目的とした.NET実装。
違いとして、守備範囲(対応するOS)が異なり、Xamarinのほうが守備範囲が広い。
また、以下の文章を見ると、処理性能では.NET Coreに軍配が上がるよう。(本当に?)

体的には、異なるデバイス(プラットフォーム)への対応を前提としたアプリ開発の場合、
開発手段としては 「Xamarin」を用いる。開発した.NETアプリケーションを特定用途でより高速実行したい、
あるいはASP.NETのようなサーバ側のアプリケーションとして高速実行に期待したい場合には「.NET Core」といった形に、「水平展開」と「高速実行」で両者を使い分ける形になる。
http://ascii.jp/elem/000/001/156/1156721/index-3.html

また、Visual Studioのデフォルトプロジェクトテンプレートだけを見ると、
.NET Core=サーバーApp/コンソール向け、Xamarin=モバイル/macOS向け ともとれます。
(そう見せているのは、Microsoftの戦略なのだろうか。)

理解不足な点

上記引用文中の、

開発した.NETアプリケーションを特定用途でより高速実行したい、

について正しい理解が得れていません。。。そんなに性能面で異なるのか疑問です。
実際に、それぞれの環境で作成してみるとまた理解が深まるのかもしれません。

参考資料
-https://msdn.microsoft.com/ja-jp/magazine/mt842506.aspx
-http://www.atmarkit.co.jp/ait/articles/1707/28/news033.html
-https://www.infoq.com/jp/news/2017/10/dotnet-core-standard-difference
-http://ascii.jp/elem/000/001/156/1156721/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした