.Net Web微信H5鱼虾蟹网站开发搭建技术栈
生活随笔
收集整理的這篇文章主要介紹了
.Net Web微信H5鱼虾蟹网站开发搭建技术栈
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文整理了當前企業web微信H5魚蝦蟹網站開發搭建(h5.fanshubbs.com)的管理系統架設Q1687054422,商城等系統的常用開發技術棧。
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)
- 基于任務的異步模式(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
- 四大特性(ACID)
- 鎖機制
- 種類、粒度、加鎖方式
- 悲觀鎖:開銷大,避免長事務
- 表鎖、行鎖/讀鎖、寫鎖
- 樂觀鎖:開銷小,讀大于寫
- 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...
- Simple Object AccessProtocol,簡單對象訪問協議,基于XML 和 HTTP 用于在應用程序之間進行通信的一種通信協議
- 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
- ASP.NET Web form
- 事件模型
- 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
- ...
- 在.Net中(主要應用于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管道模型:
- 經典模式IIS5/IIS6:
- IIS管道模型
- ASP.NET管道模型
- ...
- 集成模式IIS7:
- HttpContext
- ...
- IIs的常用功能及使用及配置:
- 請求篩選、失敗請求跟蹤等
- .Net MVC生命周期
- Httphandler、HttpModule、Globar的編寫及應用...
- ...
- 經典模式IIS5/IIS6:
- ASP.NET與IIS管道模型:
- 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)
- ...
- OWIN Layer(定義的一系列層)
- System.Web(ASP.NET的核心)
- .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執行
- .NET Framework Base Class Library(BCL基類庫)
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
- Request請求頭
- 實時通信方案
- .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
- 訪問流量來源
- 瀏覽器
- 移動設備
- ...
- ...
總結
以上是生活随笔為你收集整理的.Net Web微信H5鱼虾蟹网站开发搭建技术栈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: -fpie -pie_Google的Pi
- 下一篇: 【微信小程序】java游戏后端开发