.Net Web開發技術棧

来源:http://www.cnblogs.com/1996V/archive/2017/10/25/7700087.html
-Advertisement-
Play Games

有很多朋友有的因為興趣,有的因為生計而走向了.Net中,有很多朋友想學,但是又不知道怎麼學,學什麼,怎麼系統的學,為此我以我微薄之力總結歸納寫了一篇.Net web開發技術棧,以此幫助那些想學,卻不知從何起的朋友。 本文整理了當前企業web開發中的管理系統,商城等系統的常用開發技術棧。 C#常見運算 ...


有很多朋友有的因為興趣,有的因為生計而走向了.Net中,有很多朋友想學,但是又不知道怎麼學,學什麼,怎麼系統的學,為此我以我微薄之力總結歸納寫了一篇.Net web開發技術棧,以此幫助那些想學,卻不知從何起的朋友。

本文整理了當前企業web開發中的管理系統,商城等系統的常用開發技術棧。

C#常見運算符

  • 一元運算符(+、-、!、~、++、--)
  • 算術運算符(*、/、%、+ 、 – )
  • 移位運算符(<< 、>> )
  • 關係和類型測試運算符(==、!=、<、>、<=、>=、is 和 as)
  • 邏輯運算符(&、^ 和 | )
  • 條件邏輯運算符(&& 和 || )
  • 空合併運算符(??)條件運算符(它也稱為三元運算符,?: )
  • 賦值運算符(=、+=、-=、!=、/=、&=、|=)

C#常見語句塊

  • Try(用於捕捉在塊的執行期間發生的各種異常)
  • Checked 語句和 Unchecked(用於控制整型算術運算和轉換的溢出檢查上下文)
  • Lock(獲取某個給定對象的互斥鎖,執行一個語句,然後釋放該鎖)
  • Using(獲取一個或多個資源,執行一個語句,然後釋放該資源)

C#常見類修飾符

  • abstract抽象類
  • sealed密封類
  • static靜態類
  • partial分部修飾
  • 訪問修飾符(public、protected、internal 和 private )

C#常用預處理指令

  • #region:指定一個可展開或摺疊的代碼塊
  • #endregion:它標識著 #region 塊的結束
  • #define: 它用於定義一系列成為符號的字元
  • #undef:它用於取消定義符號
  • #if、#else、#elif、#endif:用於創建複合條件指令

委托

  • Delegate、Lambda、Action、Func、Predicate、事件EventArgs

泛型

  • 泛型類、泛型方法、泛型約束、泛型介面、逆變與協變

Linq

  • Linq to sql / Linq to DataSet / Linq to Object / Linq to Xml
  • 迭代器yield與懶載入Lazy

反射

  • 反射拼接SQL語句、反射轉換Json/Datatable...、序列化反序列化(ISerializable)、反射動態調用dll、反射動態配置擴展

常用類

  • IO類、Json.NET、Http輔助類(HttpClient、Restsharp、WebClient、WebRequest)、爬蟲類、文件壓縮類、條形碼 、金額、時間、Assembly等類的實現

常用介面掌握

  • IEnumerable
  • IEnumerator
    • 實現Foreach
  • .
  • ICollection
  • IList
    • 集合
  • .
  • IComparable
  • IComparer
    • 實現比較方法
  • .
  • IDictionary
    • 鍵值對
  • .
  • IDisposable
    • 釋放非托管資源

數據層

  • 原生的ADO.NET
    • Connections. 用於連接和管理針對資料庫的事務。
    • Commands. 用於發出針對資料庫的SQL指令。
    • DataReaders. 用於從SQL Server數據源讀取只進流的數據記錄。
    • DataSets. 用於針對結構型數據,XML數據和關係型數據的存儲,遠程處理和編程。
    • DataAdapters. 用於推送數據到DataSet,並針對資料庫協調數據。
    • ...
  • ORM框架

非同步和多線程

  • Thread/ThreadPool/Task/Await/Async/Parallel...
    • 多線程
      • 多線程中的同步、併發、異常等處理
      • ...
    • TPL非同步
      • 非同步編程模型(APM)
      • 基於事件的非同步模式(EAP)
      • ...

數據結構

  • 演算法
  • 線性表
  • 二叉樹
  • 棧與隊列
  • ...

ASP.NET Mvc框架

  • Routing路由
  • Binding模型綁定
    • new ChildActionValueProviderFactory(),
    • new FormValueProviderFactory(),
    • new JsonValueProviderFactory(),
    • new RouteDataValueProviderFactory(),
    • new QueryStringValueProviderFactory(),
    • new HttpFileCollectionValueProviderFactory()
    • ...
  • AOP面向切麵(常用特性(Attribute)及自定義特性)
    • 元數據
    • 驗證基類System.ComponentModel.DataAnnotations.ValidationAttribute
      • System.ComponentModel.DataAnnotations.CompareAttribute
      • System.ComponentModel.DataAnnotations.CustomValidationAttribute
      • System.ComponentModel.DataAnnotations.DataTypeAttribute
      • System.ComponentModel.DataAnnotations.MaxLengthAttribute
      • System.ComponentModel.DataAnnotations.MinLengthAttribute
      • System.ComponentModel.DataAnnotations.RangeAttribute
      • System.ComponentModel.DataAnnotations.RegularExpressionAttribute
      • System.ComponentModel.DataAnnotations.RequiredAttribute
      • System.ComponentModel.DataAnnotations.StringLengthAttribute
      • System.Web.Security.MembershipPasswordAttribute
    • .
    • Filter
      • IAuthenticationFilter(驗證過濾器 MVC5)驗證是否合理請求,是否合理用戶
      • IAuthorizationFilter(授權過濾器)
        • AuthorizeAttribute
        • RequireHttpsAttribute
        • ValidateAntiForgeryTokenAttribute
        • ChildActionOnlyAttribute
        • ...
      • IActionFilter(動作過濾器-前-後)
        • ActionFilterAttribute
        • ...
      • IResultFilter(結果過濾器-前-後)
        • ActionFilterAttribute
        • ...
      • IExceptionFilter(例外過濾器)
        • HandleErrorAttribute(在FilterConfig就已被註冊)
        • ...
  • RazorViewEngine視圖引擎
  • WebApi

資料庫技術

  • 資料庫服務端、客戶端、圖形界面管理工具、資料庫語言(PL-sql,T-sql,sql)、資料庫安全等概念
  • 視圖、存儲過程、游標、中間表、觸發器、計劃任務等常用技術
  • 資料庫分庫、拆表、分散式、集群、備份、故障調控等方案
  • 資料庫三大範式與反範式
  • RBAC(Role-Based Access Control,基於角色的訪問控制)許可權模型
  • 資料庫機制
    • 索引
    • 存儲引擎
    • 事務
      • 四大特性(ACID)
        • 原子性 Atomicity
        • 一致性 Consistency
        • 隔離性 Isolation
        • 持續性 Durability
      • 併發產生的問題
        • 臟讀
        • 幻讀
        • 不可重覆讀
        • ...
      • 解決方案—隔離級別
        • 讀未提交Read uncommitted
        • 讀已提交Read committed (mssql、oracle)
        • 可重覆讀Repeatable read(mysql)
        • 串列化Serializable
    • 鎖機制
      • 種類
      • 粒度
      • 加鎖方式
      • ...
  • 資料庫輔助工具:Power Designer、EZDML、ER Studio、Rose、Microsoft Visio...

關係型資料庫

  • Oracle
    • 最貴,功能最多,不開源,最安全...
  • Mysql
    • 免費,功能一般,開源,相對不安全...
  • MsSql(SqlServer)
    • 中等貴,支持平臺最少,不開源,使用最方便...
  • PostgreSQL
    • 與其他關係型資料庫相比,PostgreSQL獨特的地方是它支持高度需要的、完整的面向對象以及關係型資料庫的功能
  • Sqlite
    • 一個自包含的、基於文件的資料庫,可移植性非常好
  • ...

