展开
湖北国联计算机科技有限公司
  • 首页HOME
  • 公司简介INTRODUCTION
  • 安全防御DEFENSE
  • 软件开发SOFTWARE
  • 物联网IOT
  • 运行维护SRE
  • 成功案例CASE
  • 联系我们CONTACT
  • Software Technology Sharing |技术分享

    .NET框架体系结构
    来源:荆州软件开发 时间:2017-11-15

    以下是湖北国菱计算机科技有限公司软件开发部的工程师小弟所作的.NET基础知识的总结,现经本人同意,分享给大家一起学习。


    刚开始接触.NET很疑惑,看完视频也不是太懂,通过总结和反复,从概括和概念入手,慢慢变得清晰了。这篇日志主要是我对.NET基础知识的了解,算作积累吧。

    .NET框架体系结构

    由四个主要部分组成



    公共语言运行时(CLR)是.NET框架应用程序的执行引擎..NET框架的关键作用在于,它提供了一个跨编程语言的统一编程环境,这也是它能独树一帜的根本原因。

    .NET框为开发人员提供了一个统一、面向对象、层次化、可扩展的类库集,即基底类别库(BCL)。

    而ADO.NET是一个新的数据访问框架,满足了ADO无法满足的三个重要需求:提供了断开的数据访问模型,这对Web环境至关重要;提供了与XML的紧密集成;还提供了与.NET框架的无缝集成.

    活动服务企页面(ASP.NET)提供了一个统一的Web开发模型,其中包括为开发人员生成企业级Web应用程序所需的各种服务和全新控件.它是一个已编译的、基于.NET环境的、可以用任何与.NET兼容语言创建的应用程序。


    .NET程序的编译与运行


    在编译使用.NET框架创建的代码时,不是立即创建成操作系统特定的本机代码,而是把代码编译为微软中间语言(MSIL)代码。在执行应用程序时由JIT编译器把MSIL编译为专用于某种操作系统和目标机器结构的本机代码,然后操作系统才能执行应用程序。

    程序集

    在编译应用程序时,创建的MSIL代码存储在一个程序集中,程序集包括可执行的应用程序文件(.exe)和其他应用程序使用的库(.dll),还包括元数据和可选资源。

    托管代码

    托管是什么意思,说白了就是让CLR管理着应用程序,从源代码到MSIL,再到本机代码,再到程序执行,由.NET与操作系统进行交互。不在CLR控制之下运行的应用程序时非托管的。

    托管代码最重要的一个功能是无用存储单元收集(garbage collection),也称垃圾回收,确保应用程序不再使用某些内存时,这些内存会被完全释放。

    下面这张图是.NET程序的编译与运行时的情况:



    .NET  VS J2EE


    .NET框架与SUN公司的J2EE体系结构是当今企业应用的两大体系结构,它们有很多相似之处,如下图(左侧为.NET框架,右侧为J2EE):



    可以看出,对于.NET框架的每一部分,J2EE体系结构都有所体现,他们都是企业级开发平台,并且广泛应用于Web开发领域。.NET框架和Java都使用了托管的运行时环境,都将源代码转换为一种中间语言,然后将其编译为本地的可执行代码,两种体系结构都提供了无用存储的单元收集器、动态类加载和异常处理等。

    下面是关于.NET的几个小问题:

    1、.NET框架可以运行于哪些平台?

    目前可以运行在windows95/98/ME、windowsNT4.0、windows2000、windowsXP、windows2003、windowsvista、windows 7、windows 10上。

    此外还有一个称为.NET精简框架的.NET框架版本,它运行在WindowsCE和其他嵌入式操作系统上。

    2、.NET框架支持哪些编程语言?

    .NET框架与编程语言无关。事实上任何语言都可以支持.NET框架。目前可以用许多语言来创建.NET程序,包括:C++、VB.net、JScript、C#。以后也会有大量的第三方语言可以用来创建.NET框架应用程序,包括Cobol、Eiffel、Perl、Python、Smalltalk等。

    3、.NET框架可以创建哪些类型的应用程序?

    并不限制应用程序的类型,可以创建控制台应用程序、windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。

    4、.NET框架和COM+服务之间是什么关系?

    在.NET框架中,不仅可以完全访问COM+服务,而且也更容易创建服务组件。.NET框架组件还可以利用COM+中所提供的服务,如事务、对象池、排列组件、事件等。

    那么“什么是.NET?”

    微软董事长兼首席软件设计师比尔盖茨的回答:“.NET是指连接信息、人群、系统和设备的软件。”

    微软原总裁兼首席执行官鲍尔默说:“.NET代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构。”

    现在再看这两个解释,确实是这么回事,好像没有那么抽象了。。。

    有不详不足之处,欢迎各位小伙伴们加入交流,电话:0716-6666211,网址:http://www.gl-ns.com/

    荆州地区政府网站建设 解决方案 专业团队 腾讯第三方平台 地址:湖北省荆州市沙市区荆沙大道楚天都市佳园一期C区29栋112       地址:湖北省松滋市才知文化广场1141-1142号     邮编:434200 联系电话:0716-6666211     网站编辑部邮箱:business@gl-ns.com 鄂公网安备 42100202000212号 备案号:鄂ICP备2021015094号-1     企业名称:湖北国菱计算机科技有限公司