新しい Blogger で HTML モード に切り替える

今までの Blogger エディター
 
新しい Blogger

新しい Blogger エディター
変わりすぎ……

新しい Blogger

HTML エディターの切り替えボタン

これは所見ではわからない。


新しい Blogger は、使い勝手が変わりすぎて、今までに慣れた人ほど使いづらさを感じる。

しかし、待望の? iPad(Chrome) でも編集できるようになったのは良いね。

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 しか選択肢がありませんでしたが、今ではたくさんの選択肢があります。

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

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

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

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

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