ASP.NET と .NET Framework の関係と将来性

ASP.NET と .NET Framework 業務アプリではどれを選ぶべき?

ASP.NET と .NET Framework 業務アプリではどれを選ぶべき?


2020 年。.NET Framework が登場してから 20 年近くが経過しました。
そして、テクノロジーの進歩と時代の要求に合わせて、.NET Framework は大きな変化の時を迎えました。

私は .NET Framework 1.1 が登場した頃から .NET に関わっていますが、
今、ASP.NET と .NET Framework を選定する際にどうすれば良いかをまとめました。

.NET Framework と .NET Core、そして.NET


まず、プラットフォーム(アプリケーション開発・実行環境)の話から。
大きなポイントはこの通り。
  • .NET Framework は 4.8 で最終バージョン
    今後は、セキュリティパッチ等の提供のみ行われます。
  • .NET Core は、2020 年秋に登場する「.NET 5」に統合
    新機能は .NET 5 に追加されていく。

もう少し詳しく説明すると、以下の通りです。

.NET Framework


Windows サーバーに対応した、(従来までの).NET Framework。
サポート期間は、それぞれの OS のサポートライフサイクルに従うため、OS のサポートが続いている限りセキュリティパッチがリリースされます。

.NET Core


マルチプラットフォーム(Linux でも動く)に対応した .NET Framework。
.NET Core は、3.1 が最終バージョンです。
3.1 は LTS(Long Term Support)で、リリースから 3 年間(2022 年 12 月まで)サポートされます。

.NET 5


.NET Core をベースに、Xamarin、Unity、IoT、AI 全ての分野、あらゆるデバイスをサポートする意欲的なプラットフォームです。
今後 マイクロソフトの .NET 投資全てはこちらに注がれます。
.NET 5 以降は、.NET 6, .NET 7...とリリースされていく予定です。


ASP.NET は複雑な状況


さて、.NET の Webアプリケーションフレームワーク である ASP.NET はどうでしょう。詳しく知らないと、どれを選べば良いのかよくわかりません(笑)。

  • ASP.NET Web Forms
  • ASP.NET MVC
  • ASP.NET Core MVC
  • ASP.NET Razor ページ
  • Blazor

それぞれのフレームワークの説明は、こちらにまとめています。


採用するプラットフォームに分類すると、シンプルになります。

  • NET Framework
    • ASP.NET Web Forms
    • ASP.NET MVC
  • .NET Core (.NET 5 以降)
    • ASP.NET Core MVC
    • ASP.NET Razor ページ
    • Blazor

※ ちなみに、.NET Core の場合、フロント側は、React や Angular という選択肢もあります。



ケース別 推奨するフレームワーク


フレームワークは、顧客が求めるものによって決まるのかな、と思います。

保守的な顧客

  • 安定性重視
  • 閉域網で提供される、社内向けシステム
  • 外部に公開しているサービス(BtoB)
  • 極力モジュールのアップデート等は行いたくない
  • 機能改修は行うけど、作ったら 5 年 10 年の単位でそのまま使う

こんな感じの顧客の場合、以下の選択しかありません。

.NET Framework 4.8
ASP.NET MVC

自動テストを入れておくと、保守フェーズに入り、ちょっとした機能改修の際にも品質を担保しやすくなります。


やや保守的な顧客


  • 安定性重視
  • 外部に公開しているサービス(BtoB または BtoC)
  • モジュールのアップデートは行っても良い

.NET Framework 4.8
ASP.NET MVC

または

.NET Core
ASP.NET Core MVC

基本的には安定性重視だけど、モジュールのアップデートや機能追加は定期的に行いたい場合です。
今後、トレンドを追いかけたいなら .NET Core がオススメです。

進歩的な顧客

外部に公開しているサービス(BtoC)で、とにかく「今風」のイケてるアプリが欲しい。アジャイル開発も全く抵抗がない。

.NET Core
React, Angular(Blazor も検討)


顧客が何を求めているのかを考えよう


最後に、あえて言うことでもありませんが……

.NET Framework が登場した時には、ASP.NET Web Forms しか選択肢がありませんでしたが、今ではたくさんの選択肢があります。

ただし、ここに挙げた話は、あくまで「作る側」の話であり、顧客からすると「どうでもいい」話です。

顧客が望んでいる予算と納期で、最高のものを提供するにはどうすればよいか、という視点を持って選定を行いたいものです。

このブログの人気の投稿

Excel で入力した文字に勝手に取り消し線が入る

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