顯示具有 JSON 標籤的文章。 顯示所有文章
顯示具有 JSON 標籤的文章。 顯示所有文章

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/

 

2021年5月1日 星期六

[ASP.NET MVC] 一個簡單 範例 介紹[FromBody]


這是ASP .NET WebAPI課程 ( https://9vs1.com/go/?i=323a87a3f716​) 的補充,
一個簡單的範例介紹[FromBody]。

假設User(Client端)從瀏覽器傳來JSON,WebAPI該怎麼接收並處理呢?



[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm

https://www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023

[ASP.NET Core MVC]第一天 免費課程 3小時完整試聽

https://www.dotblogs.com.tw/mis2000lab/2023/01/30/AspNetCore_MVC_First_Day_Free_20230130

從最早的 75小時MVC課程,目前已經延伸到 115小時,也包含了 .NET Core

.NET Core 6 MVC線上教學 - MIS2000Lab 課程大綱 與 試聽

https://dotblogs.com.tw/mis2000lab/2021/07/18/NET_MVC_Online_Free_Learning_mis2000lab 

購買完整MVC課程(超過115小時),限時六折優惠並免費加贈兩萬元「.NET Core升級課程」,請直接來信洽詢

(太便宜!太划算,不能公開) mis2000lab (at) yahoo.com.tw ; school (at) mis2000lab.net

2018年11月13日 星期二

[Youtube] JSON - 20分鐘 快速入門

Youtube教學影片 - JSON, 20分鐘 快速入門

這是 Web Service、WCF、WebAPI課程中的一小段。
JSON與jQuery都是我們使用網頁服務時 "必備"的知識......



這是 Web Service、WCF、WebAPI課程中的一小段(全長超過 6.5小時)。

JSON與jQuery都是我們使用網頁服務時 "必備"的知識,透過影片來分享、學習,絕對比自己慢慢看書更有效率。


影片網址

    https://www.youtube.com/watch?v=8-1Fu9gWpfY

    https://youtu.be/8-1Fu9gWpfY



課程購買與試聽   https://9vs1.com/go/?i=83d6700ef666
課程購買與試聽   https://9vs1.com/go/?i=83d6700ef666

[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm

https://www.dotblogs.com.tw/mis2000lab/2023/01/30/mis2000lab_MVC_onlineLearning2023

[ASP.NET Core MVC]第一天 免費課程 3小時完整試聽

https://www.dotblogs.com.tw/mis2000lab/2023/01/30/AspNetCore_MVC_First_Day_Free_20230130

從最早的 75小時MVC課程,目前已經延伸到 115小時,也包含了 .NET Core

.NET Core 6 MVC線上教學 - MIS2000Lab 課程大綱 與 試聽

https://dotblogs.com.tw/mis2000lab/2021/07/18/NET_MVC_Online_Free_Learning_mis2000lab 

購買完整MVC課程(一百小時),限時六折優惠並免費加贈兩萬元「.NET Core升級課程」,請直接來信洽詢

(太便宜!太划算,不能公開) mis2000lab (at) yahoo.com.tw ; school (at) mis2000lab.net


課程大綱

=== 入門與解說 ===
00:01:35  沒有UI畫面的「網頁」程式? 以「檔案上傳後,二進位內容存入資料表」為例
00:03:34  (1) Web Form的 ASHX 泛型處理常式
00:07:13  (2) MVC專案的 GetImage動作

00:12:06  沒有UI畫面的程式?例如:DLL檔、類別檔。
00:16:58  為什麼不採用 DLL檔、類別檔


=================================
00:26:02  === Web Service ===(MVC版)
00:27:29  Web Service (MVC版,Server端)
00:33:08  執行與檢視Web Service

00:37:30  Web Service (MVC版,Client端呼叫)
簡單的MVC入門與程式撰寫
00:41:32  Client端,加入服務參考
00:46:26  Client端,MVC的控制器與動作
00:58:53  Client端,產生檢視畫面

01:02:17  Case Study -- 第二個 Web Service範例 (MVC版,Server端)
01:05:10  第二個 Web Service範例 (MVC版,Client端)
01:06:39  Client端,MVC,加入ViewModel
01:12:42  檢視畫面(View)
01:13:37  第二個同名的動作(新增後的資料處理)
01:23:44  執行成果
01:26:29  最後的重點複習
01:28:43  加入服務參考,其實寫在Web.Config檔裡面


=================================
01:30:09  === Web Service ===(Web Form版)
01:31:18  開啟兩套Visual Studio,分別模擬Server端與Client端
01:32:47  Web Service範例 (Server端)
01:36:50  執行成果 (Server端)
01:40:28  Client端。如何呼叫人家寫好的Web Service
01:41:22  加入服務參考 (Client端)
01:44:21  Web Form (Client端)呼叫人家寫好的Web Service
01:51:39  (Client端) Web.Config檔

01:52:55  Case Study -- 第二個 Web Service範例 (Web Form版,Server端)
01:57:07  第二個 Web Service範例 (Web Form版,Client端)


=================================
=== WCF Service ===(MVC版)
02:06:22  WCF 簡介
02:13:15  撰寫第一個WCF服務 (Server端)
02:16:20  WCF服務的介面(interface)與服務契約、操作契約
02:17:24  WCF的類別,實作上一個介面
02:19:15  錯誤示範:未實作介面成員


簡單的MVC入門與程式撰寫


=================================
=== WCF Service ===(Web Form版)
02:38:57  建議打開兩套Visual Studio,各自模擬 Server與Client



=================================
02:58:58  === WebAPI ===(Server端)
      又遇見Post與Get


=================================
03:42:27  === 為什麼要先學 jQuery呢? ===
      先看看別人的產品,瞭解 jQuery (Client端)與網頁服務 (Server端)的互動。

=================================
04:10:46  === Client端,透過 jQuery呼叫網頁服務 ===
      透過 jQuery連結遠端、別人的網頁服務(Web Service與WCF)

=================================
05:13:57  === 錯誤範例(MVC版)Client端呼叫網頁服務 ===
      Web Form不會出現的錯誤,卻在MVC裡面現形。注意 ViewModel的細節。


=================================
05:34:07  === JSON,資料傳遞的簡易格式 ===
      從XML到JSON,改善了什麼?
      解析JSON並獲取裡面的資料。

=================================

=== WebAPI與 jQuery整合範例 ===


課程購買與試聽   https://9vs1.com/go/?i=83d6700ef666

課程購買與試聽   https://9vs1.com/go/?i=83d6700ef666

我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ
*********************************************************************************************
************************************************************(歡迎索取,免費申請)*****


2017年9月18日 星期一

[轉貼]jQuery與JSON的資料傳遞(網頁前段與後端的資料傳遞 - 序列化 Serialization) from kyleshen

今天在論壇上看見一則討論
點部落的另外一位網友 -- kyleshen 有兩篇文章很淺顯易懂(超連結在文章最後面),推薦給大家。

但在觀看這兩篇文章以前,可以從這些文章入門
========================================================================================
你不可不知的 JSON 基本介紹 ( from  AppleBOY )
   http://blog.wu-boy.com/2011/04/%E4%BD%A0%E4%B8%8D%E5%8F%AF%E4%B8%8D%E7%9F%A5%E7%9A%84-json-%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%B4%B9/
陳鍾誠老師的文章  http://ccc.nqu.edu.tw/wd.html#js:object


一圖解千言,看了立刻懂
    

===================================================
2014/5/14補充:
      VS 2013 Update 2推出以後,有提供 JSON file幫您做驗證,有助您撰寫JSON文檔
      詳見 http://blogs.msdn.com/b/webdev/archive/2014/05/12/announcing-new-web-features-in-visual-studio-2013-update-2-rtm.aspx


ASP.NET的朋友通常會用到 JSON.NET
JSON.NET 網站的首頁就有很簡單的範例,解釋這些事情:

(1).  Serialize JSON(我個人的註解:這就是組成、產生JSON格式的內容)

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };
 
string json = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "Expiry": "2008-12-28T00:00:00",
//  "Sizes": [
//    "Small"
//  ]
//}

(2).  Deserialize JSON(我個人的註解:這就是讀取JSON格式的內容)
string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject(json);

string name = m.Name;
// Bad Boys

(3). LINQ to JSON(我個人的註解:如果資料量太大,您可以動手寫LINQ-to-SQL去查詢)

JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));

