15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-10-07

前々から疑問に思っていた.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/

15
13
4

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
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?