以下收集了關(guān)于.NET幾大熱點問題及簡要答案,防止我們回答問題不專業(yè)的尷尬。同時還將一些.NET資源的相關(guān)網(wǎng)址羅列一二。
一.什么是.Net?它主要包括什么?
.Net是為簡化在第三代因特網(wǎng)的高分布式環(huán)境下的應(yīng)用程序開發(fā),基于開放互聯(lián)網(wǎng)標(biāo)準(zhǔn)和協(xié)議之上,實現(xiàn)異質(zhì)語言和平臺高度交互性,而構(gòu)建的新一代計算和通信平臺。
.Net主要包括普通語言運行時(Common Language Runtime)和.Net構(gòu)架類庫。
二..Net主要的優(yōu)點有哪些?
.Net的主要優(yōu)點有跨語言,跨平臺,安全,以及對開放互聯(lián)網(wǎng)標(biāo)準(zhǔn)和協(xié)議的支持。
.Net支持多種語言的互操作,即在一種語言下開發(fā)的組件,可在另一組件下通過面向?qū)ο蟮睦^承而得以重用,目前.Net支持的語言達二十多種。
.Net通過將各語言先編譯成中間語言(IL),然后再執(zhí)行時用即時(Just In Time)編譯器將之編譯成本地平臺代碼來實現(xiàn)異構(gòu)平臺下對象的互操作,目前.Net支持的平臺有Windows,Linux和Unix的支持正在開發(fā)中。
.Net通過普通語言運行時(Common Language Runtime)來實現(xiàn)資源對象,類型的安全。
.Net通過對HTTP,XML,SOAP,WSDL等Internet標(biāo)準(zhǔn)的強勁支持提供在異構(gòu)網(wǎng)絡(luò)環(huán)境下獲取遠程服務(wù),連接遠程設(shè)備,交互遠程應(yīng)用的編程界面.
三..Net中的普通語言運行時(Common Language Runtime)指什么?它在.Net中處什么位置?
CLR(Common Language Runtime)普通語言運行時是整個.net framework構(gòu)建的基礎(chǔ),是實現(xiàn).Net跨平臺,跨語言,代碼安全等核心特性的關(guān)鍵。它實際上是駐留在內(nèi)存里的一段代理代碼,負(fù)責(zé)在整個.net整個執(zhí)行期間的代碼管理工作,比較典型的有:內(nèi)存管理,線程管理,遠程管理,代碼強制安全類型等。這些都可稱得上.net framework的生命線。實際上,普通語言運行時代理了一部分操作系統(tǒng)的管理功能。
四..Net構(gòu)架類庫是什么?包括哪些內(nèi)容?
.Netl構(gòu)架類庫是基于運行時面向?qū)ο蟮奶匦远ㄔ斓?,和普通語言運行時緊密集成的一族可重用類(Class)的集合。它大大簡化了軟件開發(fā)的難度,而且很容易與第三方組件無縫集成。
.Net架構(gòu)類庫主要包括對一下編程模型的支持:
1. 控制臺應(yīng)用程序。
2. 腳本和宿主應(yīng)用程序。
3. Windows Forms應(yīng)用程序(Windows 桌面GUI應(yīng)用程序)。
4. ASP.Net應(yīng)用程序。
5. Web Services應(yīng)用程序。
6. Windows 服務(wù)程序
五..Net支持的開發(fā)語言有哪些?.Net語言的互操作性是指什么?
.Net聲稱支持市面上20多種語言,但目前只有微軟官方發(fā)布的C#,Visual Basic.Net,Managed C++,和Jsript,其他廠商聲稱正在開發(fā)中的支持工具有COBOL,Eiffel,Perl,Smalltalk,Python。
.Net語言的互操作性是指遵循普通語言運行時(Common Language Runtime)規(guī)范的語言在對象繼承方面的支持,即用一種語言在.Net平臺下開發(fā)的類可在另一語言中重用,這通過一種稱作微軟中間語言MIL來實現(xiàn),即語言編譯器首先將該語言編譯成微軟中間語言,再在相應(yīng)平臺下編譯出本地代碼。這一切都是在普通語言運行時的規(guī)范下進行。
六..Net支持的平臺有哪些?它的跨平臺實現(xiàn)得如何?
目前支持.Net的平臺有Windows 2000, NT4 SP6a, Windows Me和Windows 98。其聲稱支持的平臺有Unix,Linux等,目前有三個項目正在開發(fā)Linux下的.Net平臺:Ximian公司的Mono項目,DotGNU以及 Potable .NET.
七..Net與COM的關(guān)系是什么?.Net是否意味著COM的終結(jié)?
COM定義了組件對象間通信的二進制標(biāo)準(zhǔn),.Net通過組件內(nèi)置的類型系統(tǒng)提供了類似的機制,它為此提供了另一個途經(jīng)。.Net并不意味著COM的終結(jié),但必將大大減少開發(fā)人員對COM的依賴。.Net 支持COM和.Net組件之間的互操作性,實際上可通過Runtime Callable Wrapper(RCW)來實現(xiàn)在.Net中獲取COM組件,通過COM Callable Wrapper(CCW)來實現(xiàn)在COM中獲取.Net組件。
八..Net中的中間語言(IL)是什么?它在.Net平臺中起什么作用?開發(fā)人員可以用中間語言(IL)編程嗎?
.Net中的中間語言是指可以在普通語言運行時規(guī)范下,.執(zhí)行時通過即時(Just In Time)編譯器轉(zhuǎn)化為本地代碼的,與CPU獨立的一族指令集合。它在.Net平臺中是實現(xiàn)語言互操作的一個核心環(huán)節(jié),所有.Net平臺的語言都要先被編譯成中間語言(IL)。程序員也可以直接利用中間語言(IL)來編程,但不推薦那樣做,中間語言對理解.Net對象某些行為和程序的調(diào)試很有幫助
九..Net中的自動垃圾收集是什么?它給.Net平臺下的編程帶來什么變化?
.Net垃圾收集器負(fù)責(zé)整個.Net運行時受管代碼的內(nèi)存分配與釋放任務(wù)。它通過一定的優(yōu)化算法來選擇收集的對象和時間。程序員只有在釋放大量受管資源時可以進行立即強制垃圾收集,在釋放非受管資源時采用終止化(Finalize)操作來處理,需要在程序運行中釋放的應(yīng)該實現(xiàn)Dispose()方法,并明確調(diào)用。其它時間將資源的回收交由.Net垃圾收集起來做。
十..Net的受管(Managed)代碼與非受管(Unmanaged)代碼指什么?他們的編碼有什么區(qū)別?
.Net的受管代碼(Managed Code)是指符合普通語言運行時(Common Language Runtime)規(guī)范,在內(nèi)存中受運行時代碼代理進行內(nèi)存管理,線程管理,遠程管理,代碼強制安全類型的代碼。非受管代碼指對內(nèi)存,文件,數(shù)據(jù)庫等非受管資源進行操作的代碼,他們通常不受運行時代碼代理管理,是不安全的。對受管代碼的編程只需專注于編程的邏輯,對于內(nèi)存等資源的管理交由普通語言運行時(Common Language Runtime)來負(fù)責(zé),而對非受管代碼的編程,則要開發(fā)人員精心負(fù)責(zé)各種非受管資源的分配和回收工作。