刚开始接触.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和其他嵌入式操作系统上。

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

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

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

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

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

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

那么“什么是.NET?”

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

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

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

推荐:http://www.cnblogs.com/roucheng/p/3521864.html

.NET框架体系结构的更多相关文章

  1. Spring核心框架体系结构(jar包引用分析)[转]

    很多人都在用spring开发java项目,普通添加lib目录拷贝jar包,或者创建maven项目时,配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错 ...

  2. spring framework核心框架体系结构

    很实用,稀里糊涂的我算是看清了. 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖 ...

  3. Spring 核心框架体系结构

    转载:http://www.admin10000.com/document/10447.html 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring ...

  4. spring核心框架体系结构

    很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...

  5. spring framework核心框架体系结构(转载)

    作者:Dreawer 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spr ...

  6. spring核心框架体系结构(各个jar包作用)

    转自:https://blog.csdn.net/sunchen2012/article/details/53939253 弄懂spring就是弄懂spring各个jar包的作用 spring的jar ...

  7. 【架构】spring framework核心框架体系结构

    Spring官方文档,用的版本为4.3.11版本. 一.引用官方文档 2.2.1核心集装箱 所述核心容器由以下部分组成spring-core, spring-beans,spring-context, ...

  8. ORM框架:EF与NHibernate了解

    在.Net Framework SP1微软包含一个实体框架(Entity Framework),此框架可以理解成微软的一个ORM产品.用于支持开发人员通过对概念性应用程序模型编程(而不是直接对关系存储 ...

  9. 基于特定领域国土GIS应用框架设计及应用

              基于特定领域国土GIS应用框架 设计及应用              何仕国 2012年8月16日   摘要: 本文首先讲述了什么是框架和特定领域框架,以及与国土GIS 这个特定领 ...

随机推荐

  1. JavaScript思维导图—变量

    JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/

  2. 使用Guava提供的filter过滤集合

    正常情况下,我们声明一个List需要如下代码 List<String> list = new ArrayList<>(); list.add("AAA"); ...

  3. 使用MYSQL命令直接导入导出SQL文件

    很多时候,我们的数据开发都会用到很多开发利器,比如powerdesigner, navicat等这些软件,虽然好用,但是要收费,在公司里面是禁止使用盗版软件的,怕罚款各方面的,所以我们也不敢直接在公司 ...

  4. redis系列-主从复制

    redis自身提供了主从的机制,通过配置可以实现服务的备份(Master->Slave). 配置项 slaveof <masterip> <masterport> mas ...

  5. hibernate继承(转)

    http://justsee.iteye.com/blog/1070588 一.继承关系_整个继承树映射到一张表 对象模型(Java类结构) 一个类继承体系一张表(subclass)(表结构) Emp ...

  6. IOS Animation-KeyPath值

    IOS Animation-KeyPath值 keyPath值 说明 值类型 position 移动位置 CGPoint opacity 透明度 0-1 bounds 变大与位置 CGRect bou ...

  7. Atitit 多继承实现解决方案 java c#

    Atitit 多继承实现解决方案 java c# Java c#都没有提供多继承的解决方案..默认从语言级别以及没办法多继承了. 只可以崽类库的级别实现拉.. 继承的原理就是,使用一个内部super指 ...

  8. JSON和JSONP的区别

    先前的概念中对JSON还是比较熟悉,对JSONP不是特别的清楚,整理完相关知识发现才豁然开朗.简单的说JSON是一种数据交换格式,而JSONP是 一种非官方跨域数据交互协议.JSON是“暗号”,而JS ...

  9. Maven Myeclipse 搭建项目

    一.maven概述 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具! 简单说Maven 是一个项目管理和构建自动化工具 二.环境搭建 1. ...

  10. 每天一个linux命令(20):find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...