ASP.NET 5クラスライブラリプロジェクトを作成する理由


98

"ASP.NET 5クラスライブラリ"(vNext)C#プロジェクトがASP.NETとどう関係するかを理解しようとしています。通常のC# "クラスライブラリ"プロジェクトだけでなく、このテンプレートを使用してプロジェクトを作成する理由は何ですか。

.csprojファイルではなくproject.jsonファイルなどの新機能が好きですが、プロジェクトがASP.NETやIISなどと関係がない場合に「ASP.NET」クラスライブラリを作成するのは適切ではないようです。 。これは、ビジネスロジック層の単なるプロジェクトです。新しいWebApi ASP.NET Webサイトは最終的にこのプロジェクトを参照しますが、現時点では関係ありません。

ひどい名前が付けられているだけですか?それは単に「vNextクラスライブラリ」と呼ばれ、Webアプリのように見えるアイコンを使用しないでください。


タイプ古き良きクラスライブラリの既存のプロジェクトを追加することが可能であると彼らが考えるときの見積もりはありますか?これは、MVC 5からASP.NET 5 MVC 6への移行を回避しようと私が考えた最後の考えです。
radbyx 2016

「ASP.NET 5クラスライブラリ」はASP .NET Coreとは異なるフレームワークを持っていますが、コアには独自のコアクラスライブラリがあります。代わりにそれを使用してください。
Jaider

回答:


100

ASP.NET 5クラスライブラリプロジェクトを作成する理由

ASP.NET 5クラスライブラリプロジェクト(.kproj)には、クラスライブラリプロジェクト( .csproj)よりも多くの利点があります。

  1. ASP.NET 5クラスライブラリは、簡単に複数のターゲット、そのようにクロスコンパイルプロジェクトをサポートするaspnet50aspnetcore50net45、および様々な他のポータブルクラスライブラリバリエーション。これには、どのターゲットでどのAPIが使用できるかを通知するIntellisenseの豊富なVisual Studioサポートが含まれます。
  2. NuGetパッケージは自動的に作成されます。これは、クラスライブラリで非常に一般的なことです。
  3. ファイルシステムが変更されたときにソリューションエクスプローラーを自動的に更新するなど、生産性が向上します。* .csprojファイルの競合する変更をマージしようとすると、ソース管理での競合が少なくなります。
  4. クロスプラットフォームでコンパイルできます(一部はMSBuildに依存しないため)

* .csprojプロジェクトは* .kprojプロジェクトから参照できます(これはVisual Studio 2015の新しいプレビューで大幅に簡単になりました)が、いくつかの手動手順で常に可能でした。

名前に「ASP.NET」が含まれているのはなぜですか?

名前に関する限り、すぐに対処されるのは歴史の遺物です。新しいプロジェクトタイプは、ASP.NET 5アプリケーションをはるかに超えて役立ちます。Visual Studioの将来のプレビューで新しい名前が表示されることを期待してください。

  • .NETコンソールアプリケーション(クロスプラットフォーム)
  • .NETクラスライブラリ(クロスプラットフォーム)

2015年5月13日更新

Visual Studio 2015 RCのリリースにより、更新されたプロジェクトテンプレート名を確認できます。

  • クラスライブラリ(パッケージ)
  • コンソールアプリケーション(パッケージ)

これらは、project.jsonファイルと.NET実行環境(DNX)を使用して、プロジェクトをビルド、実行、および(NuGetパッケージに)パッケージ化します。

これらのプロジェクトテンプレートは、[Web]ノードの下の[新しいプロジェクト]ダイアログに引き続き表示されますが、メインの[Visual C#]ノードにも表示されるようになりました。

VS2015 RCクラスライブラリ/コンソールアプリテンプレート


#2を拡張できますか?インテリセンスがAPIを提案してから、nugetパッケージをダウンロードするということですか?JQueryと入力すると、JQueryが表示されますか?
Simon_Weaver 2015年

3
@Simon_Weaverつまり、通常のクラスライブラリプロジェクトはDLLとPDBだけを生成するのに対し、新しいプロジェクトは、nuget.orgにアップロードできるNUPKG(NuGetパッケージ)を生成するということです。
Eilon、2015年

2
それ以降、.kprojは.xprojに名前が変更されました
Boris Lipschitz

10

これは興味深い観察です。現在のテンプレートはASP.NET 5ランタイムと互換性のあるクラスライブラリを生成します。通常のC#クラスライブラリからは取得できません。

このデザインの質問を追跡するために、次の問題を提出しました-https://github.com/aspnet/Home/issues/281


私はあなたの問題のおかげで監視します。「ASP.NET 5コンソールアプリケーション」と同じ名前の問題は明らかに。多分「vNextコンソールアプリケーション」と呼ばれるべきです、そうでなければ開発者はASP.NET Webサイトへのある種のコンソールアプリとそれを混同するかもしれません。テンプレートの場所を「Visual C#-> Web」から「Visual C#-> vNext」に移動する必要があるかもしれません
mkaj

githubの問題は解決されました。プロジェクト名の改善-感謝:github.com/aspnet/Home/issues/281
mkaj

3

ASP.NET 5クラスライブラリプロジェクトの最終製品は、(。dllアセンブリだけでなく)NuGetパッケージであることは、私が理解していることの1つです。

Visual Studio 2015でプロジェクトを右クリックし、[発行...]オプションを選択すると、NuGetパッケージを生成できます。または、コマンドラインで「KPMパック」を使用できます。

また、ASP.NET 5コアランタイムを使用して、ライブラリがクロスプラットフォームで実行できるようにすることもできます。


ひどい名前ですか?ASP.NETとは何の関係もありませんか?
mkaj 2015年

1
ASP.NET 5の主要な目標の1つは、クロスプラットフォームで実行できるようにすることです。「これを代わりに.NET Coreと呼ぶべきではないのか?」少なくとも今のところ、MicrosoftのマルチプラットフォームアプローチはWeb(およびコンソールアプリ)のみに関するものであり、Javaのようなデスクトップ開発をサポートしていません。それを強調するために、彼らはそれをすべて「ASP.NET 5」という名前でブランド化しています。クロスプラットフォームで実行されるライブラリを作成する場合は、ASP.NET 5クラスライブラリである必要があります。
Thomas Kadlec、2015年

なぜだ-彼はASP.NETで最高の技術"尋ねられたときには「はい」、私は私の上司に伝えることができることを意味
Simon_Weaver
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.