C#是伴随着.NET的出现而出现的,用C#语言编程时,需要使用.NET框架类库来进行开发。但是与.NET框架相关的语言不止C#一种,
开发人员也可以选择VB、JScript.NET、J#和C++等。
.NET Framework由以下几大部分组成。
(1) .NET语言。包括C#、VB、J#、C++、JScript.NET
(2)通用语言运行时(CLR):提供所有.NET程序的执行引擎,并为这些应用程序提供自动化服务,比如安全必检查、内存的管理和应用程序的优化等。
(3).NET框架类库:包含大量内置的功能函数。这些类库被组织为几个技术集,
如:ASP.NET、Windows Forms、WPF、WCF、WF、Silverlight、网络编程等。
.NET Framework分为两大类:
一类是CLR,它是整个.NET应用程序的核心,无论使用什么语言,编写什么样的.NET程序,都需要这个核心引擎提供核心服务;
另一类是.NET Framework 类库。
在LING出现之前,当访问数据源时,不得不掌握特定数据来源的数据访问方法。
比如要读写XML数据,必须掌握操作XML方法;要访问数据库,必须掌握ADO.NET技术等。
语言集成查询(Language Intergrated Query,LING)。这个功能让开发人员可以不了解异构数据源的细节,使能使用一种统一的方式来访问数据源。
LING允许的数据源中,LING的可查询能力可分3大类:
(1)LING To Objects
可以从任何实现了IEnumerable
(2)LING To ADO.NET
增强了LING To SQL,用于查询关系型数据库,例如SQL Server等;
LONG To Databases,支持查询DataSet或DataTable;
LING To Entities,是Microsof ORM解决方案,允许开发人员使用实体(Entities)声明性的指定商业对象的结构,并且使用LING进行查询。
(3)LING To XML.(以前称为XLing)
不仅包括LING To Objects的功能,还可以查询和创建XML文档。
例如,对于关系型数据库来说,通常使用SQL语句来查询数据库。要查询Northwind数据库中的employees表的Name字段,使用SQL语句如下:
Select name from employees
使用LING语法的,代码如下:
var query=from e in employees
select e.name
可以看到代码与SQL语句非常相似,但是使用LING,让开发人员可以用相同的语法查询异构数据源。
比如一个employees的对象的集合,或是来自Oracle数据库的数据,都可以用相同的语法进行查询。
WPF是一种基于矢量绘图引擎的用户界面技术,也可以称为下一代的显示系统。
WPF可以让具有创造力的设计人员计具具有震撼视觉体验的客户端应用程序的用户界面,也可以使用其子集Siliverlight创建具有创建力的Web Base应用。
WPF有以下几个重大的功能特色:
(1) 基于矢量的绘图技术。WPF基于DirectX,可以最大化地利用显示卡的性能。基于矢量绘图技术,可以无限地放大和缩小图形,WPF利用Direct3D进行
图形着色。
(2) 采用声明式的程序设计。使用派生自XML的XAML标记语言来声明式的设计UI,设计人员可以选择微软的Expression Blend设计软件进行UI部分的可见
即可得设计。
(3)Web样式的布局模型。增加了流式布局模型的体验,除了使用坐标进行布局外,还可以使用流动式布局排列用户控件。
(4)强大的绘图功能的支持。除了支持基本的图形、文本块外,还提供了很多绘图特性,比如透明度及内置的3D运行。
(5)与多媒体、动画技术的完美结合。设计人员可以用XAML标记或借助于Expression Blend软件来设计用户界面动画。
(6)样式和模板。用于重用已有的样式设定,使用模板可以改变元素的显示方式,使用样式可以为控件形成控件换肤效果。
WPF是一种统一的技术,是微软基于SOA(Service Oriented Architecture,面向服务的架构)所推出的.NET平台下的开发框架。
WCF是微软分布应用程序开发的最新开发框架,它融合了.NET平台下的分布式开发技术,如.NET Remoting、Web Service 和MSMQ等。
WCF具有如下3大基础概念:
(1)消息和终结点。WCF建立在基于消息通信的基础上,可以用消息表示的任何内容,如HTTP请求都可以使用一种统一的编程模型来表示。
这样可以在不同的传输方式中提供一统一的API。消息在终结点之间传递,终结点是发送或接收消息的场所,终结点定义消息交换所需要的所有信息。
(2)通信协议。元素的传输协议,在WCF中这是必需的,可以使用常用的传输协议如HTTP和TCP,可以通过局域网或互联网来发送消息,
也可以使用其他支持与MSMQ应用程序和对等网上的节点进行通信的传输协议,而且使用WCF的可指导性计划特性可以添加更多的传输机制。
通信堆栈中另一个必要的元素是消息格式的编码,在WCF中,可以使用文本编码、消息传输优化机制编码及用于实现高效传输的二进制编码。
(3)消息模式。WCF支持多种消息模式,不同的传输协议支持不同的消息模式,包括请求-回复模式、单向模式和双工通信模式。
WF是微软在.NET 3.0之后推出的一个工作流开发框架。目的在于为现在的.NET应用程序嵌入工作流应用。WF不是一个独立的工作流应用程序,
它提供了一些类库用于辅助工作流应用程序的开发,并提供了实现工作流应用程序时所需要实现的一些机制,如果持久性、补偿、跟踪机制等。
公共语言运行时(Common Language Runtime,CLR)是一个和Java虚拟机一样的运行时环境,主要负责资源的管理,
比如内存分配和垃圾收集,以保证应用和底层操作系统之间的隔离。
简而言之,.NET框架能保证用户可以使用多种语言进行.NET应用程序的开发和交互,因为CLR实现了通用语言基础架构(Common Language Intrastructure,CLI)。
它定义了.NET Framework基础结构的可执行代码,以及代码运行时的环境规范。它定义了一个与语言无关的跨体系结构的运行环境,
这使得开发者可以用规范定义的各种高级语言来开发软件,并且无须修正即可将软件运行在不同的计算机体系结构上。
有了公共语言运行时,开发人员就可以很容易地设计出对象能够跨语言交互的组件和应用程序。
也就是说,用不同语言编写的对象可以互相通信,并且它们的行为可以紧密集成。
例如,可以定义一个类,然后使用不同的语言从原始类派生出另一个类或调用原始类的方法。还可以将一个类的实例传递到不同的语言编写的另一个类的方法。
这种跨语言集成之所以成为可能,是因为基于公共语言运行库的语言编译器和工具使用由公共语言运行库定义的通用类型系统。