非關係型資料庫(Nosql-Not Only Sql)

  • MongoDb:是一個基於分散式文件存儲的資料庫
  • Hbase:屬於hadoop(分散式系統)生態圈的組件,能存儲海量數據
  • Cassandra:優異的列式存儲NoSQL
  • Redis:基於記憶體的數據存儲系統,支持多種類型存儲,適用於高併發場合
  • Memcache:基於記憶體的數據存儲系統,高性能分散式記憶體緩存服務,適用於高併發場合
  • ...

面向服務架構SOA

  • 通過服務整合來解決系統集成的一種思想
  • .
  • WSDL
    • Web Services Description Language是一個用來描述Web服務和說明如何與Web服務通信的XML語言。為用戶提供詳細的介面說明書
  • UDDI
    • Universal Description,Discovery and Integration統一描述、發現和集成, 提供一種發佈和查找服務描述的方法。UDDI 數據實體提供對定義業務和服務信息的支持。
  • SOAP
    • Simple Object AccessProtocol,簡單對象訪問協議,基於XML 和 HTTP 用於在應用程式之間進行通信的一種通信協議
      • Web Services:基於SOAP協議,數據格式是XML
      • Wcf/Wcf Rest:可以不依賴於IIS,基於SOAP,支持多種通信協議,但配置繁瑣
    • 測試工具:SoapUI...
  • REST
    • REpresentational State Transfer ,表現層狀態轉移,是一種架構風格,提供了設計概念原則和約束。
    • RESTful
      • 滿足這些原則和條件的就稱RESTful架構
      • Web API:RESTful的實現,一個用於構建HTTP服務的框架
    • 測試工具:Fiddler、Postman、Jmeter...
  • 微服務
    • 是SOA的一種實現,更側重於組件化和服務化
  • JSON-RPC
    • Remote Procedure Call Protocol,遠程過程調用協議,高性能二進位協議,比RESTful要高效(類似於Web Services的使用風格)

面向對象OOP

  • 三大基本特性
    • 繼承,封裝,多態
      • 抽象類abstract和介面interface的各種用法及實現
      • Virtual、abstract、override、New、extern等關鍵字的含義及用法
      • 設計模式的應用
      • ...
  • 六大基本原則(高內聚,低耦合)
    • 單一職責原則SRP(Single Responsibility Principle)
    • 開放封閉原則OCP(Open-Close Principle)
    • 里式替換原則LSP(the Liskov Substitution Principle)
    • 依賴倒置原則DIP(the Dependency Inversion Principle)
    • 介面分離原則ISP(the Interface Segregation Principle)
    • 最少知識原則(Least Knowledge Principle)(也稱:迪米特原則)
  • 23種設計模式
    • 創建型
    • 結構型
    • 行為型

存儲

  • 瀏覽器自身緩存技術(cache control,與伺服器約定,js /css等緩存)
  • Session(SessionId)(會話,為了彌補http協議的無狀態特性)
  • Cookie(瀏覽器存儲,為了彌補http協議的無狀態特性)
  • Localstorage(Html5新特性 瀏覽器本地存儲,為了彌補Cookie存儲不足)
  • Application(伺服器全局變數)
  • Static(依賴於IIS,進程回收會丟失)
  • Cache(伺服器緩存)

軟體架構

  • MVC
    • ASP.NET MVC
  • MVP
    • 事件模型
      • ASP.NET Web form
        • System.UI.Page
        • ViewState
        • ...
      • Winform
  • MVVM
    • 在.Net中(主要應用於WPF、Silverlight、WP7)
      • Prism - Brian Lagunas微軟產品經理,微軟MVP,一個跨平臺的桌面和移動MVVM開發框架,開源。
      • Catel - Catel是一個專註於MVVM(WPF,Silverlight,Windows Phone和WinRT)和MVC(ASP.NET MVC)的應用程式開發平臺。 Catel的核心包含一個IoC容器,模型,驗證,紀念,消息中介,參數檢查等。
      • ...
    • 在前端中
      • Angular
      • Vue
      • Knockout
      • React
      • ...

