首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >.NET Framework 框架的一些简单介绍

.NET Framework 框架的一些简单介绍

作者头像
庞小明
发布于 2019-07-02 09:48:59
发布于 2019-07-02 09:48:59
1.4K0
举报
文章被收录于专栏:pangguomingpangguoming

20世纪90年代以来出现的3种典型的组件技术:

1)OMC(对象组件模型)的CORBA 2)Microsoft的COM/DCOM 3)Sun公司的JavaBeans

在2002年,微软发布了.NET框架的第一个版本,声称其解决了旧问题并实现了下一代系统的目的。.NET框架是一种比MFC和COM编程技术更一致并面向对象的环境。它的特点包括:

1)多平台。【面向异构网络、硬件平台和操作系统,可以在多种多样的系统上运行,从服务器、桌面机到PDA和移动电话。】 2)行业标准。【实现软件系统之间的智能交互和协同工作,使用行业标准的通信协议,比如:XML、HTTP、SOAP和WSDL。】 3)安全性。【提供一个标准化的、安全的、一致的模型和环境,提供更加安全的执行环境,即使有来源可疑的代码存在。】

Microsoft为.NET技术制定了一整套完整的规范,便是CLI(Common Language Infrastructure,公共语言基础结构,公共语言架构)。

CLI的组成: 1)CTSCommon Type System,公共类型系统)。【定义了一组丰富的内置类型,以及每种类新固有的、独有的特性;最重要的特征之一是所有类型都继承自公共的基类Object类】 2)CLSCommon Language Specification,公共语言规范)。【说明了.NET兼容编程语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递】 3)CILCommon Intermediate Language,公共中间语言)。 4)CLRCommon Language Runtime,公共语言运行库)。 5)BCLBase Class Library,基类库)。【FCL的一个子集】 6)元数据定义、语义。 7)其他相关标准化文档、协议、规范。

Microsoft针对CLI在Windows上的完整实现便是 .NET Framework(.NET 框架)。

.NET Framework的主要组成: 1)CLR(Common Language Runtime,公共语言运行时,公共语言运行库)。【核心组件。提供服务:自动垃圾收集;安全和认证;通过访问BCL得到广泛的编程功能,如web服务和数据服务之类的功能】 2)FCL(Framework Class Library,Framework类库,框架类库)。【BCL的一个超集】

.NET Framework的优点: 1)面向对象的开发环境。【CLR、BLR和C#被设计得完全面向对象;为本地程序和分布式系统提供一致的、面向对象的编程模型;】 2)自动垃圾收集(Garbage Collection,GC)。【GC自动从内存中删除程序不在访问的对象】 4)互操作性。【不同.NET语言编写的软件模块无缝交互;平台调用(platform invoke,P/Incoke)的特性;允许与COM进行交互】 4)不需要COM(Component Object Model,组件对象模型)。 5)简化的部署。【.NET程序不需要使用注册表注册;并行执行特性】 6)类型安全性。【CLR检查并确保参数及其它数据对的类型安全】 7)基类库(Base Class Library,基类库)。有时称为框架类库(Framework Class Library,FCL)。【包括通用基础类、集合类、线程和同步类、XML类】

CLR在运行期管理程序的执行,包括以下内容: 1)内存管理。 2)代码安全验证。 3)代码执行、线程管理和异常处理。 4)垃圾收集。

CLR提供的服务: 1)内存管理。 2)异常处理。 3)自动垃圾收集。 4)管理代码的执行 5)JIT实时编译器(Just-in-Time)。 6)类加载器。【通过访问BCL得到广泛的编程功能,如web服务和数据服务之类的功能】 7)反射服务。 8)安全服务。 9)提供系统服务。

