web-dev-qa-db-ja.com

DNX対DNXコア

VS2015で非常に単純な「キックザタイヤ」ASP.Net MVC(ベータ)プロジェクトを開始しましたが、DNXおよびDNXコアの参照に頭を抱える問題が発生しています。

この例では、DateTime.ToShortDateString()を使用して、DNXコアのインテリセンスを有効にしようとしています。

DNX Core Error

これはDNXコアに実装されておらず、コンパイラディレクティブをラップできるためです。

Conditional Compilation

これは正しいアプローチですか? 2つのプラットフォームの違いはどこにも文書化されていますか?最後に、私がすべてWindowsである場合、すべてのIISすべての時間ショップでDNXコアは何かを提供していますか、それともproject.jsonファイルからそれを削除するだけの最初のタスクにする必要がありますか?

23
Joe

唯一の答えはそれが依存していると思います。

DnxとDnxコア

Dnxは、今日の.NETフレームワーク(およびモノ)の上で実行され、完全な.NET 4.5.2(現在は.NET 4.6)BCLにアクセスできます。基本的に、1.0以降、すべてが.NETに追加されています。

Dnx Coreは、本質的には.NET FrameworkのストリップバージョンであるCoreClrの上で実行されます。欠けているものもあれば、さまざまな理由でCoreClrに渡らないものもあります。今後の予定/予定されていない具体的なリストを知りません。 corefx および coreclr githubプロジェクトをざっと見て、そこにあるものを確認できます。

今、問題は本当に最善のアプローチについてです。いくつかの選択肢があります。

CoreCLRでプロジェクトを実行する予定がない場合は、project.jsonからプロジェクトをまとめて削除できます。

CoreCLRでの実行を計画している場合(理由が何であれ)、いくつかのことができます。

  • 環境に共通のAPIメソッドを使用する

    あなたの場合、theDate.ToString("d")theDate.ToShortDateString()と等しい場合は、なぜ前者を使用しないのですか?

  • 適切なコンパイラディレクティブDNX451などを使用します。

    探しているものの実装がない環境では、意味がある場合は、独自のバージョンをスローまたは実装できます。

20
David Driscoll