平臺

  • MONO
  • .Net Core
    • CoreCLR
    • CoreRT for .NET Core
    • .NET Core Base Class Library
    • ...
  • .Net Framework
    • .NET Framework Base Class Library(BCL基類庫)
      • System.Web(ASP.NET的核心)
        • ASP.NET與IIS管道模型:
          • 經典模式IIS5/IIS6:
            • IIS管道模型
            • ASP.NET管道模型
            • ...
          • 集成模式IIS7:
            • HttpContext
            • ...
          • IIs的常用功能及使用及配置:
            • 請求篩選、失敗請求跟蹤等
          • .Net MVC生命周期
          • Httphandler、HttpModule、Globar的編寫及應用...
          • ...
      • OWIN解耦
        • Open Web Server Interface for .NET,定義了一種中間件在管道中用於處理請求和相關響應的標準方式,是種規範,用於解耦Web 伺服器和Web 應用程式。
        • OWIN的實現:Katana(由微軟早期開發的開源OWIN組件集合)
          • OWIN Layer(定義的一系列層)
            • Application(應用程式)
            • Middleware(中間件)
              • Nanacy.Owin
              • WebApi
              • Signalr
              • FubuMVC
              • Simple.Web
              • DuoVia.Http
              • ...
            • Server(服務)
              • Microsoft.Owin.Host.SystemWeb
              • Microsoft.Owin.Host.HttpListener
              • Helios
              • (Asp.Net5以後就是Microsoft.AspNet命名空間)
              • ...
            • Host(宿主)
              • IIS
              • Custom Host
              • OwinHost.exe
              • Node.Js(connect-owin)
              • ...
    • .NET CLR(Commen Language Runtime)公用語言運行時
      • 核心:公共語言基礎(Common Language Infrastructure,CLI),提供了定義的規範介面、與工具
      • 1.項目源代碼被 .Net Framework編譯器( csc , C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe )編譯成EXE或者是DLL文件。
      • 2.被CSC編譯後的EXE/DLL文件叫做 IL文件。Intermediate Language (IL)中間語言,在.Net中,稱之為 Microsoft IL(MSIL)微軟中間語言(右鍵對項目進行生成的時候實際上就是這一步)
      • 3.CLR會將MSIL通過JIT(Just In Time)編譯器進行第二次編譯,將其編譯成本地平臺的CPU指令。(如果擁有能在Linux運行的CLR,代碼就能跨平臺運行)
      • .
      • C#源碼——(CSC編譯器)——MSIL文件(dll/exe)——(CLR中的JIT編譯器)——CPU執行

Http協議

  • OSI網路通信
    • 物理層
      • 以二進位數據形式在物理媒體上傳輸數據
    • 數據鏈路層
      • 傳輸有地址的幀,錯誤檢測功能
    • 網路層
      • 為數據包選擇路由
      • IP,ICMP,RIP...
    • 傳輸層
      • 提供端對端的介面
      • TCP、UDP...
    • 會話層
      • 建立或解除與其它接點的聯繫
    • 表示層
      • 數據格式化,代碼轉換,數據加密
    • 應用層
      • HTTP,FTP,SMTP...
  • Http狀態碼
    • 1xx:信息提示,表示請求已被成功接受,繼續處理,請求範圍100~101
    • 2xx:成功,伺服器成功響應請求,請求範圍200~206
    • 3xx:重定向,請求範圍300~305
    • 4xx:發送一些伺服器無法受理的東西
    • 5xx:一條有效請求,但伺服器掛了
  • 常用HTTP消息頭(Http Header)
    • Request請求頭
      • Authorization:Basic base64646464646464=== (驗證)
      • Accept-Encoding:gzip (指定瀏覽器可以支持的web伺服器返回內容壓縮編碼類型)
      • Cache-Control:max-age=60(指定請求和響應遵循的緩存機制,max-age為 當前60秒內再次訪問不會去伺服器請求)
      • Cookie:ZJF(該請求功能變數名稱下的所有cookie值一起發送給web伺服器)
      • Content-Type:application/x-www-form-urlencoded(是以什麼格式來傳輸,請求的與實體對應的MIME信息)
      • Accept:text/plain(指定客戶端能夠接收的內容類型)
      • Range:bytes=0-999(常用作斷點續傳,設置請求的指定範圍,伺服器則返回Content-Range: bytes 0-999)
      • Referer: (當前請求來源的網頁地址)
      • Origin: (和Referer差不多,只存在於POST請求)
      • Host:: (指定請求的伺服器的功能變數名稱和埠號)
      • User-Agent::Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36(當前客戶端的信息)
      • Expect:100-continue(握手失敗,請求頭域類型不匹配,由此導致的API介面調用失敗)
    • Response返回頭
      • Connection: keep-alive(連接方式,很重要)
      • Access-Control-Allow-Origin: *(跨域,很重要)
      • Set-Cookie: UserID=admin; Max-Age=3600; Version=1
      • Content-Encoding:gzip
  • 實時通信方案
    • .Net Signalr+
    • Ajax輪詢
    • Comet
    • WebSocket(SuperWebSocket,WebSocket伺服器)
    • SSE(Server-sent Events伺服器發送事件)
    • ...