FCL的组成 或 服务: 1)基础类型。【整数、实数、字符串等类型定义】 2)数据结构封装。【集合、链表、队列、堆栈等数据类型】 3)Windows和Web等界面要素。【主要是按钮、标签、文本框、菜单等可视化控件】 4)Web Service要素。【用于Web服务的定义、描述、配置、解析等】 5)XML文档处理。【如XML文件、属性、元素、节点、读写器、解析器等类型】 6)文件的输入输出。【如驱动器、目录、文件、流、读写器等类型】 7)数据访问。【如数据连接、数据命令、数据集、数据表、记录等类型】 8)网络通信。【如主机、管道、套接字、消息等类型】 9)异常处理。【用于处理系统和应用程序所引发的各种异常】 9)类型反射。【用于获取程序集、对象、方法属性、字段等目标的元数据信息类型】 10)用于应用程序管理、操作系统功能封装、安全性控制等其他方面的类型。

.NET Framework 环境结构图:

源代码文件编译成CIL的编译过程:

程序运行时CIL编译成本机代码:

.NET 框架编译和执行:

注:相关名称一览:

CLI(Common Language Infrastructure,公共语言基础结构,公共语言架构) CTS(Common Type System,公共类型系统) CLS(Common Language Specification,公共语言规范) CIL(Common Intermediate Language,公共中间语言)

.NET Framework(.NET 框架) CLR(Common Language Runtime,公共语言运行库) FCL(Framework Class Library,Framework类库,框架类库)

BCL(Base Class Library,基类库) 实时JIT(Just-in-Time)编译器 GC(Garbage Collection,垃圾收集)

API(Application Programming Interface,应用程序编程接口)注:还特指API的说明文档,也称为帮助文档 MFC(Microsoft foundation classes,微软基础类库) COM(Component Object Model,组件对象模型)

managed code 托管代码 unmanaged code 非托管代码

平台调用(platform invoke,P/Incoke) Ecma(Europen Computer Manufacturers Association,欧洲计算机制造商协会)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C#图解教程第一章 C#和.NET框架
1.1 在.NET之前  C#发音:see shap  1.1.1 20世纪90年代后期的Windows编程   20世纪90年代后期各语言缺点:    1.纯Win32 API不是面向对象的,而且工作量比MFC的更发    2.MC是面向对象的,但是他却不一致,并逐渐变得陈旧    3.COM虽然概念上简单。但实际代码复杂,而且需要更多丑陋的,不雅的底层代码   共同缺点:    主要针对桌面程序而不是Internet的开发 1.2 进入Microsoft.NET  .NET框架是一种比MFC或COM编程
房上的猫
2018/03/14
1.3K0
C#图解教程第一章 C#和.NET框架
《C#图解教程》读书笔记之一:C#和.NET框架
  C#语言是在微软公司的.NET框架上开发程序而设计的,首先作者给大家纠正了一下C#的正确发音:See Sharp(而不是很多人说的什么C井之类的,每次听到C井我都只能呵呵一笑)。
Edison Zhou
2018/08/20
8590
《C#图解教程》读书笔记之一:C#和.NET框架
.NET Framework与.NET Core
 C#是微软发布的面向对象的,运行与.NET Framework之上的高级程序设计语言,属于编译型语言,也是目前.NET Framework的主角。C#语言语法简单而优雅,同时也有着很高的开发效率,尤其是在网络编程方便有着广泛的应用。目前C#已经成为一种跨平台的语言,可以运行于Windows、Linux、Mac等其他平台上。.NET Framework包含公共语言运行时(CLR)和.NET Framework 类库,其中包括各种功能和对许多行业标准的支持。NET Framework 提供许多服务,包括内存管理、类型和内存安全、安全性、网络和应用程序部署。它提供易于使用的数据结构和API,将较低级别的Windows操作系统抽象化。可在.NET Framework中使用各种编程语言,包括C#、F#和Visual Basic。
