1

ASP.NET プロジェクト テンプレートに基づいて Visual Studio 2015 で新しいプロジェクトを作成すると、project.json で次のフレームワーク要素を取得します。

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

クラス ライブラリをソリューションに追加すると、frameworks 要素は次のようになります。

"frameworks": {
    "dotnet": { }
  }

これらのさまざまなフレームワークとは何ですか?それらすべてが必要ですか? たとえば、このライブラリで SQL サーバーのデータにアクセスする場合、dnx451 を使用できますか、それとも dotnet を使用する必要がありますか?

ASP.NET 5 の以前のバージョンでは、dnxcore50 を取り除くことが推奨されていました。これはまだですか?たとえば、dnxcore50 ではなく dnx451 を使用するのはなぜですか?

また、「dotnet」フレームワークが参照している .NET のバージョンは何ですか?

4

1 に答える 1

2

Visual Studio は、セクションにリストされているすべてのフレームワークに対してすべてのコードをクロスコンパイルしますframeworks。そう:

dnx451などdnx46。これは完全な .NET Framework であり、起動時DNXに .NET Framework 4.5.1 または 4.6 などのインストール済みバージョンをブートストラップします。

dnxcore50は、CoreCLR ランタイムと CoreFX ライブラリを使用する新しい .NET Core です。これは、移植可能でクロス プラットフォームになるように設計された .NET Framework のサブセットである Microsoft のオープン ソース プロジェクトです。それに対してコンパイルせず、クロスプラットフォーム開発や .NET Core が提供するその他の利点を気にしない場合は、それを取り除くことができます。一方、.NET Core が WCF (サーバー側)、WPF、リフレクション API (サブセットのみ)、アプリケーション ドメインなどの必要な機能を提供しない場合は、それを取り除く必要があります。ADO.NET SqlClientまたはEntity Framework 7を介して、SQL サーバーからデータにアクセスできます。

dotnet正直なところ、それが何であるかはわかりません-現在のドキュメントでは、そのようなフレームワークの存在について言及していないか、ここで使用できる有効な文字列のリストを提供していますか. Visual Studio のツールは、フレームワークの解析において非常に寛大なようです (例: '451'== 'net451')。少なくとも私にとっては.NET 4.0用にコンパイルされます...ぼんやり

Scott Allen は、 どのように dnx フレーバーを選択するかについてのブログ投稿を行っています。ここには、適切な .NET を選択する方法に関するドキュメント ページもあります (私の意見では非常に大ざっぱです)。

.NET Core が必要なパッケージを提供しているかどうかを確認するために、 corefxソースを調べることに興味があるかもしれません。

于 2015-10-14T15:03:09.793 に答える