1.6 Framework 类库
2011-11-17 13:49 iRead 阅读(346) 评论(0) 编辑 收藏 举报.NET Framework中包含了Framework类库(Framework Class Library,FCL)。FCL是一组DLL程序集的统称,其中含有数千个类型定义,每个类型都公开了一些功能。Microsoft发布的库也并非仅限于此,其他还有Windows SideShow Managed API SDK和DirectX SDK等等。这些额外的库提供了更多的类型,公开了更多可用的功能。事实上,Microsoft正在以惊人的速度发布大量库,开发者在使用各种Microsoft技术时,变得前所未有的简单。
下面列举了应用程序开发人员可以利用这些程序集创建的一部分应用程序:
- Web服务(Web service) 利用Microsoft的ASP.NET XML Web Service技术或者Micrisoft的Windows Communication Foundation(WCF)技术,可以非常简单地处理通过Internet发送的消息。
- Web窗体应用程序(Web Form) 开发基于HTML的应用程序(网站)。可以在ASP.NET Web窗体应用程序中查询数据库和调用Web服务,合并和筛选返回的信息,然后使用一个基于HTML的用户界面,在浏览器中显示那些信息。
- Windows应用程序 开发Windows GUI应用程序。开发人员不是使用一个Web窗体页来创建应用程序的用户界面,而是使用Windows窗体编程技术或者WPF(Windows Presentation Foundation)编程技术来利用由Windows操作系统提供的更强大的、更出色的功能。GUI应用程序可以利用快件、菜单以及鼠标/键盘事件,它们能直接与底层操作系统交换信息。与Web窗体应用程序相似,Windows窗体应用程序也能查询数据库和使用Web服务。
- 富Internet应用程序(Rich Internet Application,RIA) 利用Microsoft的Silverlight技术,可以构建通过Internet来部署的GUI应用程序。这种程序能在Web浏览器的内部或外部运行。还可以在非Windows操作系统与移动设备上运行。
- Windows控制台应用程序 如果应用程序对用户界面的要求比较简单,那么控制台应用程序提供了一种快速、简单的方式来生成一个应用程序。编译器、实用程序和工具一般都是作为控制台应用程序来实现的。
- Windows服务 是的,完全可以使用.NET Framework生成“服务”应用程序。可通过“Windows 服务控制管理器”(Service Control Manager,SCM)来控制这些服务。
- 数据库存储过程 Microsoft的SQL Server、IBM的DB2以及Oracle的数据库服务器允许开发人员用.NET Framework写存储过程。
- 组件库 .NET Framework允许生成独立程序集(组件),其中包含的类型可以轻松集成到前面提到的任何一种类型的应用程序中。
由于FCL包含数量极多的类型,所以有必要将相关的一组类型放到一个单独的命名空间中。例如,System命名空间(这应该是你最熟悉的)包含Object基类型,其他所有类型最终都是从这个基类型派生的。此外,System命名空间包含用于整数、字符、字符串、异常处理以及控制台I/O的类型。还包含一系列实用类型,能在不同数据类型之间进行安全转换、格式化数据类型、生成随机数以及执行各种数学运算。所有应用程序都要使用来自System命名空间的类型。
为了使用Framework的任何一个功能,必须知道这个功能是由什么类型提供的,以及该类型包含在哪个命名空间中。许多类型都允许自定义其行为。为此,只需从合适的FCL类型派生出你自己的类型。.NET Framework平台在本质上是面向对象的,这为软件开发人员提供了一致性的编程模式。此外,开发人员可轻松创建自己的命名空间,并在其中包含自己的类型。这些命名空间和类型无缝地合并到编程模式中。相较于Win32编程模式,这种新方式极大地简化了软件开发。
FCL的大多数命名空间都提供了各种应用程序通用类型。表1-3总结了部分常规命名空间,并简要描述了其中的类型的用途。这里列出的只是全部可用命名空间的极小的一部分。请参见与各种Microsoft SDK配套提供的文档,熟悉Microsoft发布的命名空间(它们的数量正在变得越来越多)。
表1-3 部分常规的FCL命名空间
命名空间 | 内容说明 |
System | 包含每个应用程序都要用到的所有基本类型 |
System.Data | 包含用于和数据库通信以及处理数据的类型 |
System.IO | 包含用于执行流I/O以及浏览目录/文件的类型 |
System.Net | 包含进行低级网络通信,并与一些常用Internet协议协作的类型 |
System.Runtime.InteropServices | 包含允许托管代码访问非托管操作系统平台功能(比如COM组件以及Win32或定制DLL中的函数)的类型 |
System.Security | 包含用于保护数据和资源的类型 |
System.Text | 包含处理各种编码方式(比如ASCII和Unicode)的文本的类型 |
System.Threading | 包含用于异步操作和同步资源访问的类型 |
本书重点在于CLR以及和CLR密切交互的常规类型。所以,任何开发人员只要开发的应用程序或组件是面向CLR的,就适合阅读本书。还有其他许多不多的参考书描述了特定的应用程序类型,比如Web Service、Web窗体和Windows窗体等等。这些书能指导你快速开始构建自己的应用程序。我认为这些针对特定应用程序的参考书有助于你进行“自上而下”的学习,因为它们将重点放在特定的应用程序类型上,而不是放在开发平台上。相反,本书提供的信息有助于你进行“自下而上”的学习。在阅读了本书以及一本针对具体应用程序的参考书之后,应该就能轻松、熟练地构建任何种类的应用程序。
注:.NET Framework类库还包括创建Mobile应用程序所需要的程序集。