`
javasogo
  • 浏览: 1774209 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Microsoft.NET框架概念、原理

阅读更多

NET框架类库

  FCL(Framework Class Library)含有几千个类型的定义。(它的体系和以前了解的VCL的体系有点类似,不知道其他的类库是否也是以类似的方法来建立?)

  1CLRFCL可以开发下面几种应用程序:XML Web服务、Web窗体(Web Forms基于HTML的应用程序)、Windows窗体(GUI应用程序)、Windows控制台应用程序(CUI)、Windows服务和组建库

  2FCL波阿汉的类型放在一个由namespace(命名空间)组织的集合中提供给开发人员。

  System命名空间包含了Object基本类,所有其他的类型都直接或简介由此继承而来;它还包含了整数、字符、字符串、异常处理……。所有的应用程序都会用到System命名空间中的类型。(这里对命名空间的基本概念没做出解释,如果是以前没接触过这一名词的读者肯定会被糊了)

  3、一些通用的FCL命名空间:

  System:其中的类型是为所有应用程序使用的一些基本类型;

  System.Collections:其中的类型用于管理对象集合;

  System.Diagnostics:其中的类型用于帮助诊断和调试应用程序;

  System.Drawing:其中的类型用于操作二维图形;

  System.EnterpriseServices:其中的类型用于管理事务、队列组件、对象池等等;

  System.Globalization:其中的类型用于多国语言支持;

  System.IO:其中的类型用于操作I/O流、遍历目录和文件;

  System.Xml:其中的类型用于处理XML模式(schema)和数据;

System.Web.Services:其中的类型用于创建XML Web服务;

  System. Web.UI:其中的类型用于创建Web窗体;

  System. Windows.Forms:其中的类型用于创建Windows GUI应用程序;

  System. ServiceProcess:其中的类型用于创建由SCM控制的Windows服务。

4CLRFCL支持我们可以开发以下几种应用程序:
(1)XML Web Services
(2)Web Forms
(3)Windows Forms
(4)Windows CUI(
控制台应用程序
)
(5)Windows
服务(Windows SCM-Service Control Manager-所控制的服务程序
)
(6)
组件库

通用类型系统CTS

  从前面的内容大家可以看到CLR的所有内容都是围绕类型展开。微软制定的规范CTS(Common Type System,即通用类型系统),就是用来描述类型的定义和行为。

  1CTS规范规定一个类型可以包含下面的0或多个成员:字段、方法、属性和事件

  2CTS还定义了类型可见性和访问类型成员的一些规则,下载是控制对方法或字段的访问选项:

  Private:方法只能被同一类型中的其他方法调用;

  Family:方法可以被派生类型的代码调用,不管它们是否在同一个程序集中。(类似于许多语言中的protected;

  Family assembly:方法只可以被位于同一个程序集中的派生类型中的代码调用。(C#VB都没有提供这种机制);

  Assembly: 方法可以被统一个程序集中的任何代码调用(类似于internal);

  Family Assembly:方法可以被任何程序集中的派生类型代码调用,也可以被同一程序集中的任何类型调用;(这个和前面的Family区别在哪里?)

  Public:方法可以被任何程序集的任何代码调用。

  另外CTS定义了诸多规则来管理类型继承、虚函数、对象生存期等。我们在编程的时候并不需要了解这些规则,因为在程序被编译成托管代码时会将你所使用的编程语言的语法规则映射为CLR的这些规则(除非你想用IL汇编直接写你选用的语言实现不了的功能)。

  CTS不支持多继承,如果你用的C++使用了多继承是不能被编译成托管代码的。

  CTS的类型都必须继承自System.Object

通用语言规范CLS

  CLR提供语言间对象的操作,即不同语言的代码之间进行无缝的集成。为了解决这个问题微软定义了CLSCommon Language Specification,通用语言规范),不同语言的代码只有符合了这个规范才能彼此集成。它是各种高级语言的一个交集。

代码在CLR中的运行过程

1、选择编译器

首先CLR选择编译器,因为CLR中可以运行不同语言开发出来的代码。

2、把代码编译成MSIL

CLR利用选择的编译器生成MSILMicrosoft intermediate language)和metadata把她们加载到PEportable executable file)。

MSIL:解释语言,包含代码信息,让JIT易于编译成机器语言。与操作系统和编程语言无关。

PE:可执行文件格式,windows就是DLLEXE了。

3、用JIT编译器把MSIL编译成机器语言

有两种方式一种是只编译当前执行的代码段,另一种是把整个代码一次性编译。JIT会检测代码的安全性。

4 执行代码

代码首次调用就会编译成机器代码,再次调用的时候就不再重新编译了。

与非托管代码互操作

  为了使得现存的非.NET代码都可用,微软的设计使得CLR可以在应用程序里同时包含托管和非托管代码。CLR支持三种互操作:

  托管代码调用DLL中的非托管函数

  托管代码使用现存的COM组建(非托管组建作为COM服务器)

非托管代码使用托管类型(托管类型作为COM服务器)

.NET框架、语言、工具

.NET执行与编译过程

分享到:
评论

相关推荐

    ASP.NET Web API 2框架揭秘

    它是一个全新的通信平台,因为微软没有选择在重量级框架上通过扩展实现轻量级通信。本书宗旨是清晰呈现消息处理管道,以使读者完全理解从接收请求到响应回复的全流程,并彻底掌握路由、HttpController激活、Action...

    CSDN 微软技术高级讲师.NET技术企业高级培训PPT

    第一部分 .NET框架(0.5天) 1. 了解.NET之前诞生前的世界 2. Microsoft .NET 框架结构 3. Microsoft .NET 框架结构 4. .NET Framework 概述 5. .Net Framework 2.0/ 3.0/3.5 6. 公共语言运行库 7. 公共语言...

    asp.net知识库

    .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0...

    dot NET技术企业高级培训PPT

    第一部分 .NET框架(0.5天) 第二部分 Winform编程(2天) 第三部分 Ado.NET(2天) 第四部分 WPF技术(1.5天) 第五部分 WCF开发技术(1.5天) 第六部分-项目实战(1.5天) 详细内容: 第一部分 .NET框架(0.5天) 1....

    ASP.NET 3.5 开发大全

    1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 工具...

    ASP.NET3.5从入门到精通

    1.2 .NET 应用程序需框架 1.2.1 什么是.NET 应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 ...

    ASP.NET 3.5 开发大全word课件

    1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 工具箱 1.3.5 解决方案管理器...

    ASP.NET 3.5 开发大全11-15

    1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 工具...

    ASP.NET 3.5 开发大全1-5

    1.2 .NET应用程序需框架 1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 工具...

    ASP.NET4高级程序设计(第4版) 3/3

     《ASP.NET 4高级程序设计(第4版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    ASP.NET 4高级程序设计(第4版)》【原版书为:Pro ASP.NET 4 in C# 2010】是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的...

    XX系统方案设计.doc

    解决方案 1 企业级整体解决方案 XX申请管理系统采用当今比较流行和技术比较先进的Microsoft.NET体系作为软件开 发平台和运行平台,以ASP.NET作为主流开发工具和软件运行的主要表现形式,采用当今 软件主要表现形式...

    ASPNET35开发大全第一章

    1.2.1 什么是.NET应用程序框架 1.2.2 公共语言运行时(CLR) 1.2.3 .NET Framework 类库 1.3 安装Visual Studio 2008 1.3.1 安装Visual Studio 2008 1.3.2 主窗口 1.3.3 文档窗口 1.3.4 工具箱 1.3.5 解决方案管理器...

    WCF编程(第二版) 英文版 chm格式

    作为微软授予的“软件英杰”,本书作者Juval Lowy参与了WCF最初的战略性设计的评审,以及对C# 3.0与.NET 3.5 SP1框架最新功能的修订工作。本书还包含了Lowy编写的ServiceModelEx框架,它提供了大量有用的工具、辅助...

    WCF编程(第二版)

    作为微软授予的“软件英杰”,《WCF编程(第2版)》作者Juval Lowy参与了WCF最初的战略性设计的评审,以及对C# 3.0与.NET 3.5 SP1框架最新功能的修订工作。《WCF编程(第2版)》还包含了Lowy编写的ServiceModelEx框架,...

    Visual C++2010开发权威指南(共三部分).part1.rar

    5.23.1 使用MFC方法定制控件必备的几个基本概念 259 5.23.2 定制自定义控件的3种常见方法 260 5.24 Visual C++ 2010 SysLink控件简介与开发 260 5.25 Visual C++ 2010 Split Button控件简介与开发 261 5.26 Visual ...

    【。net 专业】 面试题

    C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 【面试题库网整理 .net 面试题(附答案)(三)】 22.您要创建一个显示公司员工列表的应用程序。您使用一个...

    PROJECT 2007宝典 9/9

     17.2.4 安装.NET框架3.0   17.3 设置Windows安全账户   17.3.1 Windows SharePoint Services服务账户   17.3.2 应用程序池安全账户   17.3.3 网站集合所有者账户   17.3.4 共享服务供应者管理员...

Global site tag (gtag.js) - Google Analytics