1.C#简介
2019獨角獸企業重金招聘Python工程師標準>>>
/*.NET Framework的含義.NET Framework是Microsoft為開發應用程序而創建的一個具有革命意義的平臺盡管.NET Framework的Microsoft版本運行在Windows系統上,但以后將推出運行在其他操作系統上的版本例如mono,他是.NET Framework的開源版本包含C#編譯器,該版本可以運行在幾個操作系統上包括linux和mac os另外還可以在PDA類設備和一些智能電話上使用Microsoft .NET Framework Compact Framework,使用.NET Framework一個重要原因是它可以作為集成各種操作系統的方式可以使用.NET Framework創建Windows應用程序,web應用程序,web服務和其他各種類型的應用程序。對于web應用程序,按照定義它們是平臺的應用程序,因為任何web瀏覽器的系統都可以訪問它.NET Framework的涉及方式確保它可以用于各種語言,包括C#,以及C++,VB,JScript.NET Framework主要包含一個非常大的代碼庫,它可以在客戶端語言中通過面向對象編程技術OOP來使用這些代碼這個庫可以分為多個不同的模塊,這樣就可以根據系統得到的結果來選擇使用其中的各個部分還有一個模塊包含web開發的代碼塊,一些模塊還分為更具體的子模塊,其目的是不同操作系統可以根據自己的特性,支持其中的部分或全部模塊例如PDA支持所有的核心.NET功能,但不需要某些更高級的模塊部分.NET Framework庫定義了一些基本類型,類型是數據的一種表達方式,指定其中最基礎的部分,以便使用.NET Framework在各種語言之間交互操作這叫做通用類型系統Common Type System CTS除了提供這個庫意外.NET Framework還包含.NET公共語言運行庫Common Language Runtime CLR,它負責管理用.NET庫開發的所有應用程序的執行使用.NET Framework編寫應用程序,就是使用.NET代碼庫編寫代碼,采用Visual Studio 2017編寫代碼為了執行C#代碼,必須把他們轉換為目標系統能夠理解的語言,即本機代碼,這種轉換為編譯代碼,由編譯器執行但在.NET Framework此過程包含兩個階段CIL和JIT在編譯使用.NET Framework庫的代碼時,不是立即創建專用語操作系統的本機代碼,而是把代碼編譯為通用中間語言Common intermediate Language CIL,這些代碼并非專門用于任何一種操作系統,也并非專門用于C#,其他.NET語言可以在第一階段編譯為這種語言,開發C#應用程序時,這個編譯步驟由VS完成顯然,要執行應用程序,必須完成更多的工作,就是just-In-Time JIT編譯器的任務,他CIL編譯為專用于OS和目標機器結構的本機代碼。這樣OS才能執行應用程序,這里編譯器的名稱just-In-Time反映了CIL代碼僅在需要時才編譯的事實過去常常需要把代碼編譯為幾個應用程序,每個應用程序都用特定的操作和CPU結構。這通常是一種優化形式例如為了讓代碼在AMD芯片組上運行的更快,而且有時是非常重要的例如工作在WIN9X和WINT/2000環境下的應用程序現在就不需要,因為JIT編譯器使用CIL代碼,而CIL代碼是獨立于計算機,操作系統和CPI之外的目前有集中JIT編譯器,每種編譯器都用于不同的結構,我們總能找到一個合適的編譯器創建所需的本機代碼這樣就可以忽略于系統相關的細節,把注意力集中在代碼的功能上就夠了程序集在編譯應用程序時,所創建的CIL代碼存儲在一個程序集中,程序集包括可執行的應用程序文件(.exe)和其他應用程序使用的庫(.dll)除了包含CIL外,程序集還包含元信息即程序集中包含的數據的信息,也叫元數據和可選資源,元信息允許程序集是完全自描述的,不需要其他信息就可以使用程序集,也就是說,不會遇到下列情況:不能把需要的數據添加到系統注冊表中,而這種情況在使用其他平臺進行開發時常常出現因此部署應用程序就非常簡單了,只需要把文件復制到遠程計算機上的目錄下即可,因為不需要目標系統上的其他信息,所以只需要從該目錄中運行可執行文件即可當然不必把運行應用程序所需要的所有信息都安裝到一個地方,可以編寫一些代碼來執行多個應用程序所要求的任務,此時,通常把這些可重用的代碼放在所有應用程序都可以訪問的地方。在.NET Framework中,這個地方是全局程序集緩存Global Assenvly Cache GAC,把代碼放在這個緩存中是很簡單的,只需要包含代碼的程序集放在包含該緩存的目錄即可托管代碼在將代碼編譯為CIL,在用JIT編譯器將它編譯為本機代碼后,CLR的任務還沒有全部完成,還需要管理正在執行的用.NET Framework編寫的代碼這個執行代碼的階段通常叫做運行時runtime,即CLR管理著應用程序其方式是管理內存,處理安全性以及允許進行跨語言調試等,相反不收CLR控制運行的應用程序屬于非托管類型某些語言如C++可以用于編寫這類應用程序,例如訪問操作的低級功能,但是在C#中,只能編寫在托管環境下運行代碼我們將使用CLR的托管功能,讓.NET自己與操作系統記性交互垃圾回收托管代碼最重要的一個功能是垃圾回收 garbage collection 這種.NET方法可以確保應用程序不再使用某些內存時就會完全釋放這些內存,在.NET之前這項工作由程序員完成,代碼中幾個簡單錯誤會把大塊內存分配到錯誤的地方,使這些內存神秘消失,這通常意味著計算機的速度逐漸變慢,最終導致系統崩潰.NET垃圾回收會定期檢查計算機內存,從中刪除不需要的內容,它不設置時間幀,可能一秒會進行上千次檢查也可能幾秒才檢查一次,或隨時檢查,但一定會檢查注意:在設計程序時在需要許多內存才能運行的代碼應自己執行這樣的檢查,而不是坐等垃圾回收組合起來創建.NET應用程序步驟1.在使用某種.NET兼容語言C#編寫應用程序代碼2.把代碼編譯為CIL存儲在程序集中3.在執行代碼時如果這是一個可執行文件就自動運行,或者在其他代碼使用它時運行,首先必須使用JIT編譯器將代碼編譯為本機代碼4.在托管的CLR環境下運行本機代碼,以及其他應用程序或進程在上述過程還有一點需要注意,在2中編譯為CIL的C#代碼不一定包含在單獨文件中,可以把應用程序代碼放在多個源代碼文件中,在把它們編譯到一個程序集中,這個過程叫做鏈接,是非常有用的,原因是處理幾個較小的文件比處理一個大文件要簡單的多,可以把邏輯上相關代碼分解到一個文件,以便單獨進行處理,這也便于在需要時找到特定的代碼塊,讓每個人編寫一小塊代碼,而不會破壞已編寫好的代碼部分和其他人正在處理的部分C#的含義C#是可用于創建要運行在.NET CLR上的應用程序的語言之一,它從C/C++演化而來,是Microsoft專門為使用.NET平臺而創建的使用C#開發應用程序比使用C++簡單,因為語法簡單,但是C#是一種強大的語言,在C++中能完成的任務幾乎都能用C#完成C#帶代碼常比C++略長一些,因為C#是一種類型安全的語言,在外行人看來這表示一旦為某個數據指定了類型,就不能轉換為另外一個不相關的類型,所以在類型之間轉換時,必須遵守嚴格的規則,執行相同任務時,用C#編寫的代碼通常比用C++編寫的代碼長,但C#代碼更健壯,調試起來更簡單,.NET始終可以隨時跟蹤數據的類型,在C#中不能完成諸如把4字節的內存放在這個數據中,使之有10個字節長,并把它解釋為X等任務,C#只是用于.NET開發的一種語言,C#優點,它是唯一徹頭徹尾的為.NET Framework設計的語言,是在移植到其他操作系統上的.NET版本中使用的主要語言。C#能寫什么樣的應用程序Windows應用程序WEB應用程序WEB服務*/?
轉載于:https://my.oschina.net/eddylinux/blog/1484045
總結
- 上一篇: asp.net DataGrid Gri
- 下一篇: Xcode6.3 怎样使用Leaks查看