[解決済み】.NET Standardと.NET Coreの比較
質問
.NET Standardと.NET Coreの違いについて読んだことがありますが、何が違うのか、どのタイミングで.NET Standardライブラリプロジェクトを選択し、どのタイミングで.NET Coreライブラリプロジェクトを選択すればいいのか、本当によくわかりません。
.NET Standardは、使用するプラットフォームに関係なく(そのプラットフォームが選択した.NET Standardバージョンと互換性がある限り)、一連のAPIが常に利用できるようにするためのものだと読みました。私が間違っていなければ、これは、私が.NET Standardのクラスライブラリを作成し、私が選択した.NET Standardバージョンと互換性のある任意のプラットフォーム上でそれを使用することができるということを意味します。
.NET Coreについても、クロスプラットフォームでの利用を想定しているとのことなので、.NET Coreライブラリを選べば、.NET Standardと同様に多くのプラットフォームで利用できるようだ。
結局のところ、違いがわからないんですね。いつ、どれを使えばいいのでしょうか?何が違うのでしょうか?
解決方法は?
私は、あなたの疑問をさらに明らかにし、Jon Skeetの回答を拡張するよう努めます。
.NET 標準は 仕様 そのため、特定の .NET Standard バージョン用にコンパイルされたライブラリは、異なる .NET Standard 実装で使用することができます。
他のコメントで述べたように、.NET Standard と他の .NET Standard 実装 (.NET Core、.NET Framework など) の関係を表す良い例えがあります。
David Fowlerによるこの要旨
: .NET 標準バージョンは
Interfaces
フレームワークはそのインターフェイスを実装したものです。
この関係を理解するのに役立つのが、この簡略化した図です。
ターゲットとするもの
NetCore10
へのアクセスが可能です。
INetStandard15
API
と
NetCore10
特定
のようなAPI(
DotNetHostPolicy
).
もちろん、このライブラリは、異なる
INetStandard15
の実装(
NetCore10
は変換できません。
NetFramework462
または
Mono46
).
にのみアクセスする必要がある場合、その代わりに
INetStandard15
API(そして具体的なフレームワークではなく、その仕様をターゲットとする)あなたのライブラリは
任意の
それを実装しているフレームワーク
(
NetCore10
,
NetFramework462
など)
注 David Fowlerは、オリジナルのアナロジーで、.NET標準バージョンとフレームワークの実装の両方にインターフェイスを使用しています。私は、インターフェースとクラスを使用することで、より直感的で、仕様と具体的な実装の間の関係をよりよく表すことができると考えています。
関連
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] Could not find a part of the path ... binroslyncsc.exe
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み] .NET 4.0 プロジェクトで .NET 2.0 混合モード アセンブリを参照するために必要な「追加設定」は何ですか?
-
[解決済み] EXEを出力する.NET Coreコンソールアプリケーションを構築する
-
[解決済み] .NET Core、.NET Framework、Xamarinの違いとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] ファイル *.mdf をデータベースとしてアタッチできない
-
[解決済み] CLSID {XXXX} を持つコンポーネントの COM クラスファクトリの取得は、次のエラーにより失敗しました: 80040154。
-
[解決済み] ファイル *.mdf をデータベースとして添付できません。
-
[解決済み] ServicePointManagerは、*スキームのプロキシをサポートしていません[closed]。
-
[解決済み] C++/CLIにおけるキャレット('^')の意味は?
-
[解決済み] Html.BeginForm()にCSSクラスを追加する。
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] Powershell v3 Invoke-WebRequest HTTPSエラー
-
[解決済み] 実際のサービスはデータを返すのに、なぜWebServiceはnullを返すのですか?
-
[解決済み] .NETにおけるstructとclassの違いは何ですか?