第20章_基于组件的开发技术(zxq第3稿060316).doc

上传人:xins****2008 文档编号:111219599 上传时间:2019-11-02 格式:DOC 页数:22 大小:389.50KB
返回 下载 相关 举报
第20章_基于组件的开发技术(zxq第3稿060316).doc_第1页
第1页 / 共22页
第20章_基于组件的开发技术(zxq第3稿060316).doc_第2页
第2页 / 共22页
第20章_基于组件的开发技术(zxq第3稿060316).doc_第3页
第3页 / 共22页
第20章_基于组件的开发技术(zxq第3稿060316).doc_第4页
第4页 / 共22页
第20章_基于组件的开发技术(zxq第3稿060316).doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第20章_基于组件的开发技术(zxq第3稿060316).doc》由会员分享,可在线阅读,更多相关《第20章_基于组件的开发技术(zxq第3稿060316).doc(22页珍藏版)》请在金锄头文库上搜索。

1、第20章 基于组件的开发技术第20章 基于组件的开发技术 在软件开发领域,组件技术以前所未有的方式提高了软件产业的生产效率。由于组件技术的成熟,软件产业的形式也随之发生了很大的变化。很多相对较为专业但用途广泛的软件,几乎都以组件的形式组装和扩散到一般的软件产品中。 在VS2005中,已经提供了相当丰富的组件,包括具有界面功能的组件控件。常用的组件已经放到工具箱中,可以直接使用。但是有时也需要自己开发一些组件或控件,本章将简要介绍与此相关的技术和设计技巧。20.1 组件和控件 这一节主要介绍组件、控件以及特性的基本概念。1. 组件 在.NET Framework中,组件是指实现System.Co

2、mponentModel.IComponent接口的类,或从实现IComponent的类中直接或间接派生的类。在软件开发中,组件是指可重复使用并且可以和其他对象进行交互的对象。.NET Framework组件除了满足这些要求外,还提供了设计时支持,即作为组件的类可直接添加到VS2005工具箱中,也可将组件拖放到某个窗体上,并在设计界面上对组件进行操作。 从组件的概念可知,组件也是由类实现的,但一个类要成为组件,必须实现System.ComponentModel.IComponent接口,并提供一个没有参数的构造方法。在VS2005环境下开发的类,如果生成为.DLL后缀的文件,则这些类就自动变为

3、组件了。2. 控件 控件是提供或实现用户界面功能的组件。控件肯定是组件,但只有提供用户界面的组件才称之为控件。.NET Framework为控件提供两个基类:一个是System.Windows.Forms.Control,用于客户端Windows窗体控件;另一个是System.Web.UI.Control,用于ASP.NET服务器控件。.NET Framework类库中的所有控件直接或间接从这两个类派生。3. 特性 在.NET框架中,特性(Attribute)是一种标记,用于提供属性或方法的一些信息。在组件设计中,当需要在设计时显示控件及其成员时,就可以利用特性提供有价值的信息。 特性声明在方

4、括号中,在System.ComponentModel名称空间下定义了特性和事件的一组标准属性,当创建一个Windows窗体时,系统会自动在代码中添加对此名称空间的引用。 在属性声明的上方,可以直接声明特性,例如:/默认值DefaultValue(null)/属性窗口底部的描述以及其所在分组的分类名称Description(校验错误时的提示文本信息。), Category(验证)public string ErrorMessage get . set . 表20-1列出了部分特性。表20-1 .NET Framework提供的部分特性属性说明举例Browsable用一个布尔值指定某个属性或事件是

5、否显示在属性窗口中,默认为trueBrowsable(false)Bindable用一个布尔值指定将属性绑定到数据对可视化设计器是否有意义,默认为falseBindable(true)即则该属性可显示在“数据绑定”对话框中。Category指定在可视化设计器的属性浏览器中属性分在哪一类Category(外观) 表示属性浏览器在“外观”类别中显示该属性。Description当用户在属性窗口中选中该属性或事件时,显示在属性窗口底部的此属性的简短描述Description(设定渐变的起始色)DefaultValue指定属性的默认值。此值应与从属性访问器(getter)返回的默认值相同Default

