「ASP.NET 5クラスライブラリ」(vNext)C#プロジェクトがASP.NETとどう関係するのかを理解しようとしています。通常のC#「クラスライブラリ」プロジェクトではなく、このテンプレートを使用してプロジェクトを作成する理由は何ですか?
.csprojファイルなどではなく、project.jsonファイルなどの新機能が気に入っていますが、ASP.NETまたはIISなど。これは単なるビジネスロジックレイヤーのプロジェクトです。新しいWebApi ASP.NET Webサイトは最終的にこのプロジェクトを参照しますが、現時点では関係ありません。
それは単にひどい名前ですか? 「vNextクラスライブラリ」と呼ばれるだけで、Webアプリのようなアイコンを使用しないでください。
ASP.NET 5クラスライブラリプロジェクト(。kproj)には、クラスライブラリプロジェクト(。csproj)よりも多くの利点があります。
aspnet50
、aspnetcore50
、net45
、およびその他のさまざまなポータブルクラスライブラリのバリエーションなど、複数のターゲットへのプロジェクトのクロスコンパイルを簡単にサポートします。これには、どのAPIがどのターゲットで利用可能かを通知するIntellisenseの豊富なVisual Studioサポートが含まれます。* .csprojプロジェクトを* .kprojプロジェクトから参照できます(これはVisual Studio 2015の新しいプレビューで非常に簡単になりました)が、いくつかの手動手順で常に可能でした。
名前の通り、それはまもなく対処される歴史の遺物です。新しいプロジェクトタイプは、ASP.NET 5アプリケーションをはるかに超えて便利です。 Visual Studioの今後のプレビューで新しい名前が表示される予定です。
Visual Studio 2015 RC のリリースにより、更新されたプロジェクトテンプレート名を確認できます。
これらは、project.json
ファイルと.NET実行環境(DNX)を使用して、プロジェクトをビルド、実行、およびパッケージ化(NuGetパッケージに)します。
これらのプロジェクトテンプレートは、[Web]ノードの下の[新しいプロジェクト]ダイアログに引き続き表示されますが、メインの[Visual C#]ノードにも表示されます。
これは興味深い観察です。現在のテンプレートは、ASP.NET 5ランタイムと互換性のあるクラスライブラリを生成します。通常のC#クラスライブラリからは取得できません。
この設計質問を追跡するために次の問題を提出しました- https://github.com/aspnet/Home/issues/281
私が理解していることから、ASP.NET 5クラスライブラリプロジェクトの最終製品は(.dllアセンブリではなく)NuGetパッケージであることがわかります。
Visual Studio 2015でプロジェクトを右クリックし、[発行...]オプションを選択すると、NuGetパッケージを生成できます。または、コマンドラインで「KPM pack」を使用できます。
また、ASP.NET 5 Coreランタイムを使用して、ライブラリがクロスプラットフォームで実行できるようにします。