More Related Content
Similar to 20191024 Get Start gRPC with ASP.NET (20)
More from Takayoshi Tanaka (20)
20191024 Get Start gRPC with ASP.NET
- 2. 自己紹介
Senior Technical Support Engineer @ New Relic K.K.
◦ アプリケーションプラットフォーム監視(APM)のSaaSです
◦ 日本語サポート開始しました
◦ New Relicに関する勉強会の要望も受けます
Microsoft MVP for Azure
◦ .NET Core on Linux, Kubernetes, Azureなどのお仕事してました
◦ Visual StudioやQ#などにも興味があります
ソーシャル活動
◦ Twitter: @tanaka_733
◦ Blog: 銀の光と碧い空
- 4. gRPC + ASP.NET Coreの
主なターゲット
新規でRPCスタイルのサーバーサイドを開発したい
• 新規でASP.NET Coreでサーバー作るなら、
通常のREST API、SignalRとともに検討したい
WCFからの移行
• .NET Frameworkの一部であるWCFは基本的に新機能はもうこない
• のでMicrosoftとしてはgRPC + ASP.NET Coreに移行してほしい雰囲気を感じる
• MSからeBookも出ています
• https://docs.microsoft.com/ja-jp/dotnet/architecture/grpc-for-wcf-
developers/?WT.mc_id=DT-MVP-5000211
• 個人的にはサポートなくなるわけじゃないし、WCFのままでいいという人もいると思いますが…
- 9. .proto から C# クラスの自動生成
サーバーサイド
◦ テンプレートを使う場合は設定済み。それ以外の場合はGrpcServicesをServerに指定する
クライアントサイド
◦ ServicesをClientに指定して、手動でプロジェクトに設定。
WPFのみ既知の問題で動作しないため、クラスライブラリ経由。
Grpc.Tools をNuGetから参照に追加
Protobug アイテムをcsprojファイルに追加
◦ GrpcServicesはServer, Client, Both(デフォルト), Noneを指定可能
<ItemGroup>
<Protobuf Include="Protos¥greet.proto" GrpcServices="Server" />
</ItemGroup>
- 19. まとめ
ASP.NET Core 3でgRPCがサポートされました!
• C#で公式パッケージでgRPCサービス、クライアントが開発できます
• .protoをがりがり書いていく + C#のクラス自動生成
ただ動かすだけならすぐできるけど…
• 運用を想定すると考慮していないといけないことたくさん
• ASP.NET CoreがというよりgRPCを使う場合に言えそう
• どこで動かすかが、なにをフロントのLBとするかが一番の課題?
• C#同士なら、MagicOnionでgRPCではなくC#で記述も検討