はじめに
本連載では、マルチプラットフォーム化が進む.NETと、そのWebアプリケーション開発フレームワークであるASP.NET Coreの全体像を俯瞰します。ASP.NET Coreは、アプリケーションの目的や開発スタイルに応じて選択することができる多彩なサブフレームワークを搭載しています。それらの基本的な性質や機能を読者に示すことで、ASP.NET Core導入の一助になることを目的とします。
対象読者
- Core以前のASP.NETに慣れ親しんだ方
- Web開発の新しい選択肢としてASP.NET Coreを理解したい方
- ASP.NET Coreの多彩なフレームワークを俯瞰したい方
必要な環境
本記事のサンプルコードは、以下の環境で動作を確認しています。
-
macOS Ventura / Windows 10(64bit)
- .NET SDK 7.0.100
SignalRとは
SignalRとは、Microsoftが開発したリアルタイム通信のためのフレームワークです。2013年という比較的古いリリースで、ASP.NET 4.5で最初のバージョンが組み込まれました。SignalRは単体でGitHubリポジトリで公開されており、オープンソースプロダクトとして独自にメンテナンスされています。本稿作成時点の最新バージョンは2022年1月にリリースされた2.4.3です。
SignalRの動作モデル
SignalRの代表的な動作モデルを図1に示します。クライアントは、ハブのメソッドを呼び出してメッセージをサーバに送信します。サーバは、受信したメッセージをクライアントのメソッド(関数)を呼び出すことでクライアントに届けます。これにより、チャットやゲームなどのリアルタイム性の求められるアプリケーションがASP.NET Core上で実現できます。
第10回で紹介したgRPCは、クライアントがサーバの手続き(メソッド、関数)を呼び出せるのみでしたが、サーバとクライアントがお互いにメソッド、関数を呼び出し合うことができるのがSignalRの特徴です。よって、サーバがクライアントからのアクションなしにメッセージを同報できる、サーバプッシュ型のアプリケーションも実現できます。
以降で、それぞれの構成要素について紹介します。