I'm lost. What happened to ASP.NET MVC 5? Ask Question

I'm lost. What happened to ASP.NET MVC 5? Ask Question

I've been keeping my head down working on various projects and apparently Microsoft has been busy making some big changes and it's confusing the hell out of me. ASP.NET Core first came onto my radar when I installed Visual Studio 2017 last year and went to create a new project and suddenly had choices of .NET Framework, .NET Standard, and .NET Core. So I looked into them a little and saw that the latter two are, in some way, abbreviated versions of the full framework. I read this post by Scott Hanselman ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0 I also found this, which steered me away from ASP.NET Core: Choose between ASP.NET and ASP.NET Core. My takeaway was "Core is new, you're fine to keep using the full framework." So I created a new ASP.NET MVC site using .NET Framework 4.6.2 and Microsoft.AspNet.Mvc 5.2.3.

Since creating that project, I found what seemed like some bugs in both MVC and Entity Framework only to find that the only mention of them on the web seems to be in Core and that's the only place they're being considered being fixed.

Now, today, I'm trying to look up the documentation on System.Web.Mvc.Controller and System.Web.Mvc.JsonResult and it's gone except under Core documentation. I did finally dig it up here where it says it's no longer being maintained?

I understood this much about Core and said, "ok, why should I care? I'm going to keep doing what I'm doing and check back on that when it's done." But now it seems that 4.6.2 is not even supported anymore. Can someone explain what's going on? Is my NET 4.6.2/MVC 5.2.3 project now obsolete before I'm even finished writing it? If not, why has the documentation been retired and hidden away? I'm worried some of my dependencies might not even be available for or compatible with Core.

ベストアンサー1

(この回答は、新しい.NETの発表があるたびに定期的に更新されており、ASP.NET Core 3.0、.NET 3、.NET 5の詳細も更新されています。

マイクロソフトは過去の混乱に対して厳しい罰を受けるべきだ 3年 .NET Core / DNX、ASP.NET Core、.NET Standard、.NET 5 など、5 年以上にわたります。

(私は開発部門の元 FTE SE として言っています... (「16 号館からこんにちは!」) )

  • 詳しくはこちら別名「System.Web」は廃止されました。WebForms も廃止されました (やったー!)
  • ASP.NET の新機能2008 年にリリースされたバージョンは ASP.NET 上に構築されていましたが、WebForms インフラストラクチャの大部分をバイパスしていました。
    • ASP.NET の新機能独自のバージョン管理があり、詳しくはこちらそしてASP.NET Web API(そしてASP.NET コア)。リンク先ASP.NET MVC 5のドキュメント -これは同じことではありませんASP.NET 5
  • ASP.NET Web API2012年に発売されたASP.NET の新機能、それは上に構築された詳しくはこちらも持っていたが、独自のクラスライブラリ(System.Web.Http)があり、あまり共通点がなかった。ASP.NET の新機能System.Web.Mvc)。同じプロジェクト内で ASP.NET Web API サービスと ASP.NET MVC Web アプリケーションを組み合わせようとすると、大変な作業になります。
  • ASP.NET MVC 52014年にアップデートとして発売されましたASP.NET MVC 4とは無関係ですASP.NET 5
  • ASP.NET MVC 6リリースされなかった。ASP.NET 5それがASP.NET コアその目標は、ASP.NET MVC と ASP.NET Web API を単一のプラットフォームに統合することでした。
  • ASP.NET コア2016 年に ASP.NET MVC 5 の改良設計としてリリースされましたが、System.Web.dllIIS への依存関係 (古い要求パイプラインなど、IHttpHandler現在IHttpModuleは存在しません) はありません。
    • ご了承くださいASP.NET コアのクラスライブラリのルート名前空間は ではMicrosoft.AspNetなく になりましたSystem.Web。これは私にとって混乱の原因でした。つまり、プロジェクトを からアップグレードすると、ASP.NET の新機能そしてASP.NET WebAPIコントローラーとミドルウェアの基本的なアーキテクチャは同じであるにもかかわらず、ASP.NET Core への移行は簡単ではありません。
  • .NET コアは、明示的に移植可能で、Windows、Linux、macOS で実行される CLR と BCL の新しいバージョンです。
    • .NET Core 1.0そして.NET Core 2.0のベースクラスライブラリは、全脂肪 。ネットフレームワークこれは Windows 専用です。
    • .NET Core 3.0WinForms、WPF、およびその他の .NET Framework コンポーネントのオープンソース化により、.NET Core は、新しいアプリケーション開発のための Windows での .NET Framework の代替として準備が整っています。
  • .NET 5.NET Coreの新しい名前は.NET Core 3がリリースされます (.NET 5 は 2020 年後半頃にリリースされる予定です)。
    • .NET 5もっている何もない関係するASP.NET 5.0またはASP.NET MVC 5
    • ありません.NET Core 4または.NET フレームワーク 5.0
  • .NET の ASP.NET Core「は、最初のリリースの最終的な名前のようですASP.NET コア具体的にターゲットを絞る.NET 5以降。