JObject o = new JObject();
o["MyArray"] = array;

string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",
//     "2000-05-23T00:00:00"
//   ]
// }

(4). Validate JSON(我個人的註解:驗證JSON格式的內容,驗證後才能取用。XML格式也常常需要驗證,已符合Schema)

JsonSchema schema = JsonSchema.Parse(@"{
  'type': 'object',
  'properties': {
    'name': {'type':'string'},
    'hobbies': {'type': 'array'}
  }
}");

JObject person = JObject.Parse(@"{
  'name': 'James',
  'hobbies': ['.NET', 'LOLCATS']
}");

bool valid = person.IsValid(schema);
// true

JSON.NET的文件與範例都在這裡,相信您看了一次,就會知道怎麼用它
http://james.newtonking.com/json/help/index.html



完成上面的入門以後,相信後續的文章就能看得懂了。

微軟 msdn這個範例也很淺顯喔!
http://msdn.microsoft.com/zh-tw/library/hh923971(v=vs.85).aspx

點部落的另外一位網友 -- kyleshen 有兩篇文章
如何在前端傳遞JSON物件至後端接收


介紹如何從後端組出JSON物件,回傳至前端接收。

相關的文章可以參閱:


[入門] JSON.NET 入門  ( from johnny )


微軟MVP小歐也有撰寫序列化的三篇文章:

微軟 msdn文件 -- 序列化
http://msdn.microsoft.com/zh-tw/library/ms233843.aspx



除了上文提到的 JSON.NET之外
微軟自從 .NET 3.5起,也有推出 JavaScriptSerializer 類別

System.Web.Script.Serialization 命名空間包含可用來對 Managed 型別進行 JavaScript Object Notation (JSON) 序列化和還原序列化的類別。 它也提供了自訂序列化行為的擴充性功能。

類別說明
公用類別JavaScriptConverter為自訂型別轉換子提供抽象基底類別。
公用類別JavaScriptSerializer為具有 AJAX 能力的應用程式提供序列化和還原序列化功能。
公用類別JavaScriptTypeResolver提供實作自訂型別解析程式的抽象基底類別。
公用類別ScriptIgnoreAttribute指定 JavaScriptSerializer 不會將公用屬性或公用欄位序列化。 此類別無法被繼承。
公用類別SimpleTypeResolver提供 Managed 型別的型別解析程式。

[轉貼] ASP.NET -- Web Service (.asmx) & JSON

ASP.NET Web Service (.asmx) 要傳回 JSON格式
大力推薦這一篇 Web Service in ASP.NET (Return JSON and XML)
文章裡面使用了 JavaScriptSerializer類別 (命名空間: System.Web.Script.Serialization)

以前沒做過,但臨時被要求 ASP.NET Web Service 要傳回 JSON格式
找到網路上兩篇好文章,為自己做筆記。

如果您寫過 Web Service的話
直接看程式碼就會做了,淺顯易懂。只有很細微的修改:

點選圖片可連回原文出處....

文章裡面使用了 JavaScriptSerializer類別 (命名空間:  System.Web.Script.Serialization)


如果您的(Client端)要用 jQuery來接收
     對方(Server端)的 Web Service ( 傳回 JSON格式)

另外也有幾篇好文章,也推薦給大家:
(這一篇是用 ASP.NET 2.0做的,但跟上面介紹的方法雷同。)

 
 
******************************************************************************************
如果語法轉換有問題,可以參閱
******************************************************************************************

本網站以前的相關文章:
      有些朋友在開啟網站或專案時,選用 .NET 4.5.x (VS 2013) or .NET 4.6 (VS 2015)
      加入新項目時,找不到 Web Service (.asmx) ?????

      您可以改為「開啟」 .NET 4.0 or 4.5 (VS 2012)的網站或專案,就能在其中加入「Web Service (.asmx)」
      ASP.NET的 Web Service or WCF Service只是一個沒有「畫面」的 ASP.NET網頁...... 不要把它想得太難啦  :-)

Web Service入門 #2,呼叫現成的Web Service 給我的程式來用



[入門範例] ASP.NET Web Service (asmx) 與 jQuery AJAX

[轉貼]jQuery與JSON的資料傳遞(網頁前段與後端的資料傳遞 - 序列化 Serialization) from kyleshen


分享,讓知識更加偉大
謝謝每一位樂於分享的前輩  :-)



 
 
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net
................   facebook社團   https://www.facebook.com/mis2000lab   ......................
................   Google+   https://plus.google.com/100202398389206570368/posts ........
................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ
請看我們的「售後服務」範圍(嚴格認定)