.Net Web開發技術棧

有不少朋友有的由於興趣,有的由於生計而走向了.Net中,有不少朋友想學,可是又不知道怎麼學,學什麼,怎麼系統的學,爲此我以我微薄之力總結概括寫了一篇.Net web開發技術棧,以此幫助那些想學,殊不知從何起的朋友。css

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

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)
      • 基於任務的異步模式(TAP)
      • ...

數據結構

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

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
    • 鎖機制
      • 種類、粒度、加鎖方式
      • 悲觀鎖:開銷大,避免長事務
        • 表鎖、行鎖/讀鎖、寫鎖
      • 樂觀鎖:開銷小,讀大於寫
        • Version版本號機制
      • ...
  • 數據庫輔助工具: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)
    • 最少知識原則LKP(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
    • Json Web Token
    • 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開發,而這篇技術棧我也會不斷更新。java

我喜歡和我同樣的人交朋友,不被環境影響,本身是本身的老師,歡迎加羣 .Net web交流羣, QQ羣:166843154 慾望與掙扎mysql

 

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