AI.NET 极客圈
2019/07/19
1.9K0
.NET Framework与.NET Core
☀️ 学会编程入门必备 C# 最基础知识介绍(一)
所以就单独写几篇博客先来系统的介绍一下C#的基础知识,既方便自己深入学习,也能给需要的人提供帮助,一举两得。
呆呆敲代码的小Y
2021/08/12
1.3K0
.NET平台系列22:.NET Core/.NET5/.NET6 对比 .NET Framework
  在我的博客《.NET平台系列2 .NET Framework 框架详解》与 《.NET平台系列7 .NET Core 体系结构详解》 两篇文章中分别详细介绍了.NET Framewrok与.NET Core 的核心构成以及各部件的组成与原理。本文通过其他维度更加直接的对比说明两者的差异。
张传宁IT讲堂
2021/06/17
1.9K0
.NET平台系列22:.NET Core/.NET5/.NET6 对比 .NET Framework
【C# Personal Handbook】运行环境
来源 : https://docs.microsoft.com/tr-tr/dotnet/framework/get-started/overview CLR 组件
AI.NET 极客圈
2022/11/11
5290
【C# Personal Handbook】运行环境
.NET面试题系列[1] - .NET框架基础知识(1)
面试出现频率:从来没人问过。事实上我都不知道怎么问,考背书吗?倒是可以问问知不知道现在.NET最新版本是什么,考察面试者是否对新技术足够敏感。
s055523
2018/09/14
1.9K0
.NET面试题系列[1] - .NET框架基础知识(1)
.NET for Visual FoxPro Developers(二)
每隔六七年,微软在技术上都有一个巨大的飞跃。在 2002 年 2 月出现的是 .NET。什么是 .NET ?它对 Visual FoxPro 开发者意味着什么?这一章将介绍 .NET、.NET FrameWork及语言,并解释为什么针对你的软件开发项目要调研 .NET 。
firstxinjie
2024/12/06
1340
.NET for Visual FoxPro Developers(二)
.NET面试经典三问:什么是.NET?什么是.NET Framework?什么是.NET Core?
本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包括:CLS、CTS(CLI)、FCL、Windows下CLR的相关核心组成、Windows下托管程序运行概念、什么是.NET Framework,.NET Core,.NET Standard及一些VS编译器相关杂项和相关阅读链接。完整的从上读到下则你可以理解个大概的.NET体系。
BlueSocks
2022/04/01
1.2K0
.NET面试经典三问:什么是.NET?什么是.NET Framework?什么是.NET Core?
.NET6 平台系列2 .NET Framework框架详解
  .NET Framework 是 Windows 的托管执行环境,可为其运行的应用提供各种服务。 它包括两个主要组件:公共语言运行时 (CLR),它是处理运行应用的执行引擎;.NET Framework 类库,它提供开发人员可从其自己的应用中调用的已测试、可重用代码库。 .NET Framework 提供的用于运行应用的服务包括:
张传宁IT讲堂
2021/04/26
2.5K0
.NET6 平台系列2 .NET Framework框架详解
C#温故而知新—闲话.Net
在Java搞得如火如荼时,微软为了巩固自己的霸主地位,自然要来分一杯羹,于是.NET应运而生。 .Net的战略。 NET是一种面向网络、支持各种用户终端的开发平台环境。.NET的特点: 软件即服务(SaaS) 微软的.NET战略意味着:微软公司以及在微软平台上的开发者将会制造服务,而不是制造软件。在未来几年之内,微软将陆续发布有关.Net的平台和工具,用于在因特网上开发web服务。那时,工作在.Net上的用户、开发人员和ET工作人员都不再购买软件、安装软件和维护软件。取而代之的是,他们将定制服务,软
JadePeng
2018/01/18
7350
C#温故而知新—闲话.Net
.NET Core跨平台的奥秘[上篇]:历史的枷锁
微软推出的第一个版本的.NET Framework是一个面向Windows桌面和服务器的基础框架,在此之后,为此微软根据设备自身的需求对.NET Framework进行裁剪,不断推出了针对具体设备类型的.NET Framework版本以实现针对移动、平板和嵌入式设备提供支持。除此之外,在Windows平台之外一致游荡着一只特立独行的猴子(Mono)。.NET平台看起来欣欣向荣,而实际上却日薄西山,就在这个时候微软走了一条唯一正确的道路,那就是基于跨平台理念重新设计的.NET Core,以及由此驱动地对整个.
蒋金楠
2018/01/15
1.4K0
.NET Core跨平台的奥秘[上篇]:历史的枷锁
.NET Framework概述
什么是 .NET Framework? .NET Framework 是为其运行的应用提供各种服务的托管执行环境。 它包括两个主要组件:公共语言运行时 (CLR),它是处理运行应用的执行引擎;.NET Framework 类库,它提供开发人员可从其自己的应用中调用的已测试、可重用代码库。 .NET Framework 提供的用于运行应用的服务包括: 内存管理。 在许多编程语言中,程序员负责分配和释放内存并处理对象生存期。 在 .NET Framework 应用中,CLR 代表应用提供这些服务。 常规类型
李郑
2018/03/01
9980
.NET Framework概述
深入.NET框架
1.1 .NET框架的优点   面向对象   对Web应用的强大支持   对Web Service(Web服务)的支持   实现SOA,支持云计算   支持构建.NET程序的炫彩外衣 二:  .NET框架结构   1.NET运行在操作系统之上,是.NET最基础的框架。他提供了创建,部署和运行.NET应用的环境,主要包括公共语言运行时(CLR)和   框架类库(.NET FrameWork 类库(FCL)),并且支持多种开发语言。例如:(C#,VB,.NET,C++)等。       2..NET最主要的两个
房上的猫
2018/03/14
9780
深入.NET框架
什么是.NET?什么是.NET Core?.NET和.NET Core区别又是什么呢?
对于.NET平台的初学者来说,有时候比较困惑“什么是.NET?什么是.NET Core?.NET和.NET Core区别又是什么呢?”。确实,目前微软的开发平台有两种不同的.NET运行时环境,一种是.NET Framework,另一种则是.NET Core(.NET 5),不同的目标框架运行时环境不同。
用户9127601
2022/04/19
5.1K0
什么是.NET?什么是.NET Core?.NET和.NET Core区别又是什么呢?
亮剑.NET的系列文章之.NET详解(开端)
在介绍.NET之前,先回顾一下vb6。众所周知,VB6是开发DNA模型的应用程序的最流行语言。它可以在窗体的VB客户程序和COM组件两个方面大显身手。
程序猿小亮
2021/01/29
8100
我眼中的.net体系结构
1.Microsoft中间语言 Microsoft Intermediate Language简写为MSIL或者直接叫IL 大多数技术文章中也是叫IL 所有编译好的代码都要使用这种语言, 把代码编译成中间语言,这些编译好了的就叫托管代码(managed code)
liulun
2022/05/08
3400
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从类型系统开始讲起,我将通过跨语言操作这个例子来逐渐引入一系列.NET的相关概念,这主要包
小曾看世界
2018/08/03
5.2K0
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
.Net 框架
对于在.NET框架(.NET Framework)下进行开发的程序员来说,无法回避的一个问题就是:什么是.NET框架?它包含了哪些内容?为开发程序提供了哪些支持?很多朋友对这类个问题的第一反应可能是.NET框架所提供的庞大类库及编写代码所采用的C#语言,实际上远不止这些。
张子阳
2018/09/30
2.3K0
.Net 框架
原 Introduction to the
公共语言运行库 (clr) 简介 === By Vance Morrison ([@vancem](https://github.com/vancem)) - 2007 什么是公共语言运行库 (clr)?简要概括如下: >公共语言运行时 (clr) 是一个完整支持高级语言特性的虚拟机, 旨在支持各种编程语言以及它们之间的互操作。 这样说可能不是那么明了。但是确实有意义, 因为它是理解这个大型复杂的软件(称为 [clr] [clr])多种功能特性的第一步。也让读者对运行时的目的和特定有了概要的了解,在高层
魂祭心
2018/05/17
8890
相关推荐
C#图解教程第一章 C#和.NET框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档