.NET体系结构

 

对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解。

图1

简单的说下几个名词:

  • CLR: 通用语言运行平台(Common Language Runtime),是.NET框架的核心,与Java界的JVM类似。是代码执行的大管家,提供CTS和基础服务。
  • FCL: 类库(Framework Class Library),如图所示提供了很多的标准类型,方便程序设计人员,完成了程序设计基础性工作,作为初学者要知道怎么用这些类库。类库的根就是System。
  • BCL: 基类库Base Class Library,作为FCL的基类库,IO、String、NET等等必须熟练的掌握。
  • CLS: 公共语言规范Common Language Specification ,是.NET开发语言必须遵守的规范的最小集合。
  • CTS: 公共类型系统Common Type System,解决各个语言类型定义的不一致问题,成为了.NET体系中跨语言编程的规范,.NET所有语言都用这一个类型系统。

上图中CTS和CLS构成了通用语言基础架构CLI(Common Language Infrastructure)的一部分,CLI还包含CIL(常称为MSIL),CIL就是我们常说的IL代码,是所有的.NET语言编程生成的中间代码,其实就像汇编语言一样的中间代码,只不过IL是处于.NET和汇编语言之间的语言。这一点和Java中的字节码(Bytecode)类似,以后的文章会讲解它们的区别。

CLI、CTS、CLS和CIL的关系可以用下图来表示:

图2

具体开发运用程序时如下图:

图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所涵盖的范围。

图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

图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。

转载于:https://www.cnblogs.com/Jack-hui/p/3643770.html

.NET和JAVA的比较- 体系结构相关推荐

  1. 如何使用ArchUnit测试Java项目的体系结构

    by Emre Savcı 由EmreSavcı 如何使用ArchUnit测试Java项目的体系结构 (How to test your Java project's architecture wit ...

  2. 围城书评_书评:Java应用程序体系结构

    围城书评 Java应用程序体系结构:使用OSGi的带有示例的模块化模式是Kirk Knoerschild的开创性著作,内容涉及如何通过提供十八种模式的目录来设计应用程序设计中的模块化. 本书的第一部分 ...

  3. Java虚拟机的体系结构

    java虚拟机由如下五个部分组成: 一组指令集 一组寄存器 一个栈 一个无用单元收集堆 一个方法区 1.Java指令集 Java虚拟机支持大约248个字节码,每个字节码执行一种基本的CPU运算,例如把 ...

  4. Java Web App体系结构

    我曾经利用Servlet,JSP,JAX-RS,Spring框架,Play框架,带有Facelets的JSF和一些Spark框架. 以我的拙见,所有这些解决方案都远非面向对象和优雅的. 它们都充满了静 ...

  5. java jca_Java加密体系结构(JCA)参考指南

    JCA简介 Java平台强调安全性,包括语言安全性.密码学.公钥基础设施.身份验证.安全通信和访问控制. JCA是java平台的重要部分,它包含了"provider"架构和一系列数 ...

  6. java cryptography_Java密码体系结构简介:Java Cryptography Architecture (JCA) Reference Guide...

    来自Java官方的文档,作备忘使用. 简介: Java平台非常强调安全性,包括语言安全,密码学,公钥基础设施,认证,安全通信和访问控制. JCA是平台的一个主要部分,包含一个"提供者&quo ...

  7. Java虚拟机学习 - 体系结构 内存模型(转载)

    一:Java技术体系模块图 二:JVM内存区域模型 1.方法区 也称"永久代" ."非堆",  它用于存储虚拟机加载的类信息.常量.静态变量.是各个线程共享的内 ...

  8. Java虚拟机学习 - 体系结构 内存模型

    一:Java技术体系模块图 二:JVM内存区域模型 1.方法区 也称"永久代" ."非堆", 它用于存储虚拟机加载的类信息.常量.静态变量.是各个线程共享的内存 ...

  9. Java学习提升体系结构

    2019独角兽企业重金招聘Python工程师标准>>> 第一步:源码分析 看看大牛是如何写代码的,提升技术审美,提升核心竞争力.(重点) 第二步:工程化 工欲善其事必先利其器,不管是 ...

最新文章

  1. 专题8-Linux系统调用
  2. 《预训练周刊》第39期: 深度模型、提示学习
  3. Python 面试总结
  4. 在学习django的时候
  5. 插入,选择,归并,快速排序
  6. 集合之TreeMap源码分析,简单介绍什么是红黑树,SortedMap和NavigableMap之间的关系和区别
  7. Qt 中 QXml/QDom*** api设计吐槽
  8. UNIX(多线程):28---双buffer “无锁” 设计
  9. 使用IDEA 1分钟搭建运行SpringMVC项目
  10. 关于Context []startup failed due to previous errors
  11. 剑指offer面试题55 - I. 二叉树的深度(DFS)(递归)
  12. 第一章 Verilog语言和Vivado初步使用
  13. 1寸、小2寸、2寸证件照片是多大尺寸?
  14. uniapp连接本地服务器请求超时
  15. 阿里巴巴、腾讯投资Barefoot,助力C轮融资8000万美元
  16. 优化USB UVC ISO传输速度
  17. (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  18. 多年编码经验血泪史总结,你若想学Python,必须看完这几点再做决定
  19. 数据库原理 ODBC概述
  20. 用#define宏实现Add函数

热门文章

  1. 织梦ajax加载文章列表,织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布流效果...
  2. 默纳克系统服务器看平衡系数,默纳克启动停车舒适感调整
  3. oracle批量替换保留字,常见的oracle保留字
  4. java 如何去掉 nbsp_java-如何去掉JFrame上的最大化最小化和关闭按钮
  5. D3 Selections
  6. 3.9 神经网络的梯度下降法
  7. 混合云存储阵列 > 产品简介 > 应用场景 > 双活容灾
  8. VMware vSAN 7.0 发行说明
  9. VMware NSX part 1(介绍) part 2(NSX-Manager安装) part 3(NSX Controller部署)
  10. 消息中间件学习总结(16)——17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列