歡迎光臨
每天分享高質量文章

.NET Web開發技術棧

來源:小曾看世界

鏈接:https://www.cnblogs.com/1996V/p/7700087.html

有很多朋友有的因為興趣,有的因為生計而走向了.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框架


  • EF

  • Dapper:最常見的輕量級ORM框架(開源)

  • Nhibernate:最常見的重量級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:WindowsMicrosoft.NETFramework4.0.30319csc.exe )編譯成EXE或者是DLL檔案。

  2. 2.被CSC編譯後的EXE/DLL檔案叫做 IL檔案。Intermediate Language (IL)中間語言,在.Net中,稱之為 Microsoft IL(MSIL)微軟中間語言(右鍵對專案進行生成的時候實際上就是這一步)

  3. 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開發,而這篇技術棧我也會不斷更新。


●編號144,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

Web開發

更多推薦18個技術類公眾微信

涵蓋:程式人生、演算法與資料結構、黑客技術與網絡安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

赞(0)

分享創造快樂