「Core」はマイクロソフトの熱い.NET Core で動作する現在の世代の .NET プラットフォームのブランド化 (つまり、Windows に依存しないため、移植可能)。(Microsoft が 1990 年代に COM または ActiveX を使用したものに「Active」を付けたのと同じように、Active Desktop、Active Channels、ActiMates、Active Directory、ActiveSync など)。

  • さらにエンティティ フレームワーク コアEntity Framework 6 の多くの機能がまだ欠けていますが、これは基本的に書き直しであるためです。ただし、最終的には同等の機能になります。

現在利用可能な.NETランタイムとBCLは多数あるため(.NET Framework、.NET Core、UWP、Xamarin(Monoを使用)、Unityなど)、Microsoftは.NET 標準これは基本的にポータブルクラスライブラリの概念のリブートです。つまり、Visual Studioプロジェクトは特定の実装ではなく、一般的な機能の既知のサブセットを対象とします。(バージョン番号が.NET Frameworkに合わせて4から始まるのではなく、4から始まるといいのですが、1.0そうすると次のことを考えてしまいます。2001もう一度やり直します。) - しかし重要なのはASP.NET コア 1そしてASP.NET コア 2.NET Core ではなく .NET Standard をターゲットにします。つまり、ASP.NET Core は、.NET Core 上で実行されるだけでなく、Windows 上の .NET Framework 上でも実行されます。

これまでの .NET クロスプラットフォーム互換性技術はすべて、.NET Compact Framework、XNA、Silverlight、Windows Phone 7 のサブセットなど、現在は存在しない他のエディションの .NET を対象としていたため、現在は廃止されていることに注意してください (Compact Framework サブセット、ポータブル クラス ライブラリ、さらには Visual Studio の「共有プロジェクト」を対象とする技術も含む)。

2019年5月、マイクロソフトが「.NET 5」を発表つまり、。ネットフレームワーク置き換えられる.NET コア、.NET Core 3.0の次のバージョンの.NET Coreは.NET 5)。この発表は、ASP.NET コア.NET 5が完全にサポートされるという事実を除けば、ASP.NET コア 3.0実行されているアプリケーション。

2020年のコロナ禍の夏、マイクロソフトは.NET 5とASP.NET Coreを完成させた。2020年10月現在、ASP.NET CoreのNuGetパッケージのバージョンは3.1.xから5.0.0に上がった。つまり、ASP.NET Coreの次のメジャーリリースはバージョン管理されるようで、5.x.xリリースは5月「」と名付けられるASP.NET コア 5「最近のMicrosoftのブログ記事では、名前は「ASP.NET Core for .NET 5」になると示唆されていますが、このスレッド全体が「ASP.NET MVC 5」と「ASP.NET 5」の混乱から作成されたことを考えると、「ASP.NET Core 5」または「ASP.NET Core for .NET 5」のいずれかの名前になるはずです。絶対に混乱することはありません、いや、違いますよ!

