BT

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

| 作者: Pierre-Luc Maheu フォローする 3 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2016年10月3日. 推定読書時間: 4 分 |

原文(投稿日: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

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT