NET框架类库
FCL(Framework Class Library)含有几千个类型的定义。(它的体系和以前了解的VCL的体系有点类似,不知道其他的类库是否也是以类似的方法来建立?)
1、CLR和FCL可以开发下面几种应用程序:XML Web服务、Web窗体(Web Forms基于HTML的应用程序)、Windows窗体(GUI应用程序)、Windows控制台应用程序(CUI)、Windows服务和组建库
2、FCL波阿汉的类型放在一个由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服务。
4、CLR和FCL支持我们可以开发以下几种应用程序:
(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,即通用类型系统),就是用来描述类型的定义和行为。
1、CTS规范规定一个类型可以包含下面的0或多个成员:字段、方法、属性和事件
2、CTS还定义了类型可见性和访问类型成员的一些规则,下载是控制对方法或字段的访问选项:
Private:方法只能被同一类型中的其他方法调用;
Family:方法可以被派生类型的代码调用,不管它们是否在同一个程序集中。(类似于许多语言中的protected);
Family 与assembly:方法只可以被位于同一个程序集中的派生类型中的代码调用。(C#和VB都没有提供这种机制);
Assembly: 方法可以被统一个程序集中的任何代码调用(类似于internal);
Family 或 Assembly:方法可以被任何程序集中的派生类型代码调用,也可以被同一程序集中的任何类型调用;(这个和前面的Family区别在哪里?)
Public:方法可以被任何程序集的任何代码调用。
另外CTS定义了诸多规则来管理类型继承、虚函数、对象生存期等。我们在编程的时候并不需要了解这些规则,因为在程序被编译成托管代码时会将你所使用的编程语言的语法规则映射为CLR的这些规则(除非你想用IL汇编直接写你选用的语言实现不了的功能)。
CTS不支持多继承,如果你用的C++使用了多继承是不能被编译成托管代码的。
CTS的类型都必须继承自System.Object
通用语言规范CLS
CLR提供语言间对象的操作,即不同语言的代码之间进行无缝的集成。为了解决这个问题微软定义了CLS(Common Language Specification,通用语言规范),不同语言的代码只有符合了这个规范才能彼此集成。它是各种高级语言的一个交集。
代码在CLR中的运行过程
1、选择编译器
首先CLR选择编译器,因为CLR中可以运行不同语言开发出来的代码。
2、把代码编译成MSIL
CLR利用选择的编译器生成MSIL(Microsoft intermediate language)和metadata把她们加载到PE(portable executable file)。
MSIL:解释语言,包含代码信息,让JIT易于编译成机器语言。与操作系统和编程语言无关。
PE:可执行文件格式,windows就是DLL或EXE了。
3、用JIT编译器把MSIL编译成机器语言
有两种方式一种是只编译当前执行的代码段,另一种是把整个代码一次性编译。JIT会检测代码的安全性。
4、 执行代码
代码首次调用就会编译成机器代码,再次调用的时候就不再重新编译了。
与非托管代码互操作
为了使得现存的非.NET代码都可用,微软的设计使得CLR可以在应用程序里同时包含托管和非托管代码。CLR支持三种互操作:
托管代码调用DLL中的非托管函数
托管代码使用现存的COM组建(非托管组建作为COM服务器)
非托管代码使用托管类型(托管类型作为COM服务器)
.NET框架、语言、工具
.NET执行与编译过程
分享到:
相关推荐
它是一个全新的通信平台,因为微软没有选择在重量级框架上通过扩展实现轻量级通信。本书宗旨是清晰呈现消息处理管道,以使读者完全理解从接收请求到响应回复的全流程,并彻底掌握路由、HttpController激活、Action...
第一部分 .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. 公共语言...
.Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 功能应用 读写搜索 基础教程 RSS Web2.0...
第一部分 .NET框架(0.5天) 第二部分 Winform编程(2天) 第三部分 Ado.NET(2天) 第四部分 WPF技术(1.5天) 第五部分 WCF开发技术(1.5天) 第六部分-项目实战(1.5天) 详细内容: 第一部分 .NET框架(0.5天) 1....
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 工具...
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 ...
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 解决方案管理器...
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 工具...
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 4高级程序设计(第4版)》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书...
ASP.NET 4高级程序设计(第4版)》【原版书为:Pro ASP.NET 4 in C# 2010】是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的...
解决方案 1 企业级整体解决方案 XX申请管理系统采用当今比较流行和技术比较先进的Microsoft.NET体系作为软件开 发平台和运行平台,以ASP.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 工具箱 1.3.5 解决方案管理器...
作为微软授予的“软件英杰”,本书作者Juval Lowy参与了WCF最初的战略性设计的评审,以及对C# 3.0与.NET 3.5 SP1框架最新功能的修订工作。本书还包含了Lowy编写的ServiceModelEx框架,它提供了大量有用的工具、辅助...
作为微软授予的“软件英杰”,《WCF编程(第2版)》作者Juval Lowy参与了WCF最初的战略性设计的评审,以及对C# 3.0与.NET 3.5 SP1框架最新功能的修订工作。《WCF编程(第2版)》还包含了Lowy编写的ServiceModelEx框架,...
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 ...
C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 【面试题库网整理 .net 面试题(附答案)(三)】 22.您要创建一个显示公司员工列表的应用程序。您使用一个...
17.2.4 安装.NET框架3.0 17.3 设置Windows安全账户 17.3.1 Windows SharePoint Services服务账户 17.3.2 应用程序池安全账户 17.3.3 网站集合所有者账户 17.3.4 共享服务供应者管理员...