.Net業務搭配實用技術棧

前言

      昨天有篇文章在討論webform的設計思路,我已經四五年不用webform了,雖然它也提供了HttpModule和httphandle來處理請求,提供了通常處理程序ashx來簡化處理流程,但依然會想起它的form runat=server,想起註冊客戶端腳本,想起那堆服務器控件,還有著名的GridView72變。但即便不用服務器控件,它也能提供很強大的功能。前端

      後來微軟提供了另外一套解決方案asp.net mvc 。其實剛開始我並不習慣,一是由於思路轉變,新知識須要學習。二是由於當時作報表用rdlc,但mvc不支持。rdlc對於數據的處理很強大,但瀏覽器兼容性太差,用於winform客戶端效果仍是很棒的。mvc用熟後,webform再也沒用過了。我沒再用過的東西多了,但不否定它們依舊強大,也足夠支撐你龐大的業務。vue

C/S端的話,winform和wpf依舊應該很流行。這塊我作的少,理念上大同小異。mysql

無心浪費時間去爭論誰好誰壞,能爲你掙錢的都是好框架。閒話少說,書歸正傳。今天我根據以往接觸或將來想要進修學習的業務規模,來總結下對應的技術棧,來爲將來準備,面向將來思考。linux

第一種類型企業官網

性質:訪問量少,網頁功能至關簡單。通常爲首頁,公司介紹,產品介紹,聯繫咱們等。web

對應解決方案:redis

這類可推薦一些開源CMS,無需關心後臺,設計好頁面,只修改前端頁面就行。sql

若是打算本身開發,見幾個表存取下完事。不要想太複雜的架構。簡單來,快速交付。mongodb

數據庫:可採用access,SQLite或sqlserver,mysql都行。docker

.net須要儲備:瞭解ado.net,dapper,泛型,反射等。瞭解數據庫操做經常使用語句。數據庫

第二種類型流量內容網站

整個網站屬於新聞類型,有較多內容分類,日均訪問量一萬如下。每小時平均一千量。相對於iis每秒成百上千處理數,這點量絲絕不成壓力。能日均一萬訪問量,那說明這個站在小圈子內有很大名氣了。

對應解決方案:

仍然推薦開源或自研的cms,通常方案首頁和分類定時靜態化或啓用緩存,明細頁直讀數據庫或通過緩存。

數據庫:sqlserver,mysql,mongodb

.net儲備:

定時任務如hangfire,quartz.net,

Cache系列(頁面緩存,httpruntime緩存等),

安裝windows服務topshelf

經常使用的設計模式等。

數據庫增量備份還原與全量備份還原。數據庫索引優化。

uv和pv等了解。

搜索引擎優化知識必要了解。

第三種類型小流量業務管理系統

小流量業務管理系統的特色是業務較複雜,但用的人數可能控制在幾人幾十人。但業務單據一每天下來也很是多。有不少公司每一年底或年初會清數據,聚集到數據倉庫,新的一年新數據。我以前待過的一家集團超市公司有幾個分店,業務系統基於powerbuilder開發,用的是db2數據庫,天天營業額數據也挺大的。天天十點有日結,月底有月結。

對應解決方案:

這裏通常是購買商業軟件或者基於產品二次開發了,徹底從頭開發須要投入不少時間和費用。

數據庫:sqlserver,mysql,postgresql

.net儲備:

數據庫存儲過程,函數,優化,關聯表等。

數據庫性能重中之重。

數據庫每幾分鐘增量備份,一週全備份。讀 寫分離也能夠在這時介入。

Redis能夠考慮引入。

設計模式有須要的場景。

在計算報表和一些狀況下,多線程,並行處理數據也會考慮引入。

Dapper,EF開始了用武之地,幹起來!

依賴注入,aop 能夠考慮引入。

可考慮引入前端vue,element。

以上考慮部分,根據業務規模和使用頻數來決定是否引入。業務量過小時,引入多餘架構反而有些笨重。

第四種類型百花齊放互聯網和大數據量項目

性質:面向c端或B端。訪問量大,業務多。雖然還有不少細分,但面向了互聯網,咱們就時刻準備着將來它能爆發式迎接大批量數據,咱們的應用要高可用,健壯!時刻準備着,爲將來!哪怕不少互聯網公司生存週期只有幾年!

數據庫:Mongodb,mysql,postgresql

.net儲備:

數據庫集羣。

Mongodb集羣,分片等。

必不可少,Redis緩存,緩解數據庫壓力。須要瞭解redis運行機制,緩存穿透和緩存雪崩等。

必不可少,消息隊列rabbitmq或Kafka,多業務系統之間消息傳遞,解藕。須要瞭解rabbitmq運行機制和amqp協議。

很重要 Elastic-search,Es能夠經過mongo-connector實現同步mongodb數據,是一個數據極快的搜索引擎。另外能夠用ELK搭建日誌分析系統,這塊我還須要練練手,須要瞭解Es如何應用,部署,問題排查等。

理論積累之微服務:微服務api網關,監控,服務發現,熔斷降級,限流等。可參考微軟olreans,Akka.net,ocelot,appllo,前些天過千的surging。有源碼的常分析借鑑,理解透。

理論積累之TDD:單元測試,集成測試,自動化測試。

理論積累之CI/CD:須要熟練掌握jenkins配置。熟悉docker生態工具用法。

理論積累之領域驅動:微服務怎麼拆?怎麼微?服務之間如何聯繫?領域驅動設計爲你提供了大量的建議,雖然不會都完美,但能夠爲你提供思路。領域,子域和限界上下文,領域服務,事件驅動,CQRS責任分離,貧血富血模型。我如今正在抽時間看這個,期待能有所應用。

理論積累之.net

並行編程,異步編程。多線程安全等。

網絡編程socket,orleans的網關鏈接就是基於socket,在之上又包裝了一層gateway鏈接。socket和tcp/ip通訊息息相關,熟練了這個,其餘語言一樣思路都會了。不少RPC框架也是基於socket,是網絡鏈接的源泉。

.netcore mvc的通用主機,內置kestrel,中間件等,單元測試,docker運行等須要深刻了解。

理論積累之Linux:

.netcore最重要特性是跨平臺,之前對linux不熟悉的部分,須要儘快熟練,要變成一個老手。

業務演練之單點登陸

業務演練之秒殺

業務演練之短信限發

業務演練之實現消息隊列模型

業務演練之實現分佈式通訊模型

業務演練之搭建微服務框架模型。

後語

粗糙了列了一堆技術棧,好像都見過,深刻一問總卡殼,我以爲仍是寫的文章太少。不寫出來,印象就不會太深入。我最近已經開啓了兩日一更,不知道能堅持多久,並且太散。先繼續積累吧,之後能不能寫成系列性的文章再說。收拾心情再出發!

相關文章
相關標籤/搜索