要約すれば:

  • ASP.NET MVC 5:
    • ASP.NET MVC 5短命の後継者であったASP.NET MVC 4
    • 同時にリリースされたASP.NET Web API 22014年に。
    • それは実際にASP.NET 4(つまり、.NET 4.xバージョンのSystem.Web.dllASP.NET の新機能ライブラリは現在廃止されています。
  • ASP.NET 5はEOLとなり、ASP.NET コア「ASP.NET MVC 5」の機能が組み込まれています。
  • ASP.NET コア 1そしてASP.NET コア 2.NET Standard をターゲットにしているため、.NET Core (クロスプラットフォーム) または .NET Framework (Windows) のいずれでも実行できます。
  • ASP.NET コア 3現在は.NET Core 3.0
  • ASP.NET コア 4存在せず、これまでも存在したことがありません。
  • ASP.NET コア 5(2020年8月現在)存在しますが、正式名称は「ASP.NET Core for .NET 5」のようで、.NET 5

すべて(時系列順):

  • ASP.NET 1- 2001年。含まれるWebフォーム.NET Framework 1.0 および 1.1 で実行されました。System.Web.dll.
  • ASP.NET 2.0- 2005年。含まれるWebフォーム.NET Framework 2.0 上で実行されました。System.Web.dll.
  • ASP.NET MVC 1そしてASP.NET MVC 2- 2008-2009。AS​​P.NET 2.0 上で実行されましたSystem.Web.Mvc.dll
  • ASP.NET 4.0- 2010年。含まれるWebフォーム.NET Framework 4.0で実行されました。ASP.NET 3.0. System.Web.dll.
  • ASP.NET MVC 3そしてASP.NET MVC 4- 2010-2013。ASP.NET 4.0 上で実行されましたSystem.Web.Mvc.dll
  • ASP.NET Web API 1- 2012年。ASP.NET 4.0. System.Web.Http.dll.
  • ASP.NET MVC 5- 2013年。ASP.NET の新機能. 上を走ったASP.NET 4.0ただし、System.Web.dllOWIN なしで独立して実行することもできます。
  • ASP.NET Web API 2- 2013年。ASP.NET MVC 5なしでも実行できますASP.NET 4.0OWIN の下で。
  • ASP.NET MVC 6- 2014-2015。リリース候補ステータスに達した後に中止され、ASP.NET コア MVC 1.02016年にMVCとWeb APIコンポーネントであるASP.NET コア 1
  • ASP.NET 5- 2014年。ASP.NETの大幅な再起動ここで説明主な変更点は、MVC、Webページ、Web APIの統合と、WebフォームASP.NET 5はリリース候補のステータスに達しましたが、その後、ASP.NET コアこれまでASP.NET 6
  • ASP.NET コア 1- 2016年。.NET フレームワーク 4.5または.NET Core 1.0
  • .NET コア- 2016。移植可能で最小限の .NET ランタイムおよびクラス ライブラリ。
  • .NET 標準- 2017。プログラムが、すべての .NET 実装 (.NET Framework 4.5 以降、.NET Core 2.0 以降、Xamarin など) に存在する共通の機能セットをターゲットにする方法。
  • ASP.NET コア 2- 2017-2018: 現在の状況。.NET フレームワーク 4.6.1または.NET Core 2.0(2018 年末現在、ASP.NET Core 2.1 が存在します)。
  • ASP.NET コア 3-2018年10月下旬、マイクロソフトはASP.NET Core 3.0が今後リリースされる.NET Core 3.0でのみ動作するようになると発表しました。(したがって、.NET Framework 4.7.x では実行されなくなります)。これは、.NET Core をまだサポートしていない依存関係のために、.NET Framework 4.7.x で実行されるアプリケーションに対して ASP.NET Core 2.x から ASP.NET Core 3.x へのアップグレード パスがなくなったことを意味し、.NET Standard 3.0 はおそらく存在しないことを意味するため、物議を醸す動きとなっています。
  • .NET 5- 2019年5月:マイクロソフトは、.NET Coreの次期バージョンを発表しました。.NET Core 3.1「.NET Core 4.0」や「.NET Core 5.0」とは呼ばれず、バージョン番号5.0にジャンプし、「Core」ブランドを廃止します。.NET 5.0「」。
  • .NET 5 上の ASP.NET Core 3.0- 2019年5月の発表では.NET 5Microsoft は、ASP.NET Core 3.0 アプリケーションが .NET 5 上で実行されるとも述べています。ASP.NET Core 2.x アプリケーションが変更なしで .NET 5 上で実行できるかどうかは現時点では不明です。
  • .NET 5 上の ASP.NET Core vNext- 2020年8月:.NET 5MicrosoftはASP.NET CoreのNuGetパッケージのバージョン番号を5.0.0Microsoft はまだこの新しい ASP.NET Core リリースを正式に「ASP.NET Core 5」と呼んでいませんが、私はそれが当然の結果だと考えています。
  • .NET 5 向け ASP.NET Core2020年9月の最近のブログ記事によると、マイクロソフトはASP.NET Coreの次期バージョンを「.NET 5 向け ASP.NET Core「(はい、これは長い名前です。少なくとも以前の名前ほど曖昧ではありません)。

タイムラインとブロック図

(夢中になって作ってしまいました…)

ASP.NET のタイムラインと、.NET Framework、ASP.NET、ASP.NET MVC のコンポーネントがどのように組み合わされるかを示すブロック図を含む図

おすすめ記事