ASP.NET のWebアプリケーションついて  ｟マニュアルのマニュアル｠

##    はじめに

  __<font color="blue">　【C#】</font>のWebアプリケーションのフレームワークである__
  __<font color="blue">　【ASP.NET Core】</font>のマニュアルを確認。__

##### ASP.NET公式ドキュメントは以下を参照。
https://learn.microsoft.com/ja-jp/aspnet/core/?view=aspnetcore-8.0



# <font color="blueviolet">__①ASP.NET Core Web UI を選択する__</font>
ASP.NET CoreでWebアプリケーションを開発する際に、
ユーザーインターフェース（UI）をどのように構築するかを選択することを指します。

ASP.NET Coreでは、いくつかのUIフレームワークやライブラリを使用して
Webアプリケーションのフロントエンド部分を作成できます。

## <font color="green">①-1 ASP.NETとは</font>
### ASP.NETは、Webアプリケーションフレームワーク。
1990年代後半にMicrosoftよりリリースされた、動的なWebサイト、
Webアプリケーション、Webサービスを作成するためのプラットフォーム。
#### 主な特徴は以下。
      1･･･ .NET Frameworkの一部
           ASP.NETは、Microsoftの.NET Frameworkの一部であり、
           Webアプリケーションを構築するために特化した
           フレームワークです。
           
           .NET Framework上で動作し、
           Visual BasicやC#などの.NET言語を使用して開発できます。


      2･･･ サーバーサイド技術
           ASP.NETはサーバーサイドの技術であり、
           サーバー上でコードを実行してHTMLを生成し、
           それをクライアント（ブラウザ）に送信します。
           
           これにより、動的なWebページの作成が可能になります。


      3･･･ Web Forms
           初期のASP.NETではWeb Formsという技術が導入され、
           デスクトップアプリケーションに似た開発モデルで
           Webアプリケーションを構築できるようになっていました。
           
           GUI（グラフィカルユーザインターフェイス）のような開発が
           可能で、初心者にも扱いやすいのが特徴です。


      4･･･ MVC（Model-View-Controller）パターン
           後に、ASP.NET MVCが導入され、より制御性とテスト性に優れた
           Webアプリケーションの開発が可能になりました。
           
           MVCパターンに基づくアーキテクチャは、アプリケーションを
           モデル、ビュー、コントローラの3つの主要コンポーネントに
           分けて設計することを促進します。


      5･･･ 豊富なライブラリとツール
           ASP.NETは、多くのビルトインライブラリやツールを提供しており、
           データベース接続、認証、キャッシュ、セッション管理など、
           Webアプリケーション開発に必要な機能を簡単に実装できます。


      6･･･ Web API
           ASP.NETは、Web APIの開発にも対応しており、
           RESTfulなサービスを構築するためのツールが提供されています。
           
           これにより、クライアントアプリケーション（モバイルアプリなど）や
           他のWebサービスとのデータ通信が容易になります。


      7･･･ ASP.NET Coreとの関係
           ASP.NETは、ASP.NET Coreの前身と位置づけられます。
           ASP.NET CoreはASP.NETの進化版で、クロスプラットフォーム対応や
           よりモダンな開発手法を取り入れていますが、
           ASP.NETも引き続きサポートされており、
           特にWindowsサーバーでの運用が主な場合には今でも使用されています。



## <font color="green">①-2 ASP.NET Coreとは</font>
### オープンソースでクロスプラットフォーム対応のASP.NETの進化版。
以前のASP.NETフレームワークと比べて多くの改善が施されています。
高性能でモダンなWebアプリケーションやWeb APIを構築できます。
#### 主な特徴は以下。
      1･･･ .クロスプラットフォーム対応
           Windowsだけでなく、macOSやLinuxでも動作します。
           これにより、開発者はどのOSでも開発やデプロイを行うことができます。
           

      2･･･ 高性能
           パフォーマンスの最適化が行われており、
           ASP.NET Coreは非常に高速なWebフレームワークとして知られています。
           

      3･･･ モジュラー設計
           必要な機能だけを取り入れて使用できるよう、
           フレームワークがモジュラー化されています。
           
           これにより、アプリケーションのサイズを小さくし、
           パフォーマンスを向上させることができます。


      4･･･ 統合された依存性注入 (DI)
           ASP.NET Coreでは依存性注入が標準でサポートされています。
           これにより、コードのテスト性や保守性が向上します。


      5･･･ Razor Pages と MVC
           UIを構築するためのRazor Pages、

           より複雑なアプリケーションに適した
           MVC（Model-View-Controller）パターンが使用できます。


      6･･･ Blazorサポート
           C#でクライアントサイドのWebアプリケーションを構築できる
           Blazorをサポートしています。
           
           これにより、JavaScriptを使わずにインタラクティブな
           Web UIを作成することが可能です。


      7･･･ クラウドとマイクロサービス向け
           ASP.NETは、Web APIの開発にも対応しており、
           RESTfulなサービスを構築するためのツールが提供されています。
           
           これにより、クライアントアプリケーション
           （モバイルアプリなど）や
           他のWebサービスとのデータ通信が容易になります。


      8･･･ オープンソースとコミュニティのサポート
           ASP.NET Coreはオープンソースであり、
           GitHub上でソースコードが公開されています。
           
           活発な開発者コミュニティが存在し、
           頻繁にアップデートや改善が行われています。




