ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

ASP.NET - .NET と C# を使用して Web アプリとサービスを構築するためのフレームワーク

初めに

 ASP.NET .NETC# を使用して Web アプリとサービスを構築するためのフレームワークです。クロスプラットフォームであり、動的な Web サイトや Web アプリケーションを作ることができます。本記事では、Blazor や Razor Pages も含め、ASP.NET についての基本的な説明をします。

ASP.NET とは

 ASP.NET .NETC# を使用して Web アプリとサービスを構築するためのフレームワークです。クロスプラットフォームであり、動的な Web サイトや Web アプリケーションを作ることができます。

ASP.NET Core とは

 ASP.NET 4.x では .NET Framework を使って開発を行いますが、Windows以外では開発できませんでした。ASP.NET CoreはWindowsだけでなく、macOSLinuxでも開発が可能となりました。

 現在は、ASP.NET Core より前に存在していた Windows のみのバージョンを、単に ASP.NET と呼ぶようになっています。

ASP.NET でできること

 ASP.NET では、Web アプリを作るためのいくつかのフレームワークが用意されています。ASP.NET のドキュメントを見ると、次のようなキーワードが出てきます。

(Web アプリ)

(リアルタイムの双方向通信をおこなうアプリ)

  • SignalR によるリアルタイム Web アプリ

(RPC/リモートプロシージャコールアプリ)

(Web API

  • Web API の作成

 開発または保守管理するアプリの種類に合わせて選択することになります。ドキュメントにチュートリアルが載っています。

learn.microsoft.com

learn.microsoft.com

Blazor、Razor Pages、ASP.NET Core MVC の違い

 Blazor、Razor Pages、ASP.NET Core MVC はいずれも Web アプリを作るためのフレームワークです。次のような違いがあるようです。

Blazor
  • クライアントサイドで動作する
  • C#やRazor構文を使う
  • シングルページアプリケーション(SPA)として機能し、ページの再読み込みなしで動的なUIを構築する
Razor Pages
  • サーバーサイドで実行される
  • ASP.NET MVC よりも簡単な方法で ASP.NET Core ページを整理しておくことができる
ASP.NET Core MVC
使い分け

 シングルページアプリケーションを作りたい、処理をサーバーでせず、クライアント側でさせたい場合は、Blazor を使う。サーバーサイドで処理をしたい場合やシングルページアプリケーションでない場合は Razor Pages を使うようにすればよいかと思われます。

 Microsoft のドキュメントに3つの特徴について、説明があります。

learn.microsoft.com

Visual Studio 上で ASP.NET を使う

 Visual Studio 上で ASP.NET を使うには、Visual Studio Installer から "ASP.NET と Web 開発" を選択し、インストールする必要があります。

 インストールすると、ASP.NET Core Web アプリや Blazor WebAssembly アプリなどのテンプレートが追加されます。

 作成したい Web アプリに合ったテンプレートを開き、作成していきます。

(再掲:チュートリアルが載っているドキュメント)
learn.microsoft.com

補足

SignalR

 SignalR はリアルタイムの双方向通信を簡単におこなうライブラリです。リアルタイムの双方向通信が必要な例として、チャットや対戦ゲームなどが挙げられます。

RPC、gRPC

 RPC(Remote Procedure Call/遠隔手続き呼び出し)とは、ネットワーク上の他端末と通信するための仕組みのことで、これによって他端末のプログラムをリモートで実行することができます。

  gRRP とは、Googleが2015年に開発したオープンソースのRPCです。