2017-09-11 13 views
1

.NET Standardと.NET Coreについていくつかのことを読んだことがありますが、一般的には「これは新しい方法であり、ここでは長所と短所があります」と言っているようです。.NET Standardと.NET Coreはどのような問題を解決する予定ですか?

.NET Standardや.NET Coreなど、現状に何が間違っていたかについてのわかりやすい説明は、必ずしも必要ではありません。私がこれらを使用すべきものを本当に判断するためには、それらがなぜ全然存在するのかを知ることが役立ちます。

(a)何か問題 .NET Standardおよび.NET Coreは解決することを意図していますか、(b)解決方法は?

答えて

9

.NET標準は、ライブラリ契約のセットです。各バージョンには以前のバージョンのすべての契約が含まれています。したがって、netstandard1.4のすべてがnetstandard1.5にあります。

.NET Coreは、Windows、Linux、OSX上で動作する.NET Standard(およびいくつかの追加機能)の実装です。

最大の問題は、彼らが解決:

  • のLinux/MacOSXの上、マイクロソフトが提供/サポートツールチェインとランタイムを持っていません。 WindowsやMono上で.NETベースのサーバーコードを実行できるのは単純ではないと言っていました。
  • ポータブルクラスライブラリには、数多くの異なるプロファイルが混在しており、部分的にオーバーラップするAPIサーフェスをターゲットにしています。

特にPCLは、自分自身のようなクラスライブラリの作成者にとっては非常に扱いにくいものでした。ターゲットに一貫したAPIサーフェスを提供するために十分な調整なしに.NETランタイムを異なるデバイスにもたらすための複数の努力があったため、混乱が生じました。

複数のベンダが特定のバージョンの.NET Standardを対象とすることができ、そのバージョン以上を対象とするものは動作するはずです。たとえば、私のNoda Timeライブラリはnetstandard1.3をターゲットにしています。新しい携帯電話ベンダーがまったく新しい種類のアプリケーションで、.NETの全く新しい実装を発表したとしますが、netstandard2.0をサポートしているとします。それでいいのですが、その新しいプラットフォームのユーザーは、Noda Time NuGetパッケージをインストールすることができます(もちろん、実装バグは除いて)、使用できるようになります。プラットフォームが存在することを知る必要はありません。

関連する問題