zoukankan      html  css  js  c++  java
  • 体系结构

    NET和JAVA的比较系列(1)- 体系结构

     
    .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。
    
    
     
     
    分类: .NET+JAVA
  • 相关阅读:
    Python Module_Socket_网络编程
    Python Module_Socket_网络编程
    从 2017 OpenStack Days China 看国内云计算的发展现状
    从 2017 OpenStack Days China 看国内云计算的发展现状
    说说excel
    一种防脱裤撞库的可能性?
    黑白相片变彩色相片的一种可能性?
    为什么需求文档一定要电子化?
    一个网页布局练习
    css田字格布局
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3644242.html
Copyright © 2011-2022 走看看