2020年的年終總結(jié)像往年一樣如期而至荔燎,今年是個特殊的年份耻姥,疫情爆發(fā),全國人民眾志成城有咨,支援武漢琐簇,把武漢疫情完美控制,接下來經(jīng)歷了一個整年的抗疫生活摔吏,見證了一個個門店的倒下鸽嫂、站起纵装,一個個公司申請破產(chǎn)、又一個個公司申請登記注冊据某。這一個年橡娄,見證了太多的悲傷、凄涼也感受到了太多的感動于歡樂癣籽,2020年注定在歷史上留下濃墨重彩的一個紀年
2020年對于我挽唉,一個勤奮耕耘的小碼農(nóng),也是意味深重的一年筷狼,因為經(jīng)歷的一些事瓶籽,讀了一些書,對我的認知發(fā)生了更改埂材。
寫下總結(jié)的時候塑顺,也給自己留個寄語
"希望十年后,我依然能夠堅持在寫博的這條路上
言歸正傳俏险,總結(jié)一下今年在技術上學習的內(nèi)容以及個人的心得
從Framework Winfrom 轉(zhuǎn)型.NET CORE5.0 WPF
背景
作為一個.NET起家的桌面應用程序員严拒,常年的Winfrom開發(fā),編碼的日常就是竖独,控件拖拽裤唠、CRUD等相關工作。 Winform一直是Microsoft的大本營莹痢,在網(wǎng)頁端是被Java甩下十幾條街了种蘸,但是隨著.Net Core的發(fā)布,GitHub上的.NET CORE的開源竞膳,使得.NET CORE 愈發(fā)強勁航瞭。在.NET CORE5.0 發(fā)布中,增加了3.x之前一直沒有的Winfrom 平臺顶猜、WPF平臺沧奴,追隨Microsoft的腳步,早早在2019Preview內(nèi)測的時候长窄,轉(zhuǎn)戰(zhàn)到.NET CORE5.0滔吠。
原因
從Winfrom轉(zhuǎn)WPF的起因還是因為數(shù)字可視化概念的提升,傳統(tǒng)的Winfrom雖然在功能性上無比優(yōu)越挠日,但是隨著用戶對視覺效果要求的日益增強疮绷,WPF平臺下的開發(fā)成為了必然渠道。
WPF開發(fā)按照MVVM框架嚣潜,將UI和業(yè)務邏輯分開冬骚,當然在Winfrom中同樣適配,但是這個概念沒有像WPF開發(fā)中提出的這么強烈
過程
1、設計規(guī)范
談到數(shù)字可視化的概念只冻,不得不提的就是設計規(guī)范庇麦,TOB雖然一直而言,對審美的要求不是太高喜德,但是隨著同類型產(chǎn)品的日益美化崖堤,在競爭的驅(qū)使下手趣,美恳谎,成為了軟件不可或缺的一環(huán)節(jié)
在市面上面對琳瑯滿目的設計規(guī)范虹菲,在這里推薦一款我應用的非常好用的設計規(guī)范
MaterialDesign,該設計規(guī)范提供的樣式大氣磅礴,實用性很強
GitHub開源鏈接
轉(zhuǎn)場效果
<center>
</center>
細節(jié)動畫
<center>
</center>
2萌衬、MVVM框架選擇
市面上有多種的開源的MVVM框架饮醇,但是每個框架都有各自的特色,列出如下秕豫,本人在深入了解比較后使用MVVM Light Toolkit 和Microsoft Prism兩種朴艰,MVVMLight 是輕量級應用,應對小型應用開發(fā)足以馁蒂,Prism框架前身是Composite Application Guidance for WPF and Silverlight呵晚,網(wǎng)上大量資料說復雜,其實理解進去沫屡,很簡單,這里有一篇關于Prism的介紹撮珠,看完基本可以入門了沮脖。
MVVM框架羅列如下:
- MVVM Light Toolkit
- Microsoft Prism
- Calcium SDK
- Caliburn
- Caliburn
- Silverlight.FX
- nRoute:
有了設計規(guī)范、MVVM框架芯急,WPF的開發(fā)在屬性Xaml語言的基礎上勺届,就可以揚帆起航了。
GUI胖客戶端瓶頸問題解決
背景
應用于工業(yè)領域的GUI娶耍,從Winfrom轉(zhuǎn)到WPF免姿,在視覺效果上取得了很大成功,但是僅僅視覺效果的提升榕酒,那是遠遠不夠的胚膊。熟悉工業(yè)領域的小伙伴們都知道,OPC是工業(yè)領域應用在廣泛不過的自動化控制協(xié)定想鹰,OPCServer 點的訂閱數(shù)量有瓶頸紊婉,客戶端訂閱數(shù)量的增加會影響到OPCServer的性能,過多的訂閱會導致OPCServer宕機辑舷。同時喻犁,胖客戶GUI應用于工業(yè)領域,對數(shù)據(jù)的刷新要去很高,意味著數(shù)據(jù)庫輪詢的頻次較高(數(shù)據(jù)庫主動推送的問題肢础,我們可以放在其他地方討論)
解決方案
傳統(tǒng)的CS很少有像BS那樣前后端分離明明白白的还栓,傳統(tǒng)CS中Client與Server部分分離,或者少分離的問題在這里就凸顯尖銳化传轰。
為解決這種情況剩盒,Server端分離,采用多個客戶端訪問一個Server,這個Server作為OPCServer的代理服務器路召,降低OPCServer點的訂閱數(shù)成為了解決方案的核心勃刨。
做Server,常見的Webserver股淡、WCF是可以選擇的身隐,但是當下大Web的趨勢,使得我們按照Restful API的方式建立接口唯灵,更為值得推薦
使用 .NET CORE5.0 創(chuàng)建Web API 成了不二途徑贾铝。而使用 .Net Core 做Server,數(shù)據(jù)的壓力可以通過互聯(lián)網(wǎng)常用的負載均衡埠帕、微服務垢揩、Grpc通訊、MQ敛瓷、Dock叁巨、K8s等相關技術的引入,.NetCore 完美支持這些應用方式呐籽。
技術介紹
使用 .Net Core 創(chuàng)建Web API 和常用的CS創(chuàng)建工程還是有蠻多區(qū)別,通過下述兩個文檔說明基本可以入門 .NET CORE.
具備入門知識以后锋勺,.NET CORE 開發(fā)不得不提的一個框架ABP,ABP是ASP .NET Boilerplate的簡稱狡蝶,ABP是一個開源且文檔友好的應用程序框架庶橱。ABP不僅僅是一個框架,它還提供了一個最徍實踐的基于領域驅(qū)動設計(DDD)的體系結(jié)構(gòu)模型贪惹。
負載均衡苏章、Dock、K8s涉及部署技術
微服務奏瞬、Grpc枫绅、MQ編碼實現(xiàn)技術,ABP提供了框架丝格,為這些應用開發(fā)大大縮減了時間
通過如下的ABP基礎知識撑瞧,可以帶你快速ABP入門
技術突破
在這邊文章發(fā)表之前,技術介從來沒有使用過 MaterialDesign + Prsim + ABP 三大框架結(jié)合的開發(fā)工作显蝌,作為嘗螃蟹第一人预伺,很開心將今年的技術融合在這里與大家分享订咸,希望我的嘗試,能夠幫助到大家酬诀!