1.8 框架类库(FCL)介绍

来源:互联网 发布:知字结构部首是什么 编辑:程序博客网 时间:2024/05/29 15:25

.NET Framework包括了FCL, FCL是一组DLL程序集, 包含着几千个类型定义, 每个类型都暴露出一些功能. 微软正在生成额外的程序库, 例如WinFxDirectX SDK. 这些额外的程序库提供了更多的类型, 暴露出更多的功能供你使用. 我希望微软将来能提供更多的程序库, 这里是开发者使用这些程序集能够创建的几类应用程序:

Ÿ   Web服务: 能处理基于XML的信息通过Internet非常容易地发送.

Ÿ   Web窗体: 基于HTML的应用程序(Web站点). 典型地, Web窗体应用程序会调用数据库查询和Web服务, 合并和过滤返回的信息, 然后再通过基于丰富的HTML的用户接口在浏览器中展现信息.

Ÿ   Windows窗体: 丰富的Windows GUI应用. 除了使用Web窗体页面来创建你的应用程序UI, 你可以使用Windows桌面提供的更加强大的, 高性能的功能. Windows窗体应用程序可以利用控件, 菜单, 鼠标和键盘事件, 它们能够直接和操作系统交换信息. Web窗体应用一样, Windows窗体应用也能调用数据库查询和请求Web服务.

Ÿ   Windows控制台应用: 对于只有非常简单的UI需求的应用来说, 控制台应用能提供快速和简单的方式来构建一个应用. 编译器, 工具包, 和工具都是典型的控制台应用程序.

Ÿ   Windows服务: 利用.NET Framework, 你可以创建出由Windows服务控制管理器(SCM)控制的服务应用程序.

Ÿ   组件库: .NET Framework允许你构建单独的程序集(组件), 它们可以应用于前面提到的各种类型的应用程序.

因为FCL包括成千上万个类型, 一组相关的类型在单独的名字空间呈现给开发者. 例如Syestem名字空间(你应该非常熟悉它)包含Object基类型, 其他所有类型都必须派生自它, 此外, System名字空间包含interger, Character, String, exception handling, console IO, 以及一大堆数据类型安全转换的utility类型, 格式化数据类型, 产生随机数, 执行各种数学函数. 所有应用程序都使用System名字空间中的类型.

为了访问framwork的任何功能, 你需要知道你需要的功能在哪个名字空间中, 许多类型允许你定制他们的行为, 你可以从FCL类型派生出你自己的类型. 面向对象的本质是.NET Framework如何提供一致的编程模式给开发者. 开发者也能很容易地创建他们自己的名字空间来包含他们自己的类型. 这些名字空间和类型无缝地合并到编程模式中, Win32编程模式想比, 这个新方法大大简化了软件开发.

FCL中的大多数名字空间的类型可以用于任何种类的应用程序, 1-3列出了一些常见的名字空间并简单地描述了其中的类型的用途. 这只是众多名字空间中很小一部分例子, 请参考微软SDK文档来熟悉微软提供的逐渐增长的名字空间.

1-3 FCL中一些常见的名字空间

名字空间

内容描述

System

每个应用程序使用的所有基类型

System.Data

与数据库进行通讯和处理数据的类型

System.Drawing

操作2-D图形的类型, 用于Windows窗体应用程序和创建出现在Web窗体页面中的图像

System.IO

处理系统I/O和遍历文件夹与文件的类型

System.Net

允许低级网络通讯和处理一些常见的网络协议的类型

System.Runtime.InteropServices

允许托管代码访问非托管OS平台的功能, 例如COM组件和Win32或者自定义DLL中的功能

System.Security

用于保护数据和资源的类型

System.Text

不同编码方式的文本处理的类型, 例如ASCIIUnicode

System.Threading

用于异步操作和同步访问资源的类型

System.Xml

用于处理XML架构(schema)和数据的类型

本书主要讲述CLR和与CLR关系密切的一般的类型, 因此本书的内容适用于所有的程序员编写以CLR为目标的应用程序和组件. 很多其他书籍覆盖了特定的应用类型, 例如Web服务, Web窗体, Windows窗体等. 这些其它的书籍能很好地帮助你开始构建应用程序, 我认为这些应用特定的书籍可以帮助你从上而下地学习, 因为它们关注的是应用程序类型, 而不是开发平台. 在本书, 我将提供信息帮助你从下至上地学习, 读过本书和应用特定的其他书籍之后, 你将能够很容易地构建你所需要的任何类型的应用程序.

原创粉丝点击