2016-05-26 20 views
42

.NET Core RC2のリリースでは、 Webアプリケーションテンプレート:.NET Core Webアプリケーション(.NET Core)とnet461を唯一のフレームワークとして使用し、(.NET Framework)テンプレートを使用することの相違点

ASP.NET Webアプリケーション(.NET Frameworkの) - 旧
ASP.NETコアWebアプリケーション(.NET Frameworkの) - 新しいは、Windowsのみ
ASP.NETコア上でホスティングされます

私は新しいCore Web Applicationテンプレートを使用しようとしていますが、Linux、OSX、Windowを対象にしようとしていません。 ASP.NET Core Webアプリケーション(.NET Framework)のように思えます。私はしばらく時間がかかりましたが、このプロジェクトタイプで動作するクラスライブラリを追加するには、クラスライブラリ(.NET Core)を追加し、フレームワークセクションをWebアプリケーションと一致するnet461に変更する必要があることを学びました。

"frameworks": { 
    "net461": { } 
    } 

私の質問:

ASP.NETコアWebアプリケーション(.NETのコア)を作成し、project.json作りにのみターゲットフレームワーク

をnet461の違いは何です

デフォルトでnet461のみを含むASP.NETコアWebアプリケーション(.NET Framework)プロジェクトを作成するだけです。

他の違いは、私はプロジェクトの公開方法などを知らないと思いますか?

答えて

29

枠組み

をASP.NETコアWebアプリケーション(.NETのコア)を作成し、project.jsonにのみターゲットをmaking.NET461との差が、それはASP.NET Core Web Applicationを作ると同じことだとは何ですか(.NET Framework)プロジェクト2つのプロジェクトの種類はproject.jsonで、project.jsonでは.NET Coreをターゲットから.NET Frameworkに変更しました。以前のリリース/ベータ版のASP.NET Coreでは、両方のフレームワークをproject.jsonにすることは可能でしたが、あなたは1つにしか公開できませんでした。これがまだ可能かどうかはわかりません。

デフォルトで.NET.NETを含むASP.NETコアWebアプリケーション(.NET Framework)プロジェクトを作成するだけです。

他の違いは、プロジェクトの公開方法などが分かりません .NET Frameworkではなく.NET Coreをターゲットにすると、アプリケーションはクロスプラットフォームではなく、アプリケーションはLinux/Macではなく、Windows。後者では、Windowsと同じに依存する機能、パッケージやサードパーティのライブラリを利用することができますので、

が別々ASP.NET Core Webアプリケーション(.NET Core)とASP.NET Core Webアプリケーション(.NET Frameworkを)という理由は、 .NET Framework以上がマシンにインストールされている必要があります。

前者は.NET Framework要件を持っていますが、あなたのアプリケーションは、クロスプラットフォームであることを可能にすると、あなたのアプリを公開するとき、それは.NET Frameworkインストール要件を回避するそのように公開したディレクトリにすべての依存.NET Core dllファイルを公開していません。

また、.NET CoreをターゲットにしてWindows固有の関数またはパッケージを使用すると、コンパイルエラーが発生するため、コンパイルにも影響します。

project.jsonを調整して2つの間で簡単に切り替えることができます。

Microsoft Docs

ときは、サーバアプリケーションのための.NETのコアを使用する必要があります。

  • あなたは、クロスプラットフォームのニーズを持っています。

  • マイクロサービスを対象としています。

  • Dockerコンテナを使用しています。

  • 高性能でスケーラブルなシステムが必要です。

  • アプリケーションごとに.NETバージョンが並んでいる必要があります。あなたのアプリケーションは、現在あなたがサード使用する必要があり、.NET Frameworkの(勧告が移行するのではなく、拡張することです)

  • を使用しています

    • :ときあなたのサーバアプリケーションのための.NET Frameworkを使用する必要があります

    .NETコアでは使用できないサードパーティの.NETライブラリまたはNuGetパッケージ。

  • .NETコアでは使用できない.NETテクノロジを使用する必要があります。
  • .NETコアをサポートしていないプラットフォームを使用する必要があります。
1

私は最初も混乱しました。主な違いは、ASP.NET Webアプリケーション(.NET Framework)は、私たちが使用している通常のasp.netです。これにはApp_Startフォルダweb.config、Global.asaxなどが含まれています(MVC5のように、あなたはアイデアを得ます)。

ASP.NETコアWebアプリケーション(.NET Framework)はコアフレームワーク(MVC6)ですが、 (System.Webに依存しません)。新しいproject.json .. startup.csとprogram.csなど...そして、それは.NETフレームワークの古いライブラリもすべてサポートしています。

+0

これはすべて該当しますが、質問には対処しません。要するに、彼は "古い" ASP.NETオプションではなく、2 ** ASP.NET Core **オプションの比較を求めています。 –

4

まずあなたが別のフレームワークをターゲットとASP.NETコアWebアプリケーションを作成するときにproject.jsonファイルの違いを参照してください。あなたの質問を1として

difference between asp.net core with different frameworks

あなたはproject.jsonだけnet461を持っているし、保存するためにASP.NETコアのWebアプリケーション(.NETのコア)でフレームワークを変更した場合、それはパッケージを復元しますとなります次のエラー。

enter image description here

あなたはMicrosoft.NETCore.Appの依存関係を削除し、ファイルを保存した場合、それは再び依存関係を復元しますし、任意のエラーを与えることはありません。

最初のイメージに気付くと、これは最終的に.NET FrameworkのASP.NETコアWebアプリケーションになります。

関連する問題