内容发布更新时间 : 2024/12/24 11:41:32星期一 下面是文章的全部内容请认真阅读。
第1章.NET4.0体系结构
微软公司每隔几年就会对其开发工具与平台进行升级,使得开发人员能更高效、更快速地开发高可用性的应用程序。.NETFramework4.0是最新的一个版本。该版本与.NETFramework的早期版本是可以同时存在的。本章将从体系结构方面讲解.NET4.0的新功能及其与.NET早期版本的不同之处,同时对于微软新的VisualStudio2010的使用方法进行详细介绍。
1.1C#与.NET的关系
C#是微软公司为了支持.NET框架而研发的一门语言,它具有Java的简洁、C++语言的灵活,并且有Pascal语言的严谨,是一门非常优秀的开发语言。.NET框架是一个应用程序开发平台,C#是为支持这个框架而开发的,它们具有非常密切的联系。作为一个.NET开发者,学会使用C#语言是非常有必要的。
C#与.NET之间的关系是非常密切的。C#只是一门语言,而且它是伴随着.NET出现的语言,用C#语言编程时,需要使用.NET框架类库来进行开发。但是与.NET框架相关的语言不止C#一种,开发人员可以使用VisualBasic.NET或者其他一些支持.NET的语言进行程序设计。
1.1.1.NETFramework4.0简介
微软公司自从发布.NETFramework1.1以来,已历经了4个版本。微软不断地改善原有版本的缺陷和不足,不断地推出新的功能,到现在的4.0版本,已经成为了一个功能强大的应用程序开发平台,其发展路线如图1.1所示。
.NETFramework提供了一整套应用程序开发平台,它实际上由一大堆技术组合而成,这些技术彼此协作,能为开发人员提供无限的可能。归根结底,.NETFramework由如下几大部分组成。
? .NET语言:包括VisualBasic.NET、C#、JScript.NET、J#和C++等。
? 通用语言运行时(CLR):提供所有.NET程序的执行引擎,并为这些应用程序提
供自动化服务,比如安全性检查、内存的管理和应用程序的优化等。
? .NET框架类库:包含大量内置的功能函数,使应用程序的开发人员可以更轻松地
使用它提供的功能来实现应用程序的开发。这些类库被组织为几个技术集,比如ASP.NET、WindowsForms、WPF、WCF、WF、Silverlight、网络编程等。
? VisualStudio:功能强大,使用简便的集成化开发环境,具有一整套高效的功能集
合和调试特性。
图1.1.NET版本发展路线图
在MSDN中,把整个.NETFramework分为两大类:一类是通用语言运行时(CLR),另一类就是.NETFramework类库。通用语言运行时是整个.NET应用程序的核心,无论使用什么样的语言,编写什么样的.NET程序,都需要这个核心引擎所提供的核心功能。
图1.2是.NETFramework的基本结构图,该图将.NET划分为两大部分,每一部分内部又细分了各种不同的功能模块。在类库部分,可以看到提供了很多开发人员常见的应用程序类型,基本上.NET程序员都在与.NETFramework中庞大的类库打交道。通用类型系统为.NET应用程序提供了一个托管的平台,它提供了较底层的功能,通常开发人员较少需要处理CLR的部分。
图1.2.NETFramework基本结构
微软公司自从推出第一个.NETFramework以来,不断地升级和精炼这套框架的可用性。到目前为止,已经发展到.NET4.0版。这一版本的.NETFramework除了修正和提升了原有框架的不足之处以外,还增加了很多新的开发类库,比如WPF、WCF和WF这3套开发
基础库。
要深入理解.NETFramework这个大框架的架构,首先需要深入理解其核心部分,即CLR。1.2节将会详细介绍。
1.1.2LINQ语言集成查询
在LINQ出现之前,当访问数据源时,开发人员不得不掌握特定数据来源的数据访问方法。比如要读取和写入XML数据,必须掌握操作XML的方法;要访问数据库,必须掌握ADO.NET技术等。
语言集成查询(LanguageIntegratedQuery,LINQ),如其名称所暗示,在开发语言如C#或者是VB.NET中集成了数据查询功能,这个功能的出现让开发人员可以不用了解异构数据源的细节,便能使用一种统一的方式来访问数据源,使开发人员可以专注于业务逻辑的设计。
图1.3是LINQ的结构图。从图中可以看到,LINQ允许的数据源中,LINQ的可查询能力可分作3大类:LINQToObjects、LINQToADO.NET及LINQToXML。下面对这3大类LINQ的组成部分进行简要介绍。
? LINQToObjects:可以从任何实现了IEnumerable
1.2中可以看到,其主要由3个部分组成:LINQToSQL,用于查询关系型数据库,例如SQLServer等;LINQToDatasets,支持查询DataSet或DataTable;LINQToEntities,是MicrosoftORM解决方案,允许开发人员使用实体(Entities)声明性的指定商业对象(businessobjects)的结构,并且使用LINQ进行查询。 ? LINQToXML(以前称为XLinq),不仅包括LINQToObjects的功能,还可以查询
和创建XML文档。
图1.3语言集成查询LINQ结构