国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用Spring.Services整合 thrift0.9.2生成的wcf中間代碼-復雜的架構帶來簡單的代碼和高可維護性

2019-11-17 02:41:55
字體:
來源:轉載
供稿:網友

用SPRing.Services整合 thrift0.9.2生成的wcf中間代碼-復雜的架構帶來簡單的代碼和高可維護性

  最近一直在看關于thrift的相關文章,涉及到的內容的基本都是表層的。一旦具體要用到實際的項目中的時候就會遇到各種問題了!

比如說:thrift 的服務器端載體的選擇、中間代碼的生成options(async asyncctp wcf 等等)、實現服務器端和客戶端的基礎框架的選擇、和承載各層之間的組合的ioc架構。

其實這些東西,內容還是蠻多的。可能大家在看了這篇文章對很多必須要對 thrift 的基礎做些普及才能看懂,還有就是windowsservices、wcf、spring.net!

  這里,我是用的C# 做服務器和客戶,當然,服務器端公布出的接口客戶端就不在乎你是什么語言的了。只需要thrift的編譯器生成對應中間代碼然后相應編寫代碼就ok了。

下面是我選擇的代碼結構:

服務器端的載體我選擇了windows services ,編譯器肯定是用官方最新的thrift0.9.2(在代碼生成的時候options我選擇了wcf), 至于Thrift 的基礎框架,我選擇的是.net的 Thrift 和Thrift.Server和Thrift.Client (客戶端可以支持多個服務器端的配置這正式我要找的東西呀),Ioc框架,其實現成的注入框架比較多,什么autoface,unity,spring.net等等;其實最終我們選擇這些依賴注入的目的一定要清楚:(個人觀點) 讓我們的架構更松散、代碼更美觀、代碼量更少、高可復用性、更容易維護。其實無論的的選擇是什么,目的清楚了你的選擇就一目了然了。這里我的選擇肯定就是spring.net了,因為它有對Wcf,webservice,windowsservice,remoting等 的專門支持Spring.Services。另外的原因就太多了,讓我省去了不少代碼,讓原本臃腫Wcf的代碼變得結構清晰,另外它也統一了所有項目的依賴注入。

其中thrift 的代碼生成命令是:thrift -gen csharp:wcf *.thrift

現在還看不到spring 的內容,應該它的作用是將松散的代碼最后組合成一個成品。所以會涉及很多的spring配置。而且最終只會在ServerHost 項目的app.config 中可以看到。

當然里面的代碼相當的少,因為spring.services里面做了整合,且一次封裝,ServerHost里面的代碼就不用改了,你 唯一要做的就是如何將各個模塊用配置整合在一起了。

  從現在的結構視乎看上去很簡單,其實不然,要真正將它們整合在一起要做很多配置和調試工作

下面看看生成的dll文件就知道了:

這還只是dll文件,相信用過spring的都知道。spring在代碼和結構上帶來了福音,但是配置文件的編寫和整個框架的調試和融通卻是一件頭痛的事情。

不過,隨著.net 的開源,對項目架構和可擴展性,分布式,可維護性要求也在慢慢體現出來。

所以做.net 的同學們,不要只看到.net的敏捷開發,要看到它有更宏偉的目標(分布式,云層存儲,搜索引擎等等);而要達成這樣的目標,我們必須重視各種第三方開發的中間件,不管它的原型是java開發的,php開發的,還是其他語言開發的。最重要的是它能帶來我們想要的,它能讓我們程序不在難以維護,讓系統像一個嬰兒一樣可以逐步成長,而不是其他語言所取代,或是各種重復開發。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九江市| 揭东县| 焦作市| 瑞金市| 临沧市| 濮阳县| 长治市| 阳高县| 武安市| 桃园县| 普兰县| 东乌珠穆沁旗| 黄陵县| 岗巴县| 大同县| 囊谦县| 子洲县| 固阳县| 丘北县| 定日县| 金溪县| 罗定市| 荃湾区| 体育| 台山市| 五莲县| 正宁县| 探索| 祁连县| 利辛县| 文昌市| 天全县| 溧阳市| 永靖县| 佛山市| 新沂市| 闽清县| 宝坻区| 连南| 诏安县| 瑞金市|