.NET框架结构体系及工作原理

1:.NET框架运行在操作系统之上,是.NET最基础的框架。
它提供了创建,部署和运行.NET应用的环境,主要包含公共语言运行时(CLR)和框架类库(.NET Framwork 类库,FCL),并且支持多种开发语言。.NET框架可以安装在Windows操作系统上,支持C#,C++,VB,.NET等开发语言,也就是我们所说的跨语言开发。

2:.NET框架具有两个主要组件:CLR和FCL。
CLR是.NET框架的基础,FCL是一个综合性的面向对象的可重用类型集合,利用它不仅可以开发传统命令行应用程序,而且可以开发WinForms应用程序及基于ASP.NET的应用程序。

3:.NET Framwork3.0新特性:
1:WPF:是微软Vista操作系统的核心开发库之一,它不仅是一个图形引擎,而且给Windows应用程序的开发带来了一次革命。
2:WCF:把Web服务,.NET Remoting等技术统一到单个面向服务的编程模型中,以实现真正的分布式计算。
3:WF:是一个广泛通用的工作流框架,并且从上而下在每个级别都针对扩展性进行了设计。
4:Windows CardSpace:是微软公司取代用户名和密码成为网络使用者身份的新方法。简单的说,Windows CardSpace是一项以用户为中心的身份识别技术,用户可以通过它控制登录网站时提交的信息,这将使管理个人信息更加安全简便。微软公司推广它的目的就是取代传统的用户名和密码,提供更好的反钓鱼功能,并且预防其他类型的网络诈骗。
5:LINQ:将强大的查询扩展到C#和Visual Basic .NET的语法中,使得软件开发人员可以使用面向对象的语法查询数据,可以为SQL Server数据库,XML文档,ADD .NET数据集等各种数据源编写LINQ查询。

4:.NET Framework旨在实现下面目标:
1:提供一个一致的面向对象的编程环境,而无论对象代码是在本地储存和执行,还是在本地执行但在Internet上分布,或是在远程执行
2:提供给一个将软件部署和版本控制冲突最小化的代码执行环境
3:提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境

5:.NET Framework具备的特性:
1:图表控件:微软向开发者提供了大量免费的图表控件,开发者无需下载额外的插件
2:SEO:该工具集会从性能视角分析站点,识别出运行缓慢或是会访问很多资源的页面。
3:输出缓存:,NET Framework4.0提供了一个扩展点,可以在本地/远程磁盘,数据库,分布式缓存引擎,甚至是云中增加多个缓存。

6:“CLR”到底是什么?有什么作用?
1:CLR的全称为公共语言运行时。它是所有.NET应用程序运行时环境,是所有应用程序都要使用的编程基础,它如同一个支持.NET应用程序运行和开发的虚拟机。开发和运行一个,NET Framwork。CLR也可以看成一个在执行时管理代码的代理,管理代码是CLR的基本功能,能够被其管理的代码称之为托管代码,反之称为非托管代码。
2:CLR包含两个组成部分:CLS(公共语言规范)和CTS(通用类型系统),,NET Framwork4.0中新增了动态语言进行时(Dynamic Language Runtime,DLR)它是一组适用于动态语言的服务添加到CLR。借助DLR,可以开发在.NET Framework上运行的动态语言,而且可以是使C#,VB .NET等语言方便的与动态语言交互,为了支持CLR,在,NET Framwork中添加了新的System.Dynamic命名空间。
3:.NET编译技术
为了实现跨语言平台和跨平台的战略平台的战略目标,.NET所有编写的应用都不编译成本地代码,而是编译成微软中间代码(MSIL)。它将由JIT编译器转换成机器代码,如C#和VB .NET代码通过它们各自的编译器编译成MSIL。MSIL遵循通用的语法,CPU不需要了解它,再通过JIT编译器编译成相应的平台专用代码,这里所说的平台是指我们的操作系统。这种编译方式,不仅实现了代码托管,而且能够提高程序的运行效率。
如果想要某种编程语言也支持.NET开发,需要有能够将这种语言开发的程序转换为MSIL的编译器。能够编译为MSIL的语言都可以被.NET Framework托管。目前.NET Framework4.0可以支持的能编译为MSIL的语言有C#,VB.NET,C++,.NET,其他语言要被.NET Framework托管,则需要第三方编译器的支持。
4:CTS(公共语言规范)
C#和VB.NET都是CLR的托管代码,它们的语法和数据类型各不相同,CLR是如何对这两种不同的语言进行托管的呢?通用类型系统(CTS)用于解决不同语言数据类型不同的问题,如C#中的整型是int,而VB.NET中整型是Integer,通过CTS我们把它们两个编译成通用的类型Int32。所有的.NET语言共享这一类型的系统,在它们之间可以实现无缝互操作。
5:CLS(公共语言规范)
编程语言的区别不仅在于类型,语法或者说语言规范也都是有很大的区别。因此.NET通过定义公共语言规范,限制了由这些不同点引发的互操作性问题。CLS是一种最低的语言标准,它制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作所需要的完备特征。凡是遵守这个标准的语言在.NET框架下都可以实现互相调用。例如C#中命名是区分大小写的,而在VB.NET中不区分大小写,这样CLS就规定,编译后的中间代码除了大小写之外还要有其他的不同之处。

7:FCL(综合性的面向对象的可重用类型集合及框架类库)
1:.NET框架另外一个重要部分是FCL,即框架类库。FCL提供了对系统功能的调用,是建立在.NET应用程序,组件和控件的基础。通过灵活的运用这些类库,我们的开发工作将会更加便利。
2:.NET框架的核心类库及其功能:
System:此命名空间包含所有其他的命名空间。在System命名空间中包含了定义.NET中使用的公共数据类型,如Boolean,DateTime和Int32等。此命名空间中还有一个非常重要的数据类型“Object”,Object类是所有其他.NET对象继承的基本类。
System.Collection.Generic:支持泛型操作。这是.NET Framework2.0新增的内容。
System.IO:支持对文件的操作,如复制,粘贴,删除及对文件的读写等。
System.Net:支持对网络协议的编程。
System.Data:提供对ADO.NET结构的类的访问。
System.Windows.Forms:用于开发Windows应用程序。引入这个命名空间才能使用WinForms的控件和各种特性。
System.Drawing:支持GDI+基本图形操作。例如:上网遇到的验证码就可以通过这个命名空间中的类库的方法来实现。

你可能感兴趣的:(深入.NET框架平台和C#编程)