.Net Web开发技术栈
生活随笔
收集整理的這篇文章主要介紹了
.Net Web开发技术栈
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有很多朋友有的因為興趣,有的因為生計而走向了.Net中,有很多朋友想學(xué),但是又不知道怎么學(xué),學(xué)什么,怎么系統(tǒng)的學(xué),為此我以我微薄之力總結(jié)歸納寫了一篇.Net web開發(fā)技術(shù)棧,以此幫助那些想學(xué),卻不知從何起的朋友。
本文整理了當(dāng)前企業(yè)web開發(fā)中的管理系統(tǒng),商城等系統(tǒng)的常用開發(fā)技術(shù)棧。
C#常見運(yùn)算符
- 一元運(yùn)算符(+、-、!、~、++、--)
- 算術(shù)運(yùn)算符(*、/、%、+ 、 – )
- 移位運(yùn)算符(<< 、>> )
- 關(guān)系和類型測試運(yùn)算符(==、!=、<、>、<=、>=、is 和 as)
- 邏輯運(yùn)算符(&、^ 和 | )
- 條件邏輯運(yùn)算符(&& 和 || )
- 空合并運(yùn)算符(??)條件運(yùn)算符(它也稱為三元運(yùn)算符,?: )
- 賦值運(yùn)算符(=、+=、-=、!=、/=、&=、|=)
C#常見語句塊
- Try(用于捕捉在塊的執(zhí)行期間發(fā)生的各種異常)
- Checked 語句和 Unchecked(用于控制整型算術(shù)運(yùn)算和轉(zhuǎn)換的溢出檢查上下文)
- Lock(獲取某個給定對象的互斥鎖,執(zhí)行一個語句,然后釋放該鎖)
- Using(獲取一個或多個資源,執(zhí)行一個語句,然后釋放該資源)
C#常見類修飾符
- abstract抽象類
- sealed密封類
- static靜態(tài)類
- partial分部修飾
- 訪問修飾符(public、protected、internal 和 private )
C#常用預(yù)處理指令
- #region:指定一個可展開或折疊的代碼塊
- #endregion:它標(biāo)識著 #region 塊的結(jié)束
- #define: 它用于定義一系列成為符號的字符
- #undef:它用于取消定義符號
- #if、#else、#elif、#endif:用于創(chuàng)建復(fù)合條件指令
委托
- Delegate、Lambda、Action、Func、Predicate、事件EventArgs
泛型
- 泛型類、泛型方法、泛型約束、泛型接口、逆變與協(xié)變
Linq
- Linq to sql / Linq to DataSet / Linq to Object / Linq to Xml
- 迭代器yield與懶加載Lazy
反射
- 反射拼接SQL語句、反射轉(zhuǎn)換Json/Datatable...、序列化反序列化(ISerializable)、反射動態(tài)調(diào)用dll、反射動態(tài)配置擴(kuò)展
常用類
- IO類、Json.NET、Http輔助類(HttpClient、Restsharp、WebClient、WebRequest)、爬蟲類、文件壓縮類、條形碼 、金額、時間、Assembly等類的實現(xiàn)
常用接口掌握
- IEnumerable
- IEnumerator
- 實現(xiàn)Foreach
- .
- ICollection
- IList
- 集合
- .
- IComparable
- IComparer
- 實現(xiàn)比較方法
- .
- IDictionary
- 鍵值對
- .
- IDisposable
- 釋放非托管資源
數(shù)據(jù)層
- 原生的ADO.NET
- Connections. 用于連接和管理針對數(shù)據(jù)庫的事務(wù)。
- Commands. 用于發(fā)出針對數(shù)據(jù)庫的SQL指令。
- DataReaders. 用于從SQL Server數(shù)據(jù)源讀取只進(jìn)流的數(shù)據(jù)記錄。
- DataSets. 用于針對結(jié)構(gòu)型數(shù)據(jù),XML數(shù)據(jù)和關(guān)系型數(shù)據(jù)的存儲,遠(yuǎn)程處理和編程。
- DataAdapters. 用于推送數(shù)據(jù)到DataSet,并針對數(shù)據(jù)庫協(xié)調(diào)數(shù)據(jù)。
- ...
- ORM框架
- EF
- Dapper:最常見的輕量級ORM框架(開源)
- Nhibernate:最常見的重量級ORM框架
- ...
異步和多線程
- Thread/ThreadPool/Task/Await/Async/Parallel...
- 多線程
- 多線程中的同步、并發(fā)、異常等處理
- ...
- TPL異步
- 異步編程模型(APM)
- 基于事件的異步模式(EAP)
- 基于任務(wù)的異步模式(TAP)
- ...
- 多線程
數(shù)據(jù)結(jié)構(gòu)
- 算法
- 線性表
- 二叉樹
- 棧與隊列
- ...
ASP.NET Mvc框架
- Routing路由
- Binding模型綁定
- new ChildActionValueProviderFactory(),
- new FormValueProviderFactory(),
- new JsonValueProviderFactory(),
- new RouteDataValueProviderFactory(),
- new QueryStringValueProviderFactory(),
- new HttpFileCollectionValueProviderFactory()
- ...
- AOP面向切面(常用特性(Attribute)及自定義特性)
- 元數(shù)據(jù)
- 驗證基類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(授權(quán)過濾器)
- AuthorizeAttribute
- RequireHttpsAttribute
- ValidateAntiForgeryTokenAttribute
- ChildActionOnlyAttribute
- ...
- IActionFilter(動作過濾器-前-后)
- ActionFilterAttribute
- ...
- IResultFilter(結(jié)果過濾器-前-后)
- ActionFilterAttribute
- ...
- IExceptionFilter(例外過濾器)
- HandleErrorAttribute(在FilterConfig就已被注冊)
- ...
- RazorViewEngine視圖引擎
- WebApi
數(shù)據(jù)庫技術(shù)
- 數(shù)據(jù)庫服務(wù)端、客戶端、圖形界面管理工具、數(shù)據(jù)庫語言(PL-sql,T-sql,sql)、數(shù)據(jù)庫安全等概念
- 視圖、存儲過程、游標(biāo)、中間表、觸發(fā)器、計劃任務(wù)等常用技術(shù)
- 數(shù)據(jù)庫分庫、拆表、分布式、集群、備份、故障調(diào)控等方案
- 數(shù)據(jù)庫三大范式與反范式
- RBAC(Role-Based Access Control,基于角色的訪問控制)權(quán)限模型
- 數(shù)據(jù)庫機(jī)制
- 索引
- 存儲引擎
- 事務(wù)
- 四大特性(ACID)
- 原子性 Atomicity
- 一致性 Consistency
- 隔離性 Isolation
- 持續(xù)性 Durability
- 并發(fā)產(chǎn)生的問題
- 臟讀
- 幻讀
- 不可重復(fù)讀
- ...
- 解決方案—隔離級別
- 讀未提交Read uncommitted
- 讀已提交Read committed (mssql、oracle)
- 可重復(fù)讀Repeatable read(mysql)
- 串行化Serializable
- 四大特性(ACID)
- 鎖機(jī)制
- 種類、粒度、加鎖方式
- 悲觀鎖:開銷大,避免長事務(wù)
- 表鎖、行鎖/讀鎖、寫鎖
- 樂觀鎖:開銷小,讀大于寫
- Version版本號機(jī)制
- ...
- 數(shù)據(jù)庫輔助工具:Power Designer、EZDML、ER Studio、Rose、Microsoft Visio...
關(guān)系型數(shù)據(jù)庫
- Oracle
- 最貴,功能最多,不開源,最安全...
- Mysql
- 免費(fèi),功能一般,開源,相對不安全...
- MsSql(SqlServer)
- 中等貴,支持平臺最少,不開源,使用最方便...
- PostgreSQL
- 與其他關(guān)系型數(shù)據(jù)庫相比,PostgreSQL獨(dú)特的地方是它支持高度需要的、完整的面向?qū)ο笠约瓣P(guān)系型數(shù)據(jù)庫的功能
- Sqlite
- 一個自包含的、基于文件的數(shù)據(jù)庫,可移植性非常好
- ...
非關(guān)系型數(shù)據(jù)庫(Nosql-Not Only Sql)
- MongoDb:是一個基于分布式文件存儲的數(shù)據(jù)庫
- Hbase:屬于hadoop(分布式系統(tǒng))生態(tài)圈的組件,能存儲海量數(shù)據(jù)
- Cassandra:優(yōu)異的列式存儲NoSQL
- Redis:基于內(nèi)存的數(shù)據(jù)存儲系統(tǒng),支持多種類型存儲,適用于高并發(fā)場合
- Memcache:基于內(nèi)存的數(shù)據(jù)存儲系統(tǒng),高性能分布式內(nèi)存緩存服務(wù),適用于高并發(fā)場合
- ...
面向服務(wù)架構(gòu)SOA
- 通過服務(wù)整合來解決系統(tǒng)集成的一種思想
- .
- WSDL
- Web Services Description Language是一個用來描述Web服務(wù)和說明如何與Web服務(wù)通信的XML語言。為用戶提供詳細(xì)的接口說明書
- UDDI
- Universal Description,Discovery and Integration統(tǒng)一描述、發(fā)現(xiàn)和集成, 提供一種發(fā)布和查找服務(wù)描述的方法。UDDI 數(shù)據(jù)實體提供對定義業(yè)務(wù)和服務(wù)信息的支持。
- SOAP
- Simple Object AccessProtocol,簡單對象訪問協(xié)議,基于XML 和 HTTP 用于在應(yīng)用程序之間進(jìn)行通信的一種通信協(xié)議
- Web Services:基于SOAP協(xié)議,數(shù)據(jù)格式是XML
- Wcf/Wcf Rest:可以不依賴于IIS,基于SOAP,支持多種通信協(xié)議,但配置繁瑣
- 測試工具:SoapUI...
- Simple Object AccessProtocol,簡單對象訪問協(xié)議,基于XML 和 HTTP 用于在應(yīng)用程序之間進(jìn)行通信的一種通信協(xié)議
- REST
- REpresentational State Transfer ,表現(xiàn)層狀態(tài)轉(zhuǎn)移,是一種架構(gòu)風(fēng)格,提供了設(shè)計概念原則和約束。
- RESTful
- 滿足這些原則和條件的就稱RESTful架構(gòu)
- Web API:RESTful的實現(xiàn),一個用于構(gòu)建HTTP服務(wù)的框架
- 測試工具:Fiddler、Postman、Jmeter...
- 微服務(wù)
- 是SOA的一種實現(xiàn),更側(cè)重于組件化和服務(wù)化
- JSON-RPC
- Remote Procedure Call Protocol,遠(yuǎn)程過程調(diào)用協(xié)議,高性能二進(jìn)制協(xié)議,比RESTful要高效(類似于Web Services的使用風(fēng)格)
面向?qū)ο驩OP
- 三大基本特性
- 繼承,封裝,多態(tài)
- 抽象類abstract和接口interface的各種用法及實現(xiàn)
- Virtual、abstract、override、New、extern等關(guān)鍵字的含義及用法
- 設(shè)計模式的應(yīng)用
- ...
- 繼承,封裝,多態(tài)
- 六大基本原則(高內(nèi)聚,低耦合)
- 單一職責(zé)原則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種設(shè)計模式
- 創(chuàng)建型
- 結(jié)構(gòu)型
- 行為型
存儲
- 瀏覽器自身緩存技術(shù)(cache control,與服務(wù)器約定,js /css等緩存)
- Session(SessionId)(會話,為了彌補(bǔ)http協(xié)議的無狀態(tài)特性)
- Cookie(瀏覽器存儲,為了彌補(bǔ)http協(xié)議的無狀態(tài)特性)
- Localstorage(Html5新特性 瀏覽器本地存儲,為了彌補(bǔ)Cookie存儲不足)
- Application(服務(wù)器全局變量)
- Static(依賴于IIS,進(jìn)程回收會丟失)
- Cache(服務(wù)器緩存)
軟件架構(gòu)
- MVC
- ASP.NET MVC
- MVP
- 事件模型
- ASP.NET Web form
- System.UI.Page
- ViewState
- ...
- Winform
- ASP.NET Web form
- 事件模型
- MVVM
- 在.Net中(主要應(yīng)用于WPF、Silverlight、WP7)
- Prism - Brian Lagunas微軟產(chǎn)品經(jīng)理,微軟MVP,一個跨平臺的桌面和移動MVVM開發(fā)框架,開源。
- Catel - Catel是一個專注于MVVM(WPF,Silverlight,Windows Phone和WinRT)和MVC(ASP.NET MVC)的應(yīng)用程序開發(fā)平臺。 Catel的核心包含一個IoC容器,模型,驗證,紀(jì)念,消息中介,參數(shù)檢查等。
- ...
- 在前端中
- Angular
- Vue
- Knockout
- React
- ...
- 在.Net中(主要應(yīng)用于WPF、Silverlight、WP7)
平臺
- 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管道模型:
- 經(jīng)典模式IIS5/IIS6:
- IIS管道模型
- ASP.NET管道模型
- ...
- 集成模式IIS7:
- HttpContext
- ...
- IIs的常用功能及使用及配置:
- 請求篩選、失敗請求跟蹤等
- .Net MVC生命周期
- Httphandler、HttpModule、Globar的編寫及應(yīng)用...
- ...
- 經(jīng)典模式IIS5/IIS6:
- ASP.NET與IIS管道模型:
- OWIN解耦
- Open Web Server Interface for .NET,定義了一種中間件在管道中用于處理請求和相關(guān)響應(yīng)的標(biāo)準(zhǔn)方式,是種規(guī)范,用于解耦Web 服務(wù)器和Web 應(yīng)用程序。
- OWIN的實現(xiàn):Katana(由微軟早期開發(fā)的開源OWIN組件集合)
- OWIN Layer(定義的一系列層)
- Application(應(yīng)用程序)
- Middleware(中間件)
- Nanacy.Owin
- WebApi
- Signalr
- FubuMVC
- Simple.Web
- DuoVia.Http
- ...
- Server(服務(wù))
- Microsoft.Owin.Host.SystemWeb
- Microsoft.Owin.Host.HttpListener
- Helios
- (Asp.Net5以后就是Microsoft.AspNet命名空間)
- ...
- Host(宿主)
- IIS
- Custom Host
- OwinHost.exe
- Node.Js(connect-owin)
- ...
- OWIN Layer(定義的一系列層)
- System.Web(ASP.NET的核心)
- .NET CLR(Commen Language Runtime)公用語言運(yùn)行時
- 核心:公共語言基礎(chǔ)(Common Language Infrastructure,CLI),提供了定義的規(guī)范接口、與工具
- 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)微軟中間語言(右鍵對項目進(jìn)行生成的時候?qū)嶋H上就是這一步)
- 3.CLR會將MSIL通過JIT(Just In Time)編譯器進(jìn)行第二次編譯,將其編譯成本地平臺的CPU指令。(如果擁有能在Linux運(yùn)行的CLR,代碼就能跨平臺運(yùn)行)
- .
- C#源碼——(CSC編譯器)——MSIL文件(dll/exe)——(CLR中的JIT編譯器)——CPU執(zhí)行
- .NET Framework Base Class Library(BCL基類庫)
Http協(xié)議
- OSI網(wǎng)絡(luò)通信
- 物理層
- 以二進(jìn)制數(shù)據(jù)形式在物理媒體上傳輸數(shù)據(jù)
- 數(shù)據(jù)鏈路層
- 傳輸有地址的幀,錯誤檢測功能
- 網(wǎng)絡(luò)層
- 為數(shù)據(jù)包選擇路由
- IP,ICMP,RIP...
- 傳輸層
- 提供端對端的接口
- TCP、UDP...
- 會話層
- 建立或解除與其它接點(diǎn)的聯(lián)系
- 表示層
- 數(shù)據(jù)格式化,代碼轉(zhuǎn)換,數(shù)據(jù)加密
- 應(yīng)用層
- HTTP,FTP,SMTP...
- 物理層
- Http狀態(tài)碼
- 1xx:信息提示,表示請求已被成功接受,繼續(xù)處理,請求范圍100~101
- 2xx:成功,服務(wù)器成功響應(yīng)請求,請求范圍200~206
- 3xx:重定向,請求范圍300~305
- 4xx:發(fā)送一些服務(wù)器無法受理的東西
- 5xx:一條有效請求,但服務(wù)器掛了
- 常用HTTP消息頭(Http Header)
- Request請求頭
- Authorization:Basic base64646464646464=== (驗證)
- Accept-Encoding:gzip (指定瀏覽器可以支持的web服務(wù)器返回內(nèi)容壓縮編碼類型)
- Cache-Control:max-age=60(指定請求和響應(yīng)遵循的緩存機(jī)制,max-age為 當(dāng)前60秒內(nèi)再次訪問不會去服務(wù)器請求)
- Cookie:ZJF(該請求域名下的所有cookie值一起發(fā)送給web服務(wù)器)
- Content-Type:application/x-www-form-urlencoded(是以什么格式來傳輸,請求的與實體對應(yīng)的MIME信息)
- Accept:text/plain(指定客戶端能夠接收的內(nèi)容類型)
- Range:bytes=0-999(常用作斷點(diǎn)續(xù)傳,設(shè)置請求的指定范圍,服務(wù)器則返回Content-Range: bytes 0-999)
- Referer: (當(dāng)前請求來源的網(wǎng)頁地址)
- Origin: (和Referer差不多,只存在于POST請求)
- Host:: (指定請求的服務(wù)器的域名和端口號)
- User-Agent::Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36(當(dāng)前客戶端的信息)
- Expect:100-continue(握手失敗,請求頭域類型不匹配,由此導(dǎo)致的API接口調(diào)用失敗)
- Response返回頭
- Connection: keep-alive(連接方式,很重要)
- Access-Control-Allow-Origin: *(跨域,很重要)
- Set-Cookie: UserID=admin; Max-Age=3600; Version=1
- Content-Encoding:gzip
- Request請求頭
- 實時通信方案
- .Net Signalr+
- Ajax輪詢
- Comet
- WebSocket(SuperWebSocket,WebSocket服務(wù)器)
- SSE(Server-sent Events服務(wù)器發(fā)送事件)
- ...
域名解析
- DNS解析流程
- 常見 域名解析記錄
- A記錄:用來指定域名或子域名對應(yīng)的IP地址記錄,保證域名指向?qū)?yīng)的主機(jī)
- CNAME記錄:別名記錄,該記錄允許你為自己的主機(jī)設(shè)置別名
- MX記錄:郵件路由記錄,當(dāng)發(fā)送郵件時,Mail 服務(wù)器先對域名進(jìn)行解析,查找mx記錄
- TXT記錄:是域名系統(tǒng)(DNS)中由域名托管服務(wù)商存儲的一種資源記錄,其作用是防止垃圾郵件濫用行為
- AAAA記錄:指定網(wǎng)站域名對應(yīng)的IPv6地址記錄
- NS記錄:Name Server,用于指定域名是由那個DNS服務(wù)器來進(jìn)行域名解析
- ...
網(wǎng)站優(yōu)化
- JavaScript和Css模塊化
- CSS Sprites:將一個頁面涉及到的所有零星圖片都包含到一張大圖中去,這樣一來,將N次請求變成一次請求
- 劃分資源域
- 合理運(yùn)用緩存技術(shù)
- 靜態(tài)文件(圖片、css、js、html )緩存: cdn技術(shù)、squid緩存服務(wù)器、瀏覽器(客戶端)緩存
- HTML5 application cahce API離線緩存
- 應(yīng)用層緩存:Cache、Redis緩存數(shù)據(jù)庫、memcache緩存數(shù)據(jù)庫
- 數(shù)據(jù)庫緩存:數(shù)據(jù)庫本身的緩存機(jī)制
- ...
- 了解瀏覽器工作機(jī)制:Css放頂部,Js放底部,壓縮Html,能配置Expires/Cathe-Control,ETag,使用 gzip 壓縮
- 用ISP(互聯(lián)網(wǎng)服務(wù)提供商)提供的文件存儲等技術(shù)
- 提高DNS域名解析速度
- 掌握SEO
- 確保網(wǎng)站是可以被索引的: robots.txt,Robtots 標(biāo)簽
- 確保網(wǎng)頁是可以被索引的:確保爬蟲可以看到所有的內(nèi)容、使用描述性的錨文本的網(wǎng)頁
- 擅長標(biāo)簽編寫:帶有 H1 標(biāo)簽、關(guān)鍵詞放 URL 中、加粗文字、Descripiton 標(biāo)簽、圖片文件名、ALT 屬性帶有關(guān)鍵詞
- ...
- 刪除不必要的HTTP響應(yīng)頭
- 移除X-AspNet-Version HTTP頭
- 移除X-AspNetMvc-Version HTTP頭
- 移除X-Powered-By HTTP頭
- 移除Server HTTP頭
- ...
- 用戶數(shù)據(jù)分析
- PV IP UV
- 訪問流量來源
- 瀏覽器
- 移動設(shè)備
- ...
- ...
默認(rèn)隱藏段(拒絕客戶端訪問)
- App_Browsers:包含瀏覽器定義(.browser文件),ASP.NET會使用這些文件來識別個別瀏覽器并判斷它們的功能
- App_Code:包含用于公用程序和商務(wù)對象(Business Object) , (例如, .cs ; .vb和.jsl文件)的程序源代碼,要將它編譯為應(yīng)用程序的一部分
- App_Data:包含應(yīng)用程序數(shù)據(jù)文件.包括MDF文件,XML文件與其他數(shù)據(jù)庫文件
- App_GlobalResources:包含資源(.resx和.resources文件),這些資源會編譯成具有全局范圍的組件
- App_LocalResources:包含資源(.resx和.resources文件),這些資源會與特定的頁面,擁護(hù)控件或應(yīng)用程序的主頁面(MasterPage)相關(guān)聯(lián)
- App_WebReferences:包含參考合約文件(.wsdl文件),結(jié)構(gòu)描述(.xsd文件)和探索文件(.disco和.discomap文件),可定義Web應(yīng)用以用語應(yīng)用程序
- Bin:包含空間,組件或你要在應(yīng)用程序中應(yīng)用其他程序代碼的已編譯組件(.dll文件).在[Bin]文件夾中以程序代碼表示的任何類, 都會自動在應(yīng)用程序中應(yīng)用到
- Web.config:用來儲存Asp.net Web應(yīng)用程序的配置信息,通過繼承關(guān)系,每個Web.config將配置設(shè)置應(yīng)用到它所在的目錄及虛擬子目錄下
- ...
特殊目錄
- Bin:是二進(jìn)制binary的英文縮寫,用來存放編譯的結(jié)果
- Debug 調(diào)試版本 開發(fā)環(huán)境 有調(diào)試信息
- Release 發(fā)行版本 代碼更小,執(zhí)行更快,編譯更嚴(yán)格,更慢 沒有調(diào)試信息
- Obj:是object的縮寫,用于存放編譯過程中生成的中間臨時文件,用來加快編譯速度
- Debug
- Release
需要掌握的前端知識
- Html5+Css3
- JQuery插件語法
- Js實現(xiàn)封裝-繼承-多態(tài)
- 實現(xiàn)一個簡單的MVVM框架
- 實現(xiàn)一個簡單的js模板引擎
- Angular
- 路由、模塊化、控制器、指令、作用域、模板、鏈?zhǔn)胶瘮?shù)、過濾器、服務(wù)、依賴注入...
- React
- 虛擬DOM,組件化...
- ...
信息加密技術(shù):
- 單向散列加密(雜湊函數(shù)、Hash函數(shù))
- 把任意長的輸入消息串變化成固定長的輸出串且由輸出串難以得到輸入串的一種函數(shù),用于產(chǎn)生消息摘要,密鑰加密
- MD5,SHA,MAC,CRC...
- 對稱加密
- 使用的密鑰(yue)只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進(jìn)行加密和解密
- DES,3DES,AES,TDEA,Blowfish,RC5,IDEA...
- 非對稱加密(公私鑰加密)
- 指加密和解密使用不同密鑰的加密算法,分公鑰和私鑰
- RSA,Elgamal,背包算法,Rabin,D-H,ECC...
SSL
- Secure Socket Layer,安全套接字層,保護(hù)Web通訊,以實現(xiàn)客戶端和服務(wù)器之間的安全通訊
- HTTPS:是在HTTP上建立SSL加密層,并對傳輸數(shù)據(jù)進(jìn)行加密,是HTTP協(xié)議的安全版
- Let's Encrypt,國外一個公共的免費(fèi)SSL
- StartSSL,被各大瀏覽器所支持,但只免費(fèi)一年
- ...
TLS
- Transport Layer Security,安全傳輸層協(xié)議,用于在兩個通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性,建立在SSL 3.0協(xié)議規(guī)范之上,是SSL 3.0的后續(xù)版本
Web安全
- 滲透注入
- Sql注入、命令表達(dá)式注入、SSRF注入、XSS注入、CSRF注入、XXE注入...
- 滲透注入檢測工具
- DirBuster目錄滲透工具,專門用于探測Web服務(wù)器的目錄和隱藏文件
- Nmap網(wǎng)絡(luò)連接端軟件,網(wǎng)絡(luò)連接端掃描軟件,用來掃描網(wǎng)上電腦開放的網(wǎng)絡(luò)連接端
- Pangolin Sql注入工具
- AppScan業(yè)界領(lǐng)先的web應(yīng)用安全監(jiān)測工具(軟件界面可以選擇中文,不過是收費(fèi)的)
- ...
- 欺騙
- ClickJacking(點(diǎn)擊劫持)
- 透明iframe
- HTTP頭——X-Frame-Options
- 圖片掩蓋接口
- 透明iframe
- ClickJacking(點(diǎn)擊劫持)
- 暴力破解
- DDOS
- 文件安全
- 配置文件、備份文件暴露讀取、未授權(quán)修改、未授權(quán)上傳
- 邏輯安全
- 未授權(quán)訪問、上下流程順序可亂序、無限遞歸
- 二進(jìn)制安全
- (VS中有性能分析工具)
- 堆棧溢出(很多人都碰過)、緩存區(qū)溢出、內(nèi)存泄漏
Web認(rèn)證
- 第三方認(rèn)證
- Oauth2.0
- Json Web Token
- SSO單點(diǎn)登錄
- 同源策略
- CAS解決方案
- IIs/.Net認(rèn)證
- Basic
- Digest Authentication
- Windows
- Forms
解決方案
- 代碼管理
- Git:免費(fèi)、開源的分布式版本控制系統(tǒng),用的人最多
- Svn:集中式的版本控制系統(tǒng),一個強(qiáng)大的備份服務(wù)器
- TFS:微軟源代碼管理工具
- 自動化測試
- UI測試
- VS自帶的UI測試工具
- ...
- 單元測試(Unit Testing)
- Tdd測試驅(qū)動開發(fā)(Test-Driven Development)
- VS自帶的單元測試工具,Xunit,Nunit,Moq,Faker.Net
- Tdd測試驅(qū)動開發(fā)(Test-Driven Development)
- 性能分析
- VS自帶的性能分析工具,MiniProfiler
- 壓力測試
- 概念
- 吞吐率(Throughput)
- QPS每秒查詢率(Query Per Second)
- TPS每秒事務(wù)數(shù)(Transaction Per Second),并發(fā)用戶數(shù)
- ...
- VS自帶的壓力測試工具,HttpTest4Net,Jmeter...
- 概念
- UI測試
- 安全檢測
- 自動化部署
- VS的Web Deploy,Jenkins...
- 監(jiān)控平臺
- 自動化故障調(diào)控
分布式
- 負(fù)載均衡
- 什么時候才會負(fù)載均衡(什么是負(fù)載均衡)
- 負(fù)載均衡的幾種實現(xiàn)
- OSI層面,在網(wǎng)絡(luò)7層協(xié)議基礎(chǔ)上實現(xiàn)的負(fù)載均衡
- 軟件層面
- 負(fù)載均衡算法
- 權(quán)重輪循均衡
- 權(quán)重隨機(jī)均衡
- 響應(yīng)速度均衡
- 最少連接數(shù)均衡
- 處理能力均衡
- DNS響應(yīng)均衡
- 集群
- 負(fù)載均衡服務(wù)器
- 應(yīng)用服務(wù)服務(wù)器
- 文件系統(tǒng)服務(wù)器
- 數(shù)據(jù)庫服務(wù)器
- 緩存服務(wù)器
- ...
- 分離模式
- 前后端分離
- 動靜分離
- 數(shù)據(jù)庫讀寫分離
- 服務(wù)分離
- 業(yè)務(wù)分離
- ...
- 故障可彈性
- 服務(wù)一致性
- 中心化配置
C#腳本引擎
- CS-Script:可做源碼式插件開發(fā),規(guī)則引擎,流程引擎...
- ...
插件開發(fā)
- Mvc Area插件開發(fā)
- OSGi.NET
- ...
消息隊列
- 消息隊列 - Message Queue(MQ),是一種應(yīng)用程序之間的通信機(jī)制,將部分無需立即回調(diào)獲取結(jié)果,并且耗時的操作,使用異步處理的方式提高服務(wù)器的吞吐量及性能.如秒殺活動,上傳任務(wù),日志記錄等
- .
- MSMQ
- 微軟官方推出的消息隊列框架
- RibbitMq
- 基于 AMQP 系統(tǒng)協(xié)議,由 Erlang 語言開發(fā),開源的消息隊列,支持AMQP,XMPP, SMTP, STOMP等協(xié)議,使用簡單
- ZeroMQ
- 一個輕量級的消息通信組件,側(cè)重于點(diǎn)對點(diǎn)的消息傳輸上
- Redis
- 雖是一個Key-Value的NoSQL數(shù)據(jù)庫,但本身也有Queue隊列功能
- ...
依賴倒置框架
- 基于面向?qū)ο?大原則之 - 依賴倒置原則DIP - 工廠模式實現(xiàn)
- IOC - inversion of control 控制反轉(zhuǎn),調(diào)用者不再創(chuàng)建被調(diào)用者的實例,由框架(容器)創(chuàng)建
- DL - Dependency Lookup 依賴查找,容器提供回調(diào)接口和上下文環(huán)境給組件
- DI - Dependency Injection 依賴注入,容器創(chuàng)建好實例后再注入調(diào)用者
- .
- Autofac
- 最為流行的IOC框架之一,輕量且高性能
- Unity
- 最為流行的IOC框架之一,微軟出品
- Spring.NET
- 以Java版的Spring框架為基礎(chǔ),提供了多種功能
- Ninject
- 一個輕量級的注入框架
- ...
任務(wù)調(diào)度
- Quartz
- 開源的作業(yè)調(diào)度框架,是Quartz的C#移植版本
- ...
日志記錄
- Log4net
- 從java平臺下移植過來的非常優(yōu)秀的日志記錄框架
- Nlog
- 相對于Log4net,配置更為簡單
- Microsoft.Framework.Logging
- ASP.NET5中的日志框架集
- ...
搜索引擎
- Lucene.net
- 是Lucene的.net移植版本,它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu)
- ElasticSearch
- 是基于Lucene架構(gòu)面向企業(yè)搜索應(yīng)用的擴(kuò)展,提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口
- 盤古分詞
- 中文分詞組件,作者肖波
- HubbleDotNet
- 開源數(shù)據(jù)庫全文搜索引擎,作者肖波
- ...
工作流引擎(Workflow - WF)
- Business Process Management - BPM 業(yè)務(wù)流程管理
- .
- Windows Workflow Foundation - WWF
- 微軟的工作流產(chǎn)品,提供一套工作流引擎和VS解決方案自帶的流程設(shè)計器
- NetBPM
- 從JBpm1移植到.NET平臺下的開源工作流項目
- CCFlow
- 國產(chǎn)開源工作流
.Net常用工具及插件
- Colorful-IDE:可以更換VS的壁紙
- ReAttach:可以快速附加到進(jìn)程(開源)
- C# Outline:VS代碼塊折疊插件
- Reshaper:即時分析代碼質(zhì)量,消除錯誤,安全地更改代碼庫等
- OzCode:VS調(diào)試時候的輔助插件
- LINQ Pad:用來測試Linq查詢的插件
- Rextester:在線測試C#代碼
- SmartAssembly:.Net加密混淆工具
- ConfuserEx:.Net加密混淆工具
- ILSpy:.Net反編譯工具
- Reflector :.Net反編譯工具
?
?
?
總結(jié)歸納不易,如果有疑問或異解請留言給我。
后面我會寫一些文章來讓大家系統(tǒng)的學(xué)習(xí)web開發(fā),而這篇技術(shù)棧我也會不斷更新。
我喜歡和我一樣的人交朋友,不被環(huán)境影響,自己是自己的老師,歡迎加群 .Net web交流群, QQ群:166843154 欲望與掙扎
?
作者:小曾出處:http://www.cnblogs.com/1996V/p/7700087.html?歡迎轉(zhuǎn)載,但任何轉(zhuǎn)載必須保留完整文章,在顯要地方顯示署名以及原文鏈接。如您有任何疑問或者授權(quán)方面的協(xié)商,請給我留言
.Net交流群, QQ群:166843154 欲望與掙扎?
轉(zhuǎn)載于:https://www.cnblogs.com/1996V/p/7700087.html
總結(jié)
以上是生活随笔為你收集整理的.Net Web开发技术栈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 的列表的一些方法
- 下一篇: Vim快捷输出查找寄存器的内容(去除\,