2023年2月20日 星期一

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

 gRPC 就是 Google的 RPC(遠端程序呼叫)

搭配 .NET Core專案,可以分成 Server端(服務 Service)與 Client端(用戶端)

直接使用 Windows作業系統上的「完整版」Visual Studio操作會比較簡單

如果使用開源版、精簡版的 VS Code那就辛苦了,需要下指令才行…….


 影片網址 https://youtu.be/RjlCYX3QY8Q


如果您以前有學過 Web Service / WCF / WebAPI的話,應該很快就能接受 gRPC

我提供的簡報(說明)  https://www.slideshare.net/mis2000lab/soarest-web-servicewcfwebapi  

如果沒有學過,請快點來報名(線上課程)底下網址內含優惠折扣

 

重點 在於他的 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://learn.microsoft.com/zh-tw/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-7.0&tabs=visual-studio 

我推薦這篇文章(入門很好用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

線上課程教學,遠距教學 (Web Form 約 51hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程教學,遠距教學 (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/

 

沒有留言: