大同工业园区 .doc
《大同工业园区 .doc》由会员分享,可在线阅读,更多相关《大同工业园区 .doc(59页珍藏版)》请在文库网上搜索。
1、第 24 章 广告模块设计 广告能够为网页带来很多的增色功能效果和盈利,广告模块的设计对网站来说非常重要,一个网 站不可能只有一个广告或者网站的广告还需要手动增加和删除。广告模块需要随机的获取系统广告或 者能够在相应的位置增加广告来实现更多广告效果。 24.1 学习要点 广告模块需要涉及到一些 ASP.NET 3.5 的基本知识,如果要仔细学习广告模块的开发,需要详细 了解本书的一些章节知识,这些章节如下所示: ASP.NET 的网页代码模型。 Web 窗体基本控件。 数据库基础。 ADO.NET 常用对象。 Web 窗体数据控件。 ASP.NET 内置对象。 用户控件 自定义控件 广告模块制
2、作的是一个或多个自定义控件,这样在多个不同的页面中就能够快速的使用控件进行 广告开发,在基本了解了以上章节的知识点后,就能够熟练学习和开发此模块。 24.2 系统设计 广告系统是一个非常重要的系统,随着网站的发展,如果网站需要实现盈利,就可以通过发布和 获取广告信息来得到更多的盈利。管理人员希望在后台管理中,添加广告信息,包括文字广告和图片 广告,这些广告能够按照一定的顺序随机的进行展现,并且当用户访问网站时,应该能够在页面中寻 找到相应的广告并且点击广告。 24.2.1 模块功能描述 在网站系统的发展过程中,广告投放是必不可少的一部分,因为现在的绝大部分网站都需要通过 广告来盈利。不仅如此,
3、广告还能够绝佳的展现网站现有的信息,如果网站是一个商城类型的网站, 那么广告在这个时候还能够为自己的网站展现广告以达到宣传自己网站的目的。 广告的展现过程需要分几个类型的广告展现,最常见的是文字广告,文字广告是最常用也是最基 本的广告类型,但是文字广告比较多的时候会引起用户的反感。除了文字广告还有图片广告,图片广 告能够引起网站用户或者是消费者的兴趣,因为图片广告一目了然并且容易被网站用户发现和查看, 575 如果图片广告制作的比较精良,那么会极大的提高用户的兴趣并提高点击量。在广告模块的设计中, 考虑到有不同的广告类型和展现方式,通常情况下有以下三种广告展现方式。 文字广告:仅向用户展现文字
4、广告。 图片广告:仅向用户展现图片广告。 图文广告:随机的向用户展现文字或图片广告。 文字广告和图片广告都是单纯的广告形式,只向页面中展现文字或者图片,提供一个超连接即可, 而图文广告能够随机的展现文字广告或图片广告,当用户将页面刷新或者缓存更新时,对用户展现的 广告是不同的。 由于广告模块是网站的管理者进行发布的,开发人员可以将广告模块制作成为自定义控件,使用 自定义控件可以允许管理者或开发人员进行管理或发布,对于不同的广告类型,可以考虑不同的自定 义控件。而对于管理员而言,广告发布流程是比较简单的,如图 24-1 所示。 图 24-1 广告发布流程 正如图 24-1 所示,对于管理人员并无
5、需做复杂的操作,管理人员只需要在后台编写相应的广告类 型、广告代码和广告标题等广告模块需要的字段,然后进行广告的发布就能够在页面呈现了,但是对 于开发人员来说,要让这个过程能够顺利的进行需要在页面呈现中进行筛选。如果是文字广告,就需 要筛选出文字广告和广告说明,如果是图片广告,就需要筛选出图片和超链接,对于不同的广告类型 开发人员必须筛选出不同的广告并呈现在页面中。所以对于开发人员可以选择如下两种方案进行广告 模块的开发。 自定义控件:开发人员可以为不同的广告类型进行自定义控件的开发,对于页面编程人员可以 拖动自定义控件到相应的位置进行广告的呈现,但是这样制作就有可能在页面中呈现多个相同 的广
6、告。 固定投放位置:开发人员可以固定投放位置,例如网站头部广告、网站底部广告和网站侧面广 告,虽然这样做能够降低网站的重复广告的频率,但是这样制作无疑只能固定死网站的 HTML 代码,也显得不够灵活。 虽然网站广告投放没有最好的解决方案,通常开发人员也会通过页面的修改进行网站广告的投放, 但是这里还是选择一个折中的方案,就是自定义控件的开发,自定义控件的开发可以通过编程的方法 在页面中进行广告的控制和筛选,相比固定投放位置而言,在维护过程中更加的方便。从上述流程中 可以基本规划几个自定义控件: 文字广告自定义控件:专门用于呈现文字广告的自定义控件。 图片广告的自定义控件:专门用于呈现图片广告的
7、自定义控件。 图文广告的自定义控件:专门用户呈现图文广告的自定义控件。 高级广告呈现控件:可以通过属性进行控制广告的呈现。 广告发布页面:管理员可以通过该页面进行广告发布。 576 广告呈现页面:管理员发布的广告能够在一个或多个页面进行呈现。 广告管理页面:管理员能够为不需要使用的广告进行管理。 通过编写多个自定义控件进行广告控制,也可以通过编写一个广告控件进行广告控制,同时管理 员能够方便在后台进行广告发布并能够轻松的呈现在前台页面。 24.2.2 模块流程分析 在对业务进行了基本的划分之后,可以为模块进行基本的流程分析,包括这个模块中最基本的函 数,以及这些函数在页面中是如何执行的。其中广
8、告模块中需要开发广告发布页面,广告发布页面能 够让管理员快速的发布广告,并选择广告发布的类型和位置,这样就能够轻松进行广告的发布,同时 管理员也应该能够进行广告的管理,包括修改和删除,如图 24-2 所示。 图 24-2 管理员发布流程 管理员能够在广告后台发布广告、修改广告和删除广告,当对广告进行修改后可以选择对广告再 次进行投放,投放完成后就能够在页面进行呈现。对于上述流程可以分别开发若干个页面进行功能整 合,如图 24-3 所示。 图 24-3 管理员操作页面划分 管理员在后台只需要进行广告管理等操作,而对于页面呈现,只需要从自定义控件中选取相应的 数据并通过编程的方法进行整合呈现即可,
9、而其中最重要的是如何进行页面呈现,只有灵活的将同类 广告进行页面呈现才能够避免重复广告的出现。 577 24.3 数据库设计 对于广告模块的数据库设计可能比较的复杂,其复杂并不在数据库设计的本身上,数据库本质上 就是一种存储数据的容器,而如何进行数据筛选在广告模块中是一个最为重要的过程,对于数据库的 设计就需要考虑到广告模块中的数据筛选。 24.3.1 数据库设计分析 对于广告模块的数据库设计,需要加强数据条目的筛选功能,例如数据库中对广告的类型进行筛 选,以选择不同类型的广告的不同呈现方式。在广告设计中,需要设计 3 个表,这三个表分别为 ads、type 和 adclass。其中 ads
10、表用于存放广告数据,其字段如下所示。 广告编号:表示广告的 ID 号,为自动增长的主键。 发布时间:表示广告发布的时间。 结束时间:表示广告发布结束的时间。 广告名称:作为广告的标识而存在,用于表示广告的名称。 广告内容:作为广告的内容而存在,可以是文字也可以是 HTML 代码。 广告备注:作为广告的备注而存在,用于标识备注信息。 广告图片:作为图片广告的图片连接。 广告连接:作为外部连接的广告的地址。 广告标题:作为广告的标题。 广告 html:作为广告呈现的 HTML 代码,可以为 JavaScript 代码。 广告类型:作为广告的类型而存在,类型没描述在 type 表中。 聚合类型:作为
11、广告的广告 ID 而存在,用于归纳同类广告。 其中 type 表用于存放广告的类型数据,其字段如下所示。 分类编号:表示广告类型的 ID 号,为自动增长的主键。 分类名称:表示广告类型的描述,例如文字、图片等。 其中 adclass 表示广告显示的类型,使用 ads 表的 adid 表示可以表示广告在页面中呈现的归纳,其 字段如下所示。 聚合分类编号:表示广告类型的 ID 号,为自动增长的主键。 分类名称:表示广告存放类型的描述,例如头部广告、底部广告。 对于广告模块来说,其数据表比较多,为了方便维护和扩展,就必须要让一些需要长期修改的字 段进行外部连接。这样就能够极大的加强数据库中数据的健壮
12、性和低耦合性。 注意:良好的数据库设计可能需要同时创建多个表进行一个功能的描述,虽然在数据库设计时这样 的方法比较麻烦,但是在维护和开发中,这样会带来很多的便利。 24.3.2 数据库表的创建 创建表可以通过 SQL Server Management Studio 视图进行创建也可以通过 SQL Server Management Studio 查询使用 SQL 语句进行创建。广告模块需要创建多个表进行广告的描述,在创建表之前首先需 要创建一个 ad 数据库,数据库创建完成后就能够在数据库中创建表了。这里首先需要创建一个 ads 表, 该表用于存储广告模块中的广告信息,如图 24-4 所示。
13、 578 图 24-4 ads 表结构 正如图 23-4 所示,其中的字段意义如下所示。 id:表示广告的 ID 号,为自动增长的主键。 time:用于标识广告的开始时间 endtime:用于标识广告的结束时间,当时间到达该时间后,广告将不再被呈现。 name:用于标识广告的名称,这个名称在后台管理中可以进行辨认。 content:作为广告的内容而存在,管理员能够在该字段进行广告内容的编写。 infor:作为广告的备注而存在,管理员和管理员之间能够通过备注阅读该广告是什么广告。 picture:作为图片广告的图片连接。 url:作为外部连接的广告的地址,用户单击广告时能够跳转到相应的连接。 t
14、itle:作为广告的标题,呈现在页面之中。 html:作为广告呈现的 HTML 代码,可以为 JavaScript 代码,当广告为文字广告时,将呈现 HTML。 type:作为广告的类型而存在,类型没描述在 type 表中。 adid:作为广告的广告 ID 而存在,用于归纳同类广告,一个页面可以呈现一种或多种类型的 广告。 上述字段描述了相应的字段在实际应用中的意义,创建表的 SQL 语句如下所示。 USE ad GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE dbo.ads(/创建 ads 表 id int I
15、DENTITY(1,1) NOT NULL, time datetime NULL, endtime datetime NULL, name nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, content nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, infor nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, picture nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, url nvarchar(500) COLLAT
16、E Chinese_PRC_CI_AS NULL, title nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, html nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, type int NULL, 579 adid int NULL, CONSTRAINT PK_ads PRIMARY KEY CLUSTERED ( id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LO
17、CKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY 上述代码创建了一个 ads 表用于存储广告数据,其中的 type 字段和 adid 字段都是其他表的外键, 这三个表一起完成整个广告模块的数据描述,type 表创建的 SQL 语句如下所示。 USE ad GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE dbo.type(/创建 type 表 id int IDENTITY(1,1) NOT NULL, classname nvarchar(50) C
18、OLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_type PRIMARY KEY CLUSTERED ( id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY type 表用于描述广告的类型,而 adclass 表用于描述广告呈现的类型,这两个表是有区别的。type 主要描述的是广告的类型,包括图片广告、文
19、字广告等,是系统类型,通常情况下是不会更改的。而 adclass 用于描述的是广告呈现时所需要的类型,例如头部广告和底部广告,这些广告通过 adclass 表进 行筛选和整合。adclass 表创建的 SQL 语句如下所示。 USE ad GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE dbo.adclass(/创建 adclass 表 id int IDENTITY(1,1) NOT NULL, classname nchar(10) COLLATE Chinese_PRC_CI_AS NULL, CONSTR
20、AINT PK_adclass PRIMARY KEY CLUSTERED ( id ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY ) ON PRIMARY 上述代码创建了一个 adclass 表,使用该表能够将广告进行分类并呈现到相应的页面中,可以极大 程度的避免同种类型的广告的呈现。数据库的设计是非常重要的,也是在软件开发过程中一个非常重 要的环节。在广告模块中,必须
21、先规定好,以及规划好广告模块的数据库设计,否则数据库的更改会 带来很多的不便,例如如果将 adclass 表和 type 表整合在 ads 表中,如果要修改一个字段的值,例如修 改图片类型的广告,有可能需要更改一个或多个数据,这样就非常的不方便,也会导致数据的混乱, 580 所以数据库设计在任何模块甚至是系统的开发过程中都是非常重要的一个环节。 24.4 界面设计 对于广告模块的界面设计,并不像前面两个模块一样对界面的要求很高,也同样没有对用户体验 进行要求。但是广告模块的界面设计也并不是很简单,由于广告骄傲模块的呈现需要使用自定义控件 进行 HTML 代码的呈现,其界面设计反而要求开发人员有
22、较熟练的 HTML 编码能力。 24.4.1 发布广告界面 发布广告界面作为管理员进行广告发布的页面,这个页面无需特别复杂的呈现,因为管理员最终 期望的是能够快速的进行广告的发布,而不是花哨的界面,不过虽然这样,还是需要进行一定的用户 体验的开发,发布广告界面代码见光盘中源代码第 24 章24-124-1Postad.aspx 所示。 其中的代码编写了广告信息的基本控件,管理员能够填写相应的广告信息用于广告的识别。在广 告发布中,还需要填写广告发布代码,以及图片连接用于高级的广告信息的呈现,示例代码见光盘中 源代码第 24 章24-124-1Postad.aspx 所示。 在该页面中,使用了若
23、干控件,这些控件都分别为广告中的数据输入进行准备,这些控件包括 TextBox 文本框控件、日历控件和下拉菜单控件。下拉菜单作为数据绑定控件用于数据绑定,提供给管 理人员选择相应的广告分类。 24.4.2 发布广告页数据源配置 在发布广告页面中使用了数据源控件进行数据源的呈现。在页面中,需要对数据源进行配置、筛 选和生成才能够在发布页面中进行数据选择。单击【配置数据源】按钮,选择【新建连接】选项,在 新建连接窗口中进行数据源配置,如图 24-5 所示。 拖放一个数据源控件到页面,用于配置 adclass 数据连接和数据绑定,创建数据连接后,选择【将 数据连接保存到 Web.config】选项,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大同工业园区 大同 工业园区