標籤:style io os 使用 ar 檔案 資料 sp 問題
好久沒寫部落格了,最近心情比較low,不知道為什麼。很流行的一個問題叫做:如果你明天就掛了,那麼你最後悔的事情將會是什麼。我想了兩個月,答案是不知道,無所謂。這樣不好,那這個問題先放一邊吧,我們開始這一篇隨筆。
在學習計劃中也說過,C#用四本書學習——C#編程入門,進階編程,CLR via C#,Pro C# 5.0 and the .NET 4.5 Framework。目前看的是第一本,事實上以前看過這一本,但是在有了一定的編程經驗後回頭重看,觀感就完全不一樣了。下面是第一章的學習筆記。
1..NET Framework是Microsoft為開發應用程式建立的平台。
2.可以運行在各個作業系統:Windows、Linux、Mac OS等。
3.可以使用它建立多種應用程式:Windows應用、Web應用、Web服務等。
4.可以使用它建立多平台應用。
5.可以用於多種語言:C#、VB、C++、JScript等。
6..NET平台主要包含一個程式碼程式庫,庫按照模組劃分,通過OOP的方式使用。
7.類型是資料的一種表達方式,基礎類型保證了跨語言互動。
8.一般型別系統-Common Type System-CTS,指的就是6中的程式碼程式庫。
9..NET平台同時包含公用語言運行庫,Common Language Runtime CLR,管理開發的所有應用程式的執行。
10.使用.NET編寫代碼就是使用它的大碼褲編寫代碼。
11.執行C#代碼,必須把他們轉換為目標作業系統理解的語言-機器碼-native code。
12.11中的轉換成為編譯代碼,由編譯器執行。.NET Framework下包括兩個階段。
13.編譯使用.NET Framework庫的代碼,包括兩個階段:第一,由IDE編譯為通用中繼語言-Common Itermediate Language-CIL代碼;第二,JIT(Just-In-Time)編譯器將CIL編譯為專用於OS和目標機器結構的機器碼,CIL代碼盡在需要時才被JIT編譯器編譯為機器碼。
14.CIL代碼獨立於電腦、作業系統和CPU-平台無關;JIT是跟作業系統和CPU有關的。
15.Microsoft Intermediate Language-MSIL或IL等效視為CIL。
16.所建立的CIL代碼儲存在一個程式集中,程式集包括可執行檔應用程式*.exe檔案和應用程式使用的庫*.dll;同時包括元資訊和可選資源。
17.元資訊允許程式集完全自描述,也就是說不需要其他資訊就可以使用程式集(系統註冊表什麼的)。
18.全域組件快取-Global Assembly Cache-GAC,可重用代碼存放的地方,供所有應用程式訪問。
19.代碼編譯為CIL,再被JIT編譯為native code後,CLR會管理正在執行的用.NET Framework編寫的代碼。
20.執行代碼的階段稱為運行時,runtime。
21.CLR管理應用程式的方式是:管理記憶體,處理安全性,跨語言調試等等。
22.C#只能編寫在託管環境下啟動並執行代碼,C++可以編寫非託管類型的應用程式。
23.CLR的託管功能可以使.NET自己與作業系統進行互動。
24.記憶體回收Garbage Collection是Managed 程式碼最重要的功能,自動釋放應用程式中不再使用的記憶體,回收記憶體的時間不定。
25.總流程大致為,.NET相容的語言進行編程,編譯為CIL儲存在程式集,執行是JIT編譯器編譯為機器碼,Runtime階段在託管的CLR環境運行機器碼。
26.一個應用程式的代碼位於多個原始碼檔案中,編譯到一個程式集,這個過程稱為連結Linking,這是25中第一步到第二步裡可以發生的事。
27.C#是一種型別安全的語言:類型之間的轉換有嚴格的規則。
28.ASP.NET-Active Server Pages.NET-.NET下能動態產生Web內容的系統。
29.Active Data Objects.NET-ADO.NET資料庫訪問模組。
30.C#的LINQ-Language Integrated Query。
總的來說,上面記錄的東西都是我理解的內容,目前裡面型別安全這個地方可能要在看看書。那麼.NET 包括CTS和CLR,建立.NET應用程式套件組合括四個步驟,見第25條,其餘再說。
1.對於.NET的初步理解和介紹