功能變數名稱解析

  • DNS解析流程
  • 常見 功能變數名稱解析記錄
    • A記錄:用來指定功能變數名稱或子功能變數名稱對應的IP地址記錄,保證功能變數名稱指向對應的主機
    • CNAME記錄:別名記錄,該記錄允許你為自己的主機設置別名
    • MX記錄:郵件路由記錄,當發送郵件時,Mail 伺服器先對功能變數名稱進行解析,查找mx記錄
    • TXT記錄:是功能變數名稱系統(DNS)中由功能變數名稱托管服務商存儲的一種資源記錄,其作用是防止垃圾郵件濫用行為
    • AAAA記錄:指定網站功能變數名稱對應的IPv6地址記錄
    • NS記錄:Name Server,用於指定功能變數名稱是由那個DNS伺服器來進行功能變數名稱解析
    • ...

網站優化

  • JavaScript和Css模塊化
  • CSS Sprites:將一個頁面涉及到的所有零星圖片都包含到一張大圖中去,這樣一來,將N次請求變成一次請求
  • 劃分資源域
  • 合理運用緩存技術
    • 靜態文件(圖片、css、js、html )緩存: cdn技術、squid緩存伺服器、瀏覽器(客戶端)緩存
    • HTML5 application cahce API離線緩存
    • 應用層緩存:Cache、Redis緩存資料庫、memcache緩存資料庫
    • 資料庫緩存:資料庫本身的緩存機制
    • ...
  • 瞭解瀏覽器工作機制:Css放頂部,Js放底部,壓縮Html,能配置Expires/Cathe-Control,ETag,使用 gzip 壓縮
  • 用ISP(互聯網服務提供商)提供的文件存儲等技術
  • 提高DNS功能變數名稱解析速度
  • 掌握SEO
    • 確保網站是可以被索引的: robots.txt,Robtots 標簽
    • 確保網頁是可以被索引的:確保爬蟲可以看到所有的內容、使用描述性的錨文本的網頁
    • 擅長標簽編寫:帶有 H1 標簽、關鍵詞放 URL 中、加粗文字、Descripiton 標簽、圖片文件名、ALT 屬性帶有關鍵詞
    • ...
  • 刪除不必要的HTTP響應頭
    • 移除X-AspNet-Version HTTP頭
    • 移除X-AspNetMvc-Version HTTP頭
    • 移除X-Powered-By HTTP頭
    • 移除Server HTTP頭
    • ...
  • 用戶數據分析
    • PV IP UV
    • 訪問流量來源
      • 瀏覽器
      • 移動設備
      • ...
  • ...

預設隱藏段(拒絕客戶端訪問)

  • App_Browsers:包含瀏覽器定義(.browser文件),ASP.NET會使用這些文件來識別個別瀏覽器並判斷它們的功能
  • App_Code:包含用於公用程式和商務對象(Business Object) , (例如, .cs ; .vb和.jsl文件)的程式源代碼,要將它編譯為應用程式的一部分
  • App_Data:包含應用程式數據文件.包括MDF文件,XML文件與其他資料庫文件
  • App_GlobalResources:包含資源(.resx和.resources文件),這些資源會編譯成具有全局範圍的組件
  • App_LocalResources:包含資源(.resx和.resources文件),這些資源會與特定的頁面,擁護控制項或應用程式的主頁面(MasterPage)相關聯
  • App_WebReferences:包含參考合約文件(.wsdl文件),結構描述(.xsd文件)和探索文件(.disco和.discomap文件),可定義Web應用以用語應用程式
  • Bin:包含空間,組件或你要在應用程式中應用其他程式代碼的已編譯組件(.dll文件).在[Bin]文件夾中以程式代碼表示的任何類, 都會自動在應用程式中應用到
  • Web.config:用來儲存Asp.net Web應用程式的配置信息,通過繼承關係,每個Web.config將配置設置應用到它所在的目錄及虛擬子目錄下
  • ...

