《第十一讲:组件开发》由会员分享,可在线阅读,更多相关《第十一讲:组件开发(25页珍藏版)》请在金锄头文库上搜索。
1、Visual C#.NET编程技术 中科院计算所计算机职业技能培训中心 导言在计算机行业内,有关将软件开发过 程转向以组件为中心的好处已经讨论了 很多年了。20世纪90年代,面向对象编 程(OOP)运动很快发展成包括组件的 运动。基于组件开发的说法倾向于组件 不仅仅是对象的另一种称呼,而且还是 新的开发范型的中心,这种开发范型较 少注重诸如继承和多态性等语言问题, 更多地注重于软件整体结构、维护和交 付过程。第十一讲 组件开发第一节 概述1组件分类今天,有数以千计的第三方组建存在,而这个数 字还会以指数级的速度增长,当涉及到大量的项目时 ,建立一种或多种的分类标准是十分重要的。 下面是一些流行
2、的实际被开发厂商使用的分类方 法: r角色分类方法 r功能分类方法 r域分类方法 r层次分类方法 r前端、中间层和后端组件角色分类方法角色分类用户界面应用程序数据资源网络容器系统驱动程序操作系统对话框、窗口、可视控件、面板和图形业务逻辑、脚本支持等数据库交互、XML、文件支持等http、tcp/ip、网络安全、SOAP等数组、列表、树、哈希表、堆栈、队列时钟、文件、调度、信号、进程、线程用于打印机、绘图仪、扫描仪、键盘等进程/线程/内存、文件管理、进程调度功能分类方法功能分类图形通信数学数据库用户界面代理程序驱动程序协作2D/3D图形、特效、图像、报表、视频网络、互联网、音频/视频发送接受矩阵
3、、微分方程、符号数学DDL、DDM、数据管理、数据库交互窗体、UI控件、对话框搜索引擎、通讯过滤用于打印机、绘图仪、扫描仪、键盘等工作流程、网络会议、远程学习功能分类方法用户界面容器窗体面板元素一维二进制文本二维树网络域分类方法域分类商业科学人文政府财政银行业航天办公ERP、DSS、薪水管理并行算法、模拟、建模、人工智能地图、数字图书馆、系谱、信息调查、邮政服务、选举服务成本分析、预报、预算、行为测试电子资金过户、信用卡处理、信用历史航空电子设备、控制算法、引擎控制字处理、电子制表、图形表示和策划层次分类方法层次分类前端独立应用程序胖客户端中间层后端瘦客户端Web窗体Web控件Web/Wind
4、ows服务数据库服务程序目录服务程序网关服务程序2组件结构在过去的40多年里,软件系统的结构发生了巨大 的变化。其中许多的变化与硬件成本的下降和计算机 的商品地位有关。 父组件与子组件 在基于组件的开发中,最重要的类型结构就是父- 子关系结构。比如Windows的桌面就是所有应用程 序的父组件。每个子窗口代表一个应用程序。组件B组件C组件A3开发过程组件开发过程定义了制作和配置软件 组件所需遵循的步骤。通常包括四个阶 段: r分析阶段 r设计阶段 r实现阶段 r部署阶段4组件设计 基本要求: 组建之间的耦合度小 类图简单 交互图简单 满足:可操作性、可测试性、可用性、可 部署性、可维护性、可靠
5、性、灵活性、可 移植性第二节 Windows组件开 发r概述 .NET的开发平台提了一个名称空间 System.Windows.Forms,在此名称空间中提供了 许多开发Windows Form的类和对象,这些类和对 象不仅内容十分丰富,而且还具有十分强大的拓展 性,可以利用这些类和对象,简单而迅速地开发出 自己需要的组件。 用户控件提供了一种用来创建并重新使用自定 义图形界面的方法。用户控件实际上是一个具有可 视化表示形式的组件。因此,它可能包含一个或多 个 Windows 窗体控件、组件或代码块。 使用用户控件的方式与使用标准的控件一样, 可以用放置其他控件的相同方式将用户控件放置在 Wi
6、ndows 窗体上。r在进行控件设计时所应该考虑的问题: F需要哪种图形化接口? F该控件将处理何种特定的用户交互? F现有控件中有没有近似满足所需功能的? F能否通过将多个 Windows 窗体控件合在 一起来获得所需功能?r 用户控件: 如果要使自定义代码和一个或多个 Windows 窗 体控件的功能组合在一起,应该创建一个“用户组件” 。这可以从System.Windows.Forms.UserControl 类来继承,从而可以继承用户组件中必需的所有标准 定位和助记处理代码。 r 注意: F用户组件将快速控件开发与标准 Windows 窗体控件功能以 及通过添加自定义属性和方法创建的多
7、功能组合在一起。 F在创建用户组件时,系统会提供一个可视设计器,可以将标 准Windows 窗体控件置于该可视设计器中。 F这些控件保留了其所有固有功能以及标准控件的外观和感观 ,但是一旦将它们置于用户控件后,开发人员就不能通过代 码使用它们。 F用户控件执行其自身的绘图工作,同时也处理与控件相关联 的所有基本功能。r控件设计的方法 控件设计,是分布式程序设计的重要方法 ,在.NET中创建控件,将会比过去的语言花 费更小的系统开销,这里主要使用3 种技术: F建立复合控件; F继承自另一个控件; F根据Control类从头编写。要继承控件必须有控件的源,用于Windows Forms界面的控件
8、有4 个主要源: F内置的控件(与.NET平台一起打包的控件); F导入的现有ActiveX控件; F从软件上得到的基于.NET的第三方控件; F由开发人员为特定目的创建的自定义控件。1复合组件r 符合控件程序实例 一: (1)问题: 自定义组件,它由二个标准WinForm中的组件 合并而成的,一个是标签组件( Lable ),另外一个是 文本框组件( TextBox )。 (2)特性: 自定义组件中定义了二个新的属性,一个属性是 Text,这个属性是通过派生原有的文本框中的Text 属性而得到的;另外一个属性是LabelText,它是通 过继承了原有的标签的Text属性而得到的。 (3)意义
9、: 该组件的主要用途体现如下,在程序设计中,很 多时候是要定义一个标签,标签显示要输入的文本 内容。然后再定义一个文本框,填入信息。使用了 本组件后,只要定义一个此组件,然后对组件属性 设定不同的值就可以了。开发过程参见 .doc 6、复合控件-程序实例一: DemoUserControlr复合控件程序实例二: (1)问题:自定义组件,它由二个标准 WinForm中的组件合并而成的,一个是标签 组件( Lable ),另外一个是Timer定时器组件 。 (2)特性:自定义组件中定义了二个新的属性 ,ClockForeColor 和 ClockBackColor。 (3)意义:该组件的主要用途体现如下,在标 签组件中不断地显示出当前主机的时间值, 从而产生出一个小时钟。开发过程参见 .doc 7、复合控件-程序实例二: DemoUserControl2利用继承创建组件r利用继承的方式来创建组件 : 控件的主要功能描述 设计一个控件,继承于TextBox, 要求仅仅能输入数值,只能有一个小数 点,负号只能在最前面。开发过程参见 .doc 8.利用继承的方式来创建组件 : DemoDigitTextBox学员练习: 针对上述内容的学习,练习Windows组件编程q功能要求:功能自定义本单元的回顾