ASP.NET 業務アプリ開発時のフレームワーク選定

ASP.NET 業務アプリ開発時のフレームワーク選定

現在の ASP.NET の状況


2020 年。
.NET 5 の登場を控え、フレームワークとしての ASP.NET を列挙してみると、これだけ種類があります。
  • ASP.NET Web Forms
  • ASP.NET MVC
  • ASP.NET Core MVC
  • ASP.NET Razor ページ
  • Blazor

もう少し詳しく説明しましょう。



1. ASP.NET Web Forms


Web の概念を意識させず、Windows Forms のアプリケーションを作成するように、高い生産性で Web 開発が行えたのは衝撃的でした。
一方で、マイクロソフト独自の独特な「お作法」が多く、そこは色々と批判も多い部分ですが、手軽に Web アプリケーションを作れるメリットは、今でもあります。

ViewState によるパフォーマンス問題はありますが(これはけっこう大きいですけど……)、今でも解説書の新刊が発売されている状況から、まだ現役で使っている現場もあるのかもしれません。

2. ASP.NET MVC


MVC パターンによる Web アプリケーションの開発を行えます。
Web Forms とは概念が全く異なっているため、登場時、Web Forms 開発者はかなり戸惑いました(学習を諦めた技術者も少なくありません)。

テストのしやすさ、メンテナンスのしやすさ、そして、パフォーマンスの大幅な改善。
エンタープライズ向けアプリケーション開発の現場では、.NET 開発におけるメインの選択肢となるでしょう。

3. ASP.NET Core MVC


もともと、ASP.NET MVC 6 として開発されていたものです。名前が変わって、Core MVC となりました。
.NET Core で ASP.NET MVC を選択すると、このフレームワークになります。

API、非同期、タグヘルパーといった機能が強化・追加され、従来までの ASP.NET MVC で「イケてない」部分が細かく改良されています。
今後は、こちらが主流になっていくものと考えられます。

4. ASP.NET Razor ページ


MVC ではなく、Web Forms に近い概念をもっています。.aspx と .aspx.cs に別れていた Web Forms の考え方に近いです。
「ページ」に対してのコーディングに集中でき、Web Forms と MVC の「あいのこ」みたいな感じです。
まだそれほど実績がないため、今後どうなるのかに注目です。

5. Blazor


フロント部分も JavaScript ではなく、C# で記述できます。
流行の SPA(Single Page Application)を作る際には、React や Angular も検討されますが、今後、ASP.NET で SPA を作る場合は、最有力となるかもしれません。

そして、Blazor は、Web Forms の後継としての役割も担っています。Web Forms のマイグレーションを行う場合、今後は Blazor を使うよう推奨されています。

プラットフォームにより選択できるフレームワークが異なる


なお、説明したフレームワークは、Visual Studio で新規プロジェクトを作る際に、選択できるものが異なってきます。

.NET Framework 4.8 を選択した場合

  • ASP.NET Web Forms
  • ASP.NET MVC

.NET Core(.NET 5 以降)を選択した場合

  • ASP.NET Core MVC
  • ASP.NET Razor ページ
  • Blazor
  • React, Angular

どれを選択するかで工数も変わってきます。
そして、募集をかけた際に面談に来る技術者も変わってきます。

顧客の要件と照らし合わせた、総合的な判断が求められます。

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する