特殊目錄

  • Bin:是二進位binary的英文縮寫,用來存放編譯的結果
    • Debug 調試版本 開發環境 有調試信息
    • Release 發行版本 代碼更小,執行更快,編譯更嚴格,更慢 沒有調試信息
  • Obj:是object的縮寫,用於存放編譯過程中生成的中間臨時文件,用來加快編譯速度
    • Debug
    • Release

需要掌握的前端知識

  • Html5+Css3
  • JQuery插件語法
  • Js實現封裝-繼承-多態
  • 實現一個簡單的MVVM框架
  • 實現一個簡單的js模板引擎
  • Angular
    • 路由、模塊化、控制器、指令、作用域、模板、鏈式函數、過濾器、服務、依賴註入...
  • React
    • 虛擬DOM,組件化...
  • ...

信息加密技術:

  • 單向散列加密(雜湊函數、Hash函數)
    • 把任意長的輸入消息串變化成固定長的輸出串且由輸出串難以得到輸入串的一種函數,用於產生消息摘要,密鑰加密
    • MD5,SHA,MAC,CRC...
  • 對稱加密
    • 使用的密鑰(yue)只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密
    • DES,3DES,AES,TDEA,Blowfish,RC5,IDEA...
  • 非對稱加密(公私鑰加密)
    • 指加密和解密使用不同密鑰的加密演算法,分公鑰和私鑰
    • RSA,Elgamal,背包演算法,Rabin,D-H,ECC...

SSL

  • Secure Socket Layer,安全套接字層,保護Web通訊,以實現客戶端和伺服器之間的安全通訊
  • HTTPS:是在HTTP上建立SSL加密層,並對傳輸數據進行加密,是HTTP協議的安全版
    • Let's Encrypt,國外一個公共的免費SSL
    • StartSSL,被各大瀏覽器所支持,但只免費一年
    • ...

TLS

  • Transport Layer Security,安全傳輸層協議,用於在兩個通信應用程式之間提供保密性和數據完整性,建立在SSL 3.0協議規範之上,是SSL 3.0的後續版本

Web安全

  • 滲透註入
    • Sql註入、命令表達式註入、SSRF註入、XSS註入、CSRF註入、XXE註入...
  • 滲透註入檢測工具
    • DirBuster目錄滲透工具,專門用於探測Web伺服器的目錄和隱藏文件
    • Nmap網路連接端軟體,網路連接端掃描軟體,用來掃描網上電腦開放的網路連接端
    • Pangolin Sql註入工具
    • AppScan業界領先的web應用安全監測工具(軟體界面可以選擇中文,不過是收費的)
    • ...
  • 欺騙
    • ClickJacking(點擊劫持)
      • 透明iframe
        • HTTP頭——X-Frame-Options
      • 圖片掩蓋介面
  • 暴力破解
  • DDOS
  • 文件安全
    • 配置文件、備份文件暴露讀取、未授權修改、未授權上傳
  • 邏輯安全
    • 未授權訪問、上下流程順序可亂序、無限遞歸
  • 二進位安全
    • (VS中有性能分析工具)
    • 堆棧溢出(很多人都碰過)、緩存區溢出、記憶體泄漏

Web認證

  • 第三方認證
    • Oauth2.0
    • SSO單點登錄
      • 同源策略
      • CAS解決方案
  • IIs/.Net認證
    • Basic
    • Digest Authentication
    • Windows
    • Forms