6、Value(null)或DefaultValue()DefaultProperty指定组件的默认属性(Property)。在可视化设计器中,当在设计界面上单击控件时,属性浏览器通常突出显示此默认属性DefaultProperty(Text)DefaultEvent在可视化设计器中指定控件的默认事件DefaultEvent(Submit)Localizable指定本地化属性对可视化设计器是否有意义。对控件轮询可本地化的属性时,设计器会将此属性值保存到非特定于区域性的资源文件或其他本地化源中。Localizable(false|true)例如:Localizable (true),可视化设计器会在

7、对本地化资源进行序列化时包含该属性。ToolboxData指定ASP.NET类元素的格式字符串。如果在工具箱中双击控件或将其从工具箱拖动到设计界面上时,该字符串将成为控件的标记。ToolboxData() 例如: AspNetHostingPermission代码访问安全特性。该特性使JIT编译器检查链接到控件的代码是否具有AspNetHostingPermission权限。所有的公共ASP.NET类均使用此属性标记。应将AspNetHostingPermission特性应用于控件,以对部分受信任的被调用方进行安全检查。AspNetHostingPermission(SecurityActio

8、n.Demand,Level=AspNetHostingPermissionLevel.Minimal)或 AspNetHostingPermission(SecurityAction.InheritanceDemand,Level=AspNetHostingPermissionLevel.Minimal)20.2 组件的设计 在VS2005中,可以非常轻松的开发自定义组件,由于所有内容都封装在类中,所以也可以叫做类库。组件编译后生成的扩展名为DLL,它本身并不能单独运行。本节将通过简单的示例,让读者熟悉组件的开发和调用方法。20.2.1 组件设计的一般方法【例20-1】简单组件设计。 1)

9、在VS2005中,选择【新建项目】,在【项目类型】中选择【Visual C#项目】,在【模板】中选择【类库】,输入文件名TestComponent,选择相应保存路径,完成上述操作后单击【确定】,进入代码编辑窗口。 2) 将源代码改为如下内容。using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace TestComponent public class MyDataBase /返回表中记录数 public int G

10、etRecordCount(string connString, string tableName) int number = -1; SqlConnection conn = new SqlConnection(connString); SqlCommand command = new SqlCommand(select count(*) from + tableName, conn); try conn.Open(); number = (int)command.ExecuteScalar(); conn.Close(); catch (Exception err) throw new E

11、xception(err.Message); return number; /根据Select语句自动生成其他SQL语句 public void BuildAdapter(ref SqlDataAdapter adapter) SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.DeleteCommand = builder.GetDeleteCommand(); adapter.InsertCommand = builder.GetInsertCommand(); adapter.UpdateCommand

12、= builder.GetUpdateCommand(); 3) 单击【生成】菜单,选择【生成TestComponent】,即得到了TestComponent.dll组件,以后就可以通过引用使用该组件了。20.2.2 在Windows应用程序中调用设计的组件【例20-2】Windows应用程序中组件调用。 1) 新建一个Windows应用程序项目,向Form1设计窗体中拖放一个DataGridView控件和一个Label控件,调整为适当大小。 2) 鼠标右键单击【解决方案资源管理器】中的项目名,选择【添加】【添加现有项】,在弹出的窗体中选择添加的文件类型为“数据文件”,找到第8章例8-1创建的

13、项目文件夹,将MyDatabase.mdf添加到当前项目中,在【数据源配置向导】中,直接单击【完成】。 3) 选择【解决方案资源管理器】,右击【引用】,单击【添加引用】【浏览】,找到TestComponent.dll组件,然后单击【确定】。 4) 在Form1.cs类代码中添加下列名称空间引用。using System.Data.SqlClient; 5) 修改构造函数为下列内容。public Form1() InitializeComponent(); string connString = Properties.Settings.Default.MyDatabaseConnectionString; TestComponent.MyDataBase me = new TestComponent.MyDataBase(); label1.Text = 总记录数: + me.GetRecordCount(connString, MyTable2); SqlConnection conn = new SqlConnection(connString); SqlDataAdapter adapter = new SqlDataAdapter(select * from

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号