Thrift應用比較普遍,這裏不介紹Thrift的基本概念和使用。Thrift對.net支持的很好,但自從.net core誕生引來,我曾屢次關注Thrift的官方網站,看看對.net core是否提供支持。今天在看Thrift在Github上的代碼鏡像時,發現已經有netcore的實現了。地址:https://github.com/apache/thrift/tree/master/lib/netcore.可是看到介紹的第一段文字,難免以爲遺憾「Thrift client library ported to Microsoft .Net Core」,難道只支持Client?因而搜了不少資料,並無太多介紹,甚至Client的Demo也沒有。因而嘗試翻看代碼,彷佛有相關的Server實現,多是尚未正式發佈的緣故。git
無論怎麼樣,動手試一下。github
下載Thrift的netcore部分的代碼,是一個.net core的項目,編譯經過。apache
下載Thrift compiler for Windows代碼生成工具,thrift-0.11.0.exe,可到官網下載。服務器
編寫thrift IDL文件:工具
namespace netcore ThriftCore service Calculator{ void ping(), i32 add(1:i32 num1, 2:i32 num2) }
在命令行中執行「thrift-0.11.0.exe --gen netcore tutorial.thrift」,會在目錄下生成「gen-netcore\ThriftCore\Calculator.cs」。這部分使用與之前一致,只是語言部分須要指定netcore,而不是csharp。完成後,將Calculator.cs加入到項目中,開始編寫服務器和客戶端。網站
最後驗證結果:spa
Thrift可以實現.net core下的Server和Client。根據Github上的描述,.net core在部分功能上支持不全面,期待早日有穩定版的發佈。.net