解決方案

  • 代碼管理
    • Git:免費、開源的分散式版本控制系統,用的人最多
    • Svn:集中式的版本控制系統,一個強大的備份伺服器
    • TFS:微軟源代碼管理工具
  • 自動化測試
    • UI測試
      • VS自帶的UI測試工具
      • ...
    • 單元測試(Unit Testing)
      • Tdd測試驅動開發(Test-Driven Development)
        • VS自帶的單元測試工具,Xunit,Nunit,Moq,Faker.Net
    • 性能分析
      • VS自帶的性能分析工具,MiniProfiler
    • 壓力測試
      • 概念
        • 吞吐率(Throughput)
        • QPS每秒查詢率(Query Per Second)
        • TPS每秒事務數(Transaction Per Second),併發用戶數
        • ...
      • VS自帶的壓力測試工具,HttpTest4Net,Jmeter...
  • 安全檢測
  • 自動化部署
    • VS的Web Deploy,Jenkins...
  • 監控平臺
  • 自動化故障調控

分散式

  • 負載均衡
    • 什麼時候才會負載均衡(什麼是負載均衡)
    • 負載均衡的幾種實現
      • OSI層面,在網路7層協議基礎上實現的負載均衡
      • 軟體層面
    • 負載均衡演算法
      • 權重輪循均衡
      • 權重隨機均衡
      • 響應速度均衡
      • 最少連接數均衡
      • 處理能力均衡
      • DNS響應均衡
    • 集群
      • 負載均衡伺服器
      • 應用服務伺服器
      • 文件系統伺服器
      • 資料庫伺服器
      • 緩存伺服器
      • ...
    • 分離模式
      • 前後端分離
      • 動靜分離
      • 資料庫讀寫分離
      • 服務分離
      • 業務分離
      • ...
  • 故障可彈性
  • 服務一致性
  • 中心化配置

C#腳本引擎

  • CS-Script:可做源碼式插件開發,規則引擎,流程引擎...
  • ...

插件開發

  • Mvc Area插件開發
  • OSGi.NET
  • ...

消息隊列

  • 消息隊列 - Message Queue(MQ),是一種應用程式之間的通信機制,將部分無需立即回調獲取結果,並且耗時的操作,使用非同步處理的方式提高伺服器的吞吐量及性能.如秒殺活動,上傳任務,日誌記錄等
  • .
  • MSMQ
    • 微軟官方推出的消息隊列框架
  • RibbitMq
    • 基於 AMQP 系統協議,由 Erlang 語言開發,開源的消息隊列,支持AMQP,XMPP, SMTP, STOMP等協議,使用簡單
  • ZeroMQ
    • 一個輕量級的消息通信組件,側重於點對點的消息傳輸上
  • Redis
    • 雖是一個Key-Value的NoSQL資料庫,但本身也有Queue隊列功能
  • ...

依賴倒置框架

  • 基於面向對象6大原則之 - 依賴倒置原則DIP - 工廠模式實現
  • IOC - inversion of control 控制反轉,調用者不再創建被調用者的實例,由框架(容器)創建
    • DL - Dependency Lookup 依賴查找,容器提供回調介面和上下文環境給組件
    • DI - Dependency Injection 依賴註入,容器創建好實例後再註入調用者
  • .
  • Autofac
    • 最為流行的IOC框架之一,輕量且高性能
  • Unity
    • 最為流行的IOC框架之一,微軟出品
  • Spring.NET
    • 以Java版的Spring框架為基礎,提供了多種功能
  • Ninject
    • 一個輕量級的註入框架
  • ...

任務調度

  • Quartz
    • 開源的作業調度框架,是Quartz的C#移植版本
  • ...

日誌記錄

  • Log4net
    • 從java平臺下移植過來的非常優秀的日誌記錄框架
  • Nlog
    • 相對於Log4net,配置更為簡單
  • Microsoft.Framework.Logging
    • ASP.NET5中的日誌框架集
  • ...

搜索引擎

  • Lucene.net
    • 是Lucene的.net移植版本,它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構
  • ElasticSearch
    • 是基於Lucene架構面向企業搜索應用的擴展,提供了一個分散式多用戶能力的全文搜索引擎,基於RESTful web介面
  • 盤古分詞
    • 中文分片語件,作者肖波
  • HubbleDotNet
    • 開源資料庫全文搜索引擎,作者肖波
  • ...

