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
- Web Service入門 #1,透過VS 2005/2008 撰寫一個Web Service
- Web Service入門 #2,呼叫現成的Web Service 給我的程式來用
- Web Service入門 #3,[小改版] 呼叫現成的Web Service 給我的程式來用
- Web Service入門 #4,搭配 ADO.NET DataReader的範例
- Web Service入門 #5,搭配 SqlDataSource (DataSet模式) & 傳回值是一個DataSet (賀!兩百文達成)
如果沒有學過,請快點來報名(線上課程)底下網址內含優惠折扣
- WebAPI 與 Web Service(包含JSON的說明與使用) https://www.9vs1.com/go/?i=91cab887f744
- [.NET Core] WebAPI + JWT https://www.9vs1.com/go/?i=isxup56yvrb6
重點 在於他的 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/
沒有留言:
張貼留言