2013-12-12 90 views
-1

你們可以告訴我,如果我的理解是正確的嗎?我曾經認爲在查看它之前,.NET是一種語言。然後,在閱讀了一些網站後,我發現它是一個框架,當時我認爲它就像應用程序的某種模板。現在我發現它是一個運行時(就像JVM一樣嗎?)和一個應用程序框架庫(簡單地說是什麼?)。澄清我對.NET和C的理解#

當他們說.NET語言時,它們是什麼意思?就像在.NET運行時(CLR)上運行的語言一樣?所以,.NET語言(我認爲)的C#和VB只能在Windows機器或其他具有CLR的機器上工作?因爲那麼,WinRT又是什麼呢?

「無論編程語言如何,所有爲.NET框架編寫的程序都由CLR執行。」 ---我認爲CLR是.NET框架的一部分,那麼他們爲.NET框架編寫的程序是什麼?

對於大量的問題我表示抱歉,但對我來說非常混亂,但我還沒有采取任何操作系統或編譯器設計課程,所以也許這就是原因。

也許這太寬泛了,但是所有的問題都是聯繫在一起的,所以如果我單獨詢問就沒有意義了。

除了你一直都說

,我發現在相關性這個偉大的網站:

Does.NET_run_only_on_Windows「> http://tutorials.csharp-online.net/CSharp_FAQ:是否 .NET_run_only_on_Windows

^^^的人們,看看這個問題在未來

+1

這可能會被關閉太寬泛,但這裏有一些小花絮: .NET語言運行在CLR上。標準的Microsoft實現在Windows上工作,但存在一個開源實現:Mono。 Mono可以在Windows,OS X和Linux上運行。 –

+0

你有沒有試過[.NET框架是什麼](https://www.google.com/search?q=what+is+the+.net+framework)?它找到了我:http://en.wikipedia.org/wiki/.NET_Framework。 –

+0

但是所有的問題都是聯繫在一起的,所以如果我單獨詢問就沒有意義。 – Abdul

回答

1

.NET這個詞是一個營銷術語,已被用於涵蓋許多事情。但是,.NET Framework更具體。顧名思義,它就是由很多東西組成的框架。

  • 的CLR(公共語言運行庫),這是一個標準的Microsoft相符的VM出爐,堪稱CLI(通用語言界面)。這與Java的JVM相當。

  • CIL(通用中間語言)也被稱爲IL或MSIL,它是CLR運行的語言。與Java的字節碼相比。

  • .NET Framework標準庫。

現在運行使用.NET Framework的東西,您需要以它爲目標的語言(或以CIL代碼)。這些語言通常稱爲.NET語言。其中最着名的是C#和VB.NET,但也有其他的,如F#和IronPython。當編譯(或解釋)這些語言的代碼成爲CLR運行的CIL代碼時。

請注意,.NET框架只是一個執行的CLI標準。單聲道是另一種兼容的實現,它是開放源代碼和多平臺的。

+0

好的,謝謝,我想我現在明白了。但最後一個問題;這意味着什麼「所有爲.NET框架編寫的程序,無論使用哪種編程語言,都由CLR執行。」?爲windows或任何使用.net編寫的程序?因爲CLR是.net – Abdul

+0

的一部分是的,所有針對.NET Framework的程序*都由相應的CLR虛擬機執行。 –

+0

好的謝謝,我不明白爲什麼上次我讀了它和其他網站上的wiki頁面,那我當時就不明白了。 – Abdul

1

所有像C#,F#,VB.net以及更多語言的語言被編譯成被解釋的CIL(通用中間語言)通過.net框架。

因此,如果您不使用本機API,則此代碼通常是便攜式的。如果你使用它們,你也可以使它們變得便攜,但這有點複雜但可能!在我的應用程序中,我將不同的平臺dll文件放在多個目錄中,這些目錄都在我的本地路徑變量中。

但是,您可以通過使用Mono .net端口來爲Unix和Linux系統使用該代碼。但是當你使用單聲道時,你需要重新編譯你的應用程序。

1

.NET是一個由許多庫和一個編譯器組成的框架。他們是.NET的幾個不同的編譯器,包括對C#和VB.NET的支持。

1

您可以使用C#,VB.NET,Iron Python等編程使用.NET Framework。一旦你編譯了代碼,它就變成了一箇中間語言代碼,這個代碼可以通過標準的Windows機器上的CLR來解釋,也可以通過一些其他的Mono框架來解析(這個和JVM類似)。