工作流引擎(Workflow - WF)

  • Business Process Management - BPM 業務流程管理
  • .
  • Windows Workflow Foundation - WWF
    • 微軟的工作流產品,提供一套工作流引擎和VS解決方案自帶的流程設計器
  • NetBPM
    • 從JBpm1移植到.NET平臺下的開源工作流項目
  • CCFlow
    • 國產開源工作流

.Net常用工具及插件

  • Colorful-IDE:可以更換VS的壁紙
  • ReAttach:可以快速附加到進程(開源)
  • C# Outline:VS代碼塊摺疊插件
  • Reshaper:即時分析代碼質量,消除錯誤,安全地更改代碼庫等
  • OzCode:VS調試時候的輔助插件
  • LINQ Pad:用來測試Linq查詢的插件
  • Rextester:線上測試C#代碼
  • SmartAssembly:.Net加密混淆工具
  • ConfuserEx:.Net加密混淆工具
  • ILSpy:.Net反編譯工具
  • Reflector :.Net反編譯工具

 

 

 

總結歸納不易,如果有疑問或異解請留言給我。

後面我會寫一些文章來讓大家系統的學習web開發,而這篇技術棧我也會不斷更新。

我喜歡和我一樣的人交朋友,不被環境影響,自己是自己的老師,歡迎加群 .Net web交流群, QQ群:166843154 欲望與掙扎

 

作者:小曾
出處:http://www.cnblogs.com/1996V/p/7700087.html 歡迎轉載,但任何轉載必須保留完整文章,在顯要地方顯示署名以及原文鏈接。如您有任何疑問或者授權方面的協商,請給我留言
.Net交流群, QQ群:166843154 欲望與掙扎 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 從某網站上摘抄過來的,覺得整理的挺詳細,方便自己知道怎麼去學習 ...
  • C# .NET知識體系圖 一.C#基礎 二.資料庫 三.WEB技術 四.ASP.NET WebForm 五.ASP.NET MVC 六.ASP.NET WebAPI 七.WebService技術 八.Remoting技術 九.WCF通信技術(替代Remoting技術 十.常用框架 十一.ASP.NE ...
  • 如果同一項目中不同第三方類庫分別使用了不同版本的Newtonsoft.Json的情況下,可以在主項目配置文件中添加以下節點,將0.0.0.0-11.0.0.0此區間的Newtonsoft.Json使用全部強制指向到9.0.0.0版本。 如果同一項目中不同第三方類庫分別使用了不同版本的Newtonso ...
  • 讀寫鎖 /// /// 提供非同步獨占和併發執行支持 /// public sealed class AsyncReaderWriter { /// /// 在當前實例中保護所有共用狀態的鎖 /// private readonly object _lock = new object(); /// / ...
  • 剛開博,實在無從下手,就先堆一篇,當做個筆記,見笑了。 雖然很早就註冊了博客園賬號,但大多進來只是隨便逛逛,或在開發過程中遇到問題的時候進來找找答案。 作為圈子裡少而不稀的女程式員,從事Web開發,接觸的一直是MVC。說真的,我對敲代碼並沒啥興趣,只是當年被調劑到了軟體工程專業,一切順其自然便走上了 ...
  • 前言 近期,在公司做的項目中做到報表模塊需要使用rdlc格式的報表,這個報表需要使用WebForm來載入,但是現在用ASP.NET做項目基本上都是MVC。由於以前沒有使用過,因此記錄下來,供以後查閱。 下麵做個簡單的Demo,使用的工具是VS2012+SQL Server2012。 一、準備資料庫 ...
  • 接上文 多線程編程學習筆記-基礎(一) 接上文 多線程編程學習筆記-基礎(二) 九、向線程傳遞參數 1.代碼如下。 2.結果如下圖。 線程1,我們通過實例化對象來進行參數傳遞。 線程2,我們使用Thread.Start()來傳遞參數,不過此方法只接收單個參數,而且是對象類型。 線程3,我們使用lam ...
  • fvyhg ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...