.NET和JAVA的比較- 體系結構


.NET體系結構

 

 

對於.NET Framework體系結構,參考了"你必須知道的.NET"並”借用“別人的經典體系結構圖從宏觀上說明一下我的理解。

 

clip_image002

圖1

 

簡單的說下幾個名詞:

上圖中CTS和CLS構成了通用語言基礎架構CLI(Common Language Infrastructure)的一部分,CLI還包含CIL(常稱為MSIL),CIL就是我們常說的IL代碼,是所有的.NET語言編程生成的中間代碼,其實就像匯編語言一樣的中間代碼,只不過IL是處於.NET和匯編語言之間的語言。這一點和Java中的字節碼(Bytecode)類似,以后的文章會講解它們的區別。

CLI、CTS、CLS和CIL的關系可以用下圖來表示:

clip_image004

圖2

具體開發運用程序時如下圖:

clip_image006

圖3

 

JAVA技術體系 

  

說下我找到的JAVA相關的資料,JAVA只是粗淺的了解一些。有的可能說的不准確,希望錯誤的地方大家指出,對於JAVA來說就沒有這么“龐大”了,畢竟JVM中只運行JAVA一種語言。

Sun官方所定義的Java技術體系包含Java程序設計語言、各種硬件平台上的Java虛擬機、Class文件格式、JavaAPI類庫、來自商業機構和開源社區的第三方Java類庫。

我們可以把Java程序設計語言、Java虛擬機、JavaAPI類庫這三部分統稱為JDK。(JavaDevelopmentKit),JDK是用於支持Java開發的最小環境。可以把JavaAPI類庫中的Java SE API子集和Java虛擬機這兩部分統稱為JRE(Java Runtime Environment),JRE是支持Java程序運行的標准環境。圖4展示了Java技術體系所包括的內容,以及JDK和JRE所涵蓋的范圍。

clip_image008

圖4

JAVA中的很多名詞不是很了解,先貼幾個:

  • JPDA:Java平台的調試架構
  • JavaFx:作為一個富客戶端平台的下一步演進。它的目的是為企業業務應用提供一個輕量級的,硬件加速的Java UI平台。
  • Swing: 所謂的Lightweight組件,不是通過native方法來實現的,所以Swing的窗口風格更多樣化。但是,Swing里面也有heavyweight組件。比如JWindow,Dialog,JFrame
  • 同時,由於AWT是通過操作系統實現的,所以AWT的組件只能采取各個操作系統的交集,組建數量少,功能少。而Swing則不依賴於操作系統,所以組件多,功能強。
  • AWT: 是通過調用操作系統的native方法實現的,所以在Windows系統上的AWT窗口就是Windows的風格,而在Unix系統上的則是XWindow風格。

同樣JAVA的實現如圖5

clip_image010

圖5

圖4是根據組成部分的功能划分的,按照技術所服務領域划分, Java技術體系可以分為四個平台,分別為:

  • JavaCard:支持一些Java小程序(Applets)運行在小內存設備(如智能卡)上的平台。
  • JavaME(MicroEdition):支持Java程序運行在移動終端(手機、PDA)上的平台,對JavaAPI有所精簡,並加入了針對移動終端的支持,這個版本以前稱為J2ME。
  • JavaSE(StandardEdition):支持面向桌面級應用(如Windows下的應用程序)的Java平台,提供了完整的Java核心API,這個版本以前稱為J2SE。
  • JavaEE(EnterpriseEdition):支持使用多層架構的企業應用(如ERP、CRM應用)的Java平台,除了提供JavaSEAPI外,還對其做了大量的擴充並提供了相關的部署支持,這個版本以前稱為J2EE。

目前作為Andriod基本取代了JavaME成為了移動領域開發的熱點。JAVA體系相比.NET只多不少,不是一張圖就能展示完的。本來想找個完整圖展示所有的JAVA技術體系,可惜沒有找到。

接下來說下我理解的.NET(C#)和JAVA的相關技術對應關系。有錯請指出啊~~

 

.NETC#

JAVA

WPF/WinForm

Swing等/AWT

ASP.NET

JSP、Servlet

EntityFramework/NHibernate/ibatis.net

Hibernate/ibatis

Spring.NET

Spring

MVC

Strusts

Windows Mobile/Windows Phone

Java ME/Andriod

WCF/WebService

WebService

WF(Work Flow)-

JBPM

                                              表1

 

 
         
今天的講解就到此,謝謝您的閱讀,下次再見。

如果您覺得這篇博客對您有所啟發,不妨點擊一下右下角的【推薦】按鈕。

如果您對本博客內容感興趣,請繼續關注我,我是Bull Li。
 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM