在.net平台用c#這麼久,自然會發現其版本很多,相應的概念也會很多,常常都是萌萌噠。而在實際工作中經常會遇到需要配置dll版本號,公鑰token等場景,因而對c#、net、clr、框架型別等基礎概念有個大略的了解有很大必要性。當涉及到程式集版本時,注意檢視全域性程式集快取gac(global assembly cache),路徑為c:\windows\assembly,還有幾個相似的.net framework路徑,同時可以使用il disassembler (x64)檢視dll中所引用的外部庫資訊。
c#1.0,foreach迴圈支援自動dispose等小特性。
c#2.0,主要特性包括泛型、可空型別、匿名方法與委託的增強、迭代塊。小特性有分部型別、靜態類、包含不同訪問修飾符的取值和賦值方法、命名空間別名、pragma指令以及固定大小的緩衝器。
c#3.0,主要特性就是linq了,包括:lambda表示式、表示式樹、擴充套件方法。其他特性包括:自動屬性、陣列和區域性變數的隱式型別、物件和集合的初始化程式、匿名型別。
c#4.0,主要集中於提高互操作性的動態型別。小特性包括命名實參、可選引數、更好的com互動性、泛型可變性。
c#5.0,主要特性是新的非同步操作模型async, await。小特性包括forreach變數捕獲的變化和呼叫者資訊特性。
net 2.0,asp.net新增母版頁、預編譯功能;winform新增tablelayoutpanel等布局類;通過雙快取、新的資料繫結模型、clickone部署增強效能;backgroudworker用於在多執行緒應用程式中更新ui。
net 3.0,提供了四個大庫:wpf、wcf、wf、windows cardspace安全識別系統
net 3.5,支援linq,包括linq to objects、linq to sql、linq to xml,以及表示式樹。其他特性包括system.addin框架、新增各種加密演算法、client profile用於客戶端精簡部署、entity framework。
net 4.0,微調核心api,如string.join()、增加泛型介面和委託的協變性和逆變性、增加system.numeric用於數值運算、用於延遲的初始值的lazy、pair和tuple泛型類家族等、mef(managed extensibility framework)可擴充套件性框架等。
net 4.5,非同步操作和tpl並行庫。
clr 2.0:支援64位處理器,以及sql server中承載clr的功能,這點其實就是clr也支援類似於jvm的配置功能,包括記憶體和執行緒的細粒度管理。
clr 4.0:改進了互操作封裝效能、一致性il stubs everywhere即il的一致性、提供更加完善的安全模型、支援同一程序同時執行不同clr,但最主要確實對程式設計師透明的垃圾**。
桌面框架:客戶端配置(client profile)、32位&64位jit、伺服器&工作站版本。
精簡框架(compact framework):執行與xbox、winphone,垃圾**機制相對簡單(不是分代式)。
微框架(micro framework):是解釋型而非jit編譯,是開源的。
windows runtime(winrt):是win8引入的新平台,以跨平台的目的建立。
tip:此部分內容主要作為作為知識點複習瀏覽所用,只要有個映象就足夠了,其中的mef很像spring的解耦,動態的查詢介面的實現類。
快速入門系列 CLR 01基本概念
在.net平台用c 這麼久,自然會發現其版本很多,相應的概念也會很多,常常都是萌萌噠。而在實際工作中經常會遇到需要配置dll版本號,公鑰token等場景,因而對c net clr 框架型別等基礎概念有個大略的了解有很大必要性。當涉及到程式集版本時,注意檢視全域性程式集快取gac global ass...
Spark基本概念快速入門
可以認為應用是多次批量計算組合起來的過程,在物理上可以表現為你寫的程式包 部署配置。應用的概念類似於計算機中的程式,它只是乙個藍本,尚沒有執行起來。spark學習筆記三 spark原理介紹 sparkcontext spark最重要的api,使用者邏輯與spark集群主要的互動介面,它會和clust...
Python入門系列(三) 基本概念
本課程主要講述python裡面的一些最基本的概念。一 常量 字面意義上的 乙個字面意義上的常量的例子是如同5 1.23 9.25e 3這樣的數,或者如同 this is a string it s a string 這樣的字串。它們被稱作字面意義上的,因為它們具備 字面 的意義 你按照它們的字面意義...