スポンサーリンク
スポンサーリンク

.NET 6.0とMagicOnionで実現するgRPC通信(Windowsフォーム)

.NET CoreASP.NET CoreC#MagicOnionVisual StudioWCFWindowsフォームアプリ

.NET 6.0 の Windowsフォームアプリから、MagicOnion NuGetパッケージを使い、gRPC通信処理を行うサンプルを作成しました。
ソースコードはGitHubで公開しています。

.Net Frameworkで実装されたクライアントサーバシステムを .NET 6.0へ移行するにあたり、MagicOnion Nugetパッケージを使用すると、gRPC通信を使ったクライアントサーバシステムへ簡単に移行できます。

.Net Framework+WCF で実装されたクライアントサーバシステムを、.NET 6.0+WCF Core へ移行し古いHTTTPプロトコルで通信し続けるよりは、HTTP/2のgRPC通信へ移行することが推奨されています。
WCF 開発者に gRPC を推奨する理由 – WCF 開発者向け gRPC | Microsoft Learn

MagicOnionを使うと簡単にクライアント・サーバシステムでgRPC通信を実現できます。
.NETでクライアント・サーバシステムを開発する場合、通信処理はMagicOnionでgRPC通信を実装するのが主流になりそうです。

GitHubのMagicOnion プロジェクトサイトには、MagicOnion開発リポジトリ、インストール手順などがありわかり易いです。
Cysharp/MagicOnion: Unified Realtime/API framework for .NET Platform and Unity (github.com)

 

MagicOnion サーバ側

ソースコード構成

今回使った Visual Studio プロジェクト テンプレートは、Visual Studio 2022 + .NET 6.0 + ASP.NET Core(空)アプリです。

テンプレートに対して、下記の処理を加えました。

 

ソースコード変更内容を解説

/WebApplication1.csproj

Grpc.AspNetCore/MagicOnion.Server NuGetパッケージをインストール。

 

/Program.cs

MagicOnion.Serverのサービス開始処理を追加。

 

/Shared/IMyFirstService.cs

MagicOnionを使ってクライアントとサーバを通信するための interfaceを作成。

 

/Services/MyFirstService.cs

interfaceに対応するサーバ側の処理を作成。

 

MagicOnion クライアント側

ソースコード構成

今回使った Visual Studio プロジェクト テンプレートは、Visual Studio 2022 + .NET 6.0 + Windowsフォームアプリです。

テンプレートに対して、下記の処理を加えました。

 

ソースコード変更内容を解説

/WinFormsApp1.csproj

・MagicOnion.Client NuGetパッケージをインストール。
・MagicOnion サーバ側で作成した interfaceのソースファイルを、リンク参照でSharedフォルダ配下へ追加。

 

/Form1.Designer.cs/Form1.resx

動作を確認する為に最低限の画面を作成。

 

/Form1.cs

ボタンのクリックイベントに、interfaceを通しサーバ側のSumAsync()メソッドを呼び出す処理を作成。

コメント

タイトルとURLをコピーしました