[gRPC] Google RPC 與 .NET Core專案,搭配JSON

2023/02/20閱讀時間約 7 分鐘
gRPC 就是 Google的 RPC(遠端程序呼叫)
搭配 .NET Core專案,可以分成 Server端(服務 Service)與 Client端(用戶端)
直接使用 Windows作業系統上的「完整版」Visual Studio操作會比較簡單
如果使用開源版、精簡版的 VS Code那就辛苦了,需要下指令才行…….
如果您以前有學過 Web Service / WCF / WebAPI的話,應該很快就能接受 gRPC
如果沒有學過,請快點來報名(線上課程)底下網址內含優惠折扣
重點 在於他的 ProtoBuf檔(附檔名 .proto)
您在這裡宣告了 (1) gRPC服務的定義、公開的方法
(2) Server與 Client之間 傳遞(Request / 要求)與回傳(Response( gRPC預設名為Reply) / 回應)
Visual Studio在建置專案時,可以幫您自動產生對應的 Service檔案(.cs檔)
不然的話,您就得自己去 Google的 gRPC官方網站,自己下載工具去產生對應的東西
//// (2-1)下載檔案 https://protobuf.dev/downloads/ ,透過 protoc.exe編譯 .proto檔 與 產生相關的檔案
//// (2-2) 把檔案解壓縮,放到您專案的 /Protos 目錄底下
//// 1. 裡面有google內建、提供的 /include/google目錄
//// 2. 但是!!我們自己額外下載的 google/api/*.proto檔案,也需要放到這個目錄下 才能完成編譯!!
//// (2-3) 執行以下指令。幫您產生相關的 .cs檔。
//// 指令最後面的檔名,請自己修改。 (. 表示現在的位置、現在的目錄。)
//// protoc -I=. --csharp_out=. greet2JSON.proto
//// C#工具會從 .proto 檔案產生程式碼。 針對伺服器端資產,會為每個服務產生 "抽象基底" 類型,以及任何訊息的類別。
** 學習管道 與 文章 **
我推薦這篇文章(入門很好用https://www.tpisoftware.com/tpu/articleDetails/2345
雖然 .NET Core 6.0才是長期支援版(LTS),
但有些相關的 NuGet套件必須搭配 .NET 7.0(並非 長期支援版)才能運作,所以我還是建議用新版本 .NET core吧
但,您想學習 gRPC搭配JSON的時候,微軟的說明又少了一點。 https://learn.microsoft.com/zh-tw/aspnet/core/grpc/json-transcoding?view=aspnetcore-7.0
必須安裝Nuget套件 Microsoft.AspNetCore.Grpc.JsonTranscoding 才能使用
還需要自己動手,去 google下載兩個 .proto檔放在自己專案裡面,才能運作。
我推薦這篇文章(入門很好用https://www.cnblogs.com/chenyishi/p/16874863.html
很多步驟可能因為版本或是時間的推進,出現變化
所以實際的操作總是漏東漏西、這裡壞掉、那裡卡住……讓我學習的很辛苦。
為什麼要用 gRPC呢?
其實也很簡單,因為客戶要求,我也得照做……
客戶要求這麼做,就是最大的原動力了!沒有我說三道四的餘地 :-)
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (ASP.NET MVC 約 115hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I

[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm  。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b

ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。

.........   facebook社團  https://www.facebook.com/mis2000lab  ......................
.........  YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
為什麼會看到廣告
2會員
113內容數
留言0
查看全部
發表第一個留言支持創作者!