一. 回顧歷史
回顧個人發展歷程,自2012年初次接觸開發至今(2018年)已經有六個年頭,這期間陸陸續續學習並掌握了不少技術,C#語言、ORM框架、多線程技術、設計模式、前端技術、MVC、MVVM框架思想等等,每種技術隨着多次使用,隨着不斷的反思,逐漸經歷 “了解→理解→掌握→精通 ”這么一個過程,從最初的只能實現功能到如今的“每一步都考慮性能優化問題”,在近兩年內,開始寫博客,最初只是一時興起,想讓百度上能搜索出我的文章,但現在已經形成一個習慣,在沒有特殊事情耽擱的情況下,堅持一周兩篇博客,到目前為止,有效文章數已經達到140多篇,當然后面還會陸續寫下去。
作為理科生出身的我,沒有華麗的辭藻 ,沒有煽情篇章,話不多說,回顧完個人開發歷程,下面看一下C#和.Net的發展歷程,再次補充一點,.Net不是一門開發語言,而C#才是基於.Net運行環境下的一種高級開發語言。
從上面的表格可以看出來,C#這么語言至今已經接近20年歷史了,從2002年誕生的那一刻起,不斷更新,不斷改進,功能越來越強大,越來越方便程序們的開發,當然.NET類庫、CLR、以及開發神器Visual Studio也在不端更新。(VS 2017 宇宙第一開發神器 這個應該毫無爭議吧)
之前曾說過,C#僅僅是.Net下的一門開發語言而已,.Net生態遠遠不止如此。
我們以前提到.Net,指的都是.Net FrameWork,經常被java程序員嘲笑,.Net不能跨平台,但現在不會來,他們可以閉嘴了,.Net Core就是為跨平台而生,下面簡單總結一下.Net生態。
(1) 語言有:C# 、F#、VB
(2) C/S程序開發技術有:WinForm、WPF
(3) B/S程序開發技術有:ASP.Net WebForm 、ASP.Net MVC、Core MVC
(4) 通訊技術有:WebAPI、WCF、SignalR
(5) 日志框架有:Log4Net
(6) 數據庫訪問技術有:ADO.NET 、EF
這里不再繼續列舉了,也沒有必要再列舉了,因為對於新時代合格的工程師而言,沒有人限制你只能掌握一種技術,任何一個大型的信息系統,都是有多種技術組合而來,在現在一個大一統的時代,連.Net的生身父母“微軟”都開源了,難道小小的你還能故步自封嗎?
二. 掃盲C#運行原理
C#作為一門高級語言,機器是不認識的,那么它是怎么編譯成讓機器碼讓機器識別呢,一張圖勝似千言萬語,請看下圖。
概念補充:
CTS:C#、F#、VB都必須遵守的通用類型
CLS:通用語言規范(CLS是CTS的一個子集)
BCL:基礎類庫
總結:C#是一種面向對象的高級編程語言,符合CLR中的CLS(通用語言規范)
.Net Framework包含三部分:
1 CLR(windows), .net core的clr支持(windows、linux、macos)
2 開發工具包
3 BCL(基礎類庫)
三. 基礎進階系列及章節詳細介紹
最近一直在考慮初學者學習.Net應該從哪學起,上面說的天花亂墜,有什么用呢? 如果連.Net最基礎的知識都掌握不了,還談什么開發呢?
這里結合我自己的理解,整理出一條較為合適的路線,並對之前的博客重新排版重新改寫,形成這個【DotNet進階篇】系列,一方面方便自己日后復習,另一方面也為.Net社區盡一點綿薄之力。
第一節:從面向對象思想(oo)開發、接口、抽象類以及二者比較
第二節:覆寫(new)、重寫(override)、和重載(overload)
第三節:深度剖析各類數據結構(Array、List、Queue、Stack)及線程安全問題和yeild關鍵字
第五節:泛型(泛型類、接口、方法、委托、泛型約束、泛型緩存、逆變和協變)
第七節:語法總結(1)(自動屬性、out參數、對象初始化器、var和dynamic等)
第九節:委托和事件(1)(委托的發展歷史、插件式編程、多播委托)
第十節:委托和事件(2)(泛型委托、Func和Action、事件及與委托的比較)
第十一節:特性(常見的特性標簽、自定義特性、特性的使用案例)
第十五節:Expression表達式目錄樹(與委托的區別、自行拼接、總結幾類實例間的拷貝)
第十七節:易混淆的概念(靜態和非靜態、拆箱和裝箱、值傳遞和引用傳遞、深拷貝和淺拷貝)(持續更新)
第二十二節:XXXXXXXXXXXXXXXXXXXXXXXX
第二十三節:XXXXXXXXXXXXXXXXXXXXXXXX
!
- 作 者 : Yaopengfei(姚鵬飛)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 聲 明1 : 本人才疏學淺,用郭德綱的話說“我是一個小學生”,如有錯誤,歡迎討論,請勿謾罵^_^。
- 聲 明2 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。