從事多年的開發,對於.net可以說有一定的總結,有關於教科書般的文檔,獻於交流.
本文整理了當前企業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:\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反編譯工具