BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .Net Coreと.Net標準のキーコンセプトの確認

.Net Coreと.Net標準のキーコンセプトの確認

ブックマーク

原文(投稿日:2016/09/27)へのリンク

.Net Core以前のコンパイルターゲットの選択は比較的簡単な操作だった。開発者はいくつもの可能性に直面し、ターゲットの選択は簡単ではなくなった。.Net Coreのビッグピクチャーを理解するためのキーコンセプトは: ターゲットフレームワークモニカーと.Net標準である

ターゲットフレームワークモニカー(TFM:Target Framework Monikers)
ターゲットフレームワークモニカーは、アプリケーションのターゲットにする.NET Coreのframework種類+versionのIDである。モニカーは2つのグループとして見ることができる: クロスプラットフォームターゲット、.NET標準、(.Net 4.6, .Net Core 1.0, Xamarinといった)プラットフォーム実装

.Net標準
.Net標準ライブラリは、.Net Coreの移植性の中心だ。その目的はAPIの標準セットを定義することにある。collections, threading, reflectionなどのAPIは、.Net Core, .Net 4.5, XamarinとMonoなどのプラットフォームで実装されている。これらは基本ビルディングブロック開発者が自身のライブラリやアプリケーションを開発するために使われている。

.Net標準の各バージョンでは、1.0から2.0で特定のライブラリのセットを定義している。以下は標準ライブラリやプラットフォームがお互いにどう関係するかの視覚的な類似である。:

interface INetStandard10
{
    void Primitives();
    void Reflection();
    void Tasks();
    void Collections();
    void Linq();
}

interface INetStandard11 : INetStandard10
{
    void ConcurrentCollections();
    void InteropServices();
}

interface INetFramework45 : INetStandard11
{
    // Platform specific APIs
    void AppDomain();
    void Xml();
    void Drawing();
    void SystemWeb();
    void WPF();
    void WindowsForms();
    void WCF();
}

すべてのAPIのリストとそれらに関連づけられたnetstandardバージョンはCoreFx GitHubリポジトリで提供されている。

フレームワーク/ランタイムモニカー
netstandard以外のモニカーはアプリケーションが実行できる実際のランタイムである。新しいアプリケーションのためのもっとも一般的なモニカーには以下が含まれる:

  • .NET Core - netcoreapp
  • .NET Framework - net
  • Universal Windows Platform - uap
  • Xamarin IOs - xamarinios
  • Mono Android - monoandroid

ターゲットを選択するためのガイドライン要約:

アプリ開発者: あなたが (netcoreapp1.0, uap10.0 , net452 , xamariniosなど)のために書いている、あなたがターゲットにしているプラットフォームTFS。
パッケージ/ライブラリ作成者: ターゲットは可能な限り最低のnetstandard。netstandard以上のサポートするすべてのプラットフォームで実行する。

.Net Core vs netcoreapp1.0
.Net Corenetcoreapp1.0は見た目によらず全く違う意味を持っている。 .Net Coreの指定はバージョン番号なしで、一般的には.NETモジュールの作成と複数プラットフォーム間のバイナリ互換の問題を解決するための全体戦略を記述するために使われる。一方、netcoreapp1.0はより固有の意味を持つ。これはWindows, Mac OS, Linux上で実行するクロスプラットフォームランタイムのモニカーである。簡単に言えば、.Net Coreは状況に応じて完全なクロスプラットフォーム構想とクロスプラットフォームランタイムのどちらの意味も持つ。

依存関係が.Net Coreをサポートしていないことにより、Asp.NetからAsp.Net Coreへの移行の問題が提起される。.Net Frameworkだけをターゲットにしている場合、移行は可能だ。たとえば.Net 4.6をターゲットにしたままAsp.Net Coreを使うことでこれが可能になる。

Rate this Article

Relevance
Style

この記事に星をつける

おすすめ度
スタイル

BT