## <font color="green">①-3 ASP.NET Core Web UIの選択肢</font>

#### 以下のようなUI構築の選択肢があります。
      1･･･ ASP.NET Core Blazor
           C#を使用してクライアント側のWeb UIを構築できるフレームワークです。
           Blazor ServerやBlazor WebAssemblyを使用して、
           クライアントサイドで実行するWebアプリケーションを作成できます。
           

      2･･･ ASP.NET Core Razor Pages
           パフォーマンスの最適化が行われており、
           ASP.NET Coreは非常に高速なWebフレームワークとして知られています。
           

      3･･･ ASP.NET Core MVC
           伝統的なModel-View-Controller（MVC）パターンに基づいており、
           複雑なWebアプリケーションの開発に適したフレームワークです。
           
           なお、今回はこちらを選択※1 して、構築を行います。



      4･･･ フロントエンドJavaScriptフレームワークを使用する
           ASP.NET Coreシングルページアプリケーション (SPA)

           フロントエンドにはJavaScriptフレームワーク（例：Vue.js）を使用

           Vue.js は、軽量で柔軟なJavaScriptフレームワークで、
           UI構築やSPAの開発に特化しています。
           これにより、コードのテスト性や保守性が向上します。


           バックエンドにはASP.NET Coreを使用して、
           シングルページアプリケーション（SPA）を構築します。
           
           SPAは、単一のWebページで動作し、
           ページのリロードなしで動的にコンテンツを
           更新するアプリケーションです。


      5･･･ 複数のWeb UIソリューションの組み合わせ:
      　　　ASP.NET Core MVCまたはRazor PagesとBlazor

           ASP.NET Core MVCまたはRazor PagesとBlazorを
           組み合わせることで、
           プロジェクトの特定のニーズに応じた
           柔軟なUIソリューションを構築できます。



# ※　ASP.NET Core MVC
　
 １．<font color="blueviolet">__Model-View-Controller（MVC）パターンとは__</font>

  ・<font color="gray">__MVC__</font> はアプリケーションの構造を分離して管理しやすくする。

  ・以下の3つのコンポーネントに分かれています：



  　　<font color="Magenta">__Model__</font>   : アプリケーションのデータや
  　　　　　　ビジネスロジックを扱います。
  　　　　　　データの取得、保存、更新などを行います。

  　　<font color="Magenta">__View__</font>   : ユーザーインターフェース（UI）を担当し、
    　　　　　　データを表示します。ユーザーが操作する部分です。

  　　<font color="Magenta">__Controller__</font>   : ユーザーの入力を受け取り、
    　　　　　　　ModelとViewを調整します。
    　　　　　　　ユーザーのアクションに応じて、Modelを更新し、
           　　　　　　　その結果をViewに反映させます。

　
  ・<font color="gray">__MVCの詳細__</font> は以下を参照

https://learn.microsoft.com/ja-jp/aspnet/core/mvc/overview?view=aspnetcore-8.0

　
 ２．<font color="blueviolet">__初めてASP.NETを学ぶ際、ASP.NET Core MVCを選択する理由__</font>

  ・<font color="gray">__Webアプリケーション開発の基礎を学べる__</font> 
  　MVCパターンを学ぶことで、
  　基本的なWebアプリケーションの設計や開発の基礎を習得
　
  ・<font color="gray">__柔軟で拡張性が高い__</font>
  　アプリケーションの構造が明確になり、
  　スケーラブルな設計を行いやすい
　
  ・<font color="gray">__豊富なリソースとサポート__</font>
  　Microsoftの公式ドキュメントやコミュニティが充実しており、
  　学習をサポート
　
  ・<font color="gray">__実務に役立つスキルを習得できる__</font>
  　現実のプロジェクトでよく使用されるため、実践的なスキルを学ぶ
　
  ・<font color="gray">__C#の理解を深める__</font>
  　C#の言語仕様や.NET Coreの機能を活用することで、
  　C#の理解を深められる
　
  ・<font color="gray">__クロスプラットフォーム対応__</font> 
  　Windows以外の環境でも開発やデプロイが可能で、
  　幅広いプラットフォームに対応

   
--------------------------------------------------------------

   次回：ASP.NET のWebアプリケーション構築手順

https://qiita.com/nekoozi/items/8abd289764232e8ae72a


## 参考文献

ASP.NET 関連情報サイト様

 https://learn.microsoft.com/ja-jp/aspnet/core/tutorials/choose-web-ui?view=aspnetcore-8.0
 
 https://learn.microsoft.com/ja-jp/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-8.0

 https://devlog.mescius.jp/aspnet-core-mvc-migration/