【Asp.net精品源码栏目提醒】:网学会员在Asp.net精品源码频道为大家收集整理了“【精品】ASP.NET开发大全第24章.广告模块设计 - 其它资料“提供大家参考,希望对大家有所帮助!
第 24 章 广告模块设计 广告能够为网页带来很多的增色功能效果和盈利,广告模块的设计对网站来说非常重要,一个网站不可能只有一个广告或者网站的广告还需要手动增加和删除。
广告模块需要随机的获取系统广告或者能够在相应的位置增加广告来实现更多广告效果。
24.1 学习要点 广告模块需要涉及到一些
ASP.NET 3.5 的基本知识,如果要仔细学习广告模块的开发,需要详细了解本书的一些章节知识,这些章节如下所示:
ASP.NET 的网页代码模型。
Web 窗体基本控件。
数据库基础。
ADO.NET 常用对象。
Web 窗体数据控件。
ASP.NET 内置对象。
用户控件 自定义控件 广告模块制作的是一个或多个自定义控件,这样在多个不同的页面中就能够快速的使用控件进行广告开发,在基本了解了以上章节的知识点后,就能够熟练学习和开发此模块。
24.2 系统设计 广告系统是一个非常重要的系统,随着网站的发展,如果网站需要实现盈利,就可以通过发布和获取广告信息来得到更多的盈利。
管理人员希望在后台管理中,添加广告信息,包括文字广告和图片广告,这些广告能够按照一定的顺序随机的进行展现,并且当用户访问网站时,应该能够在页面中寻找到相应的广告并且点击广告。
24.2.1 模块功能描述 在网站系统的发展过程中,广告投放是必不可少的一部分,因为现在的绝大部分网站都需要通过广告来盈利。
不仅如此,广告还能够绝佳的展现网站现有的信息,如果网站是一个商城类型的网站,那么广告在这个时候还能够为自己的网站展现广告以达到宣传自己网站的目的。
广告的展现过程需要分几个类型的广告展现,最常见的是文字广告,文字广告是最常用也是最基本的广告类型,但是文字广告比较多的时候会引起用户的反感。
除了文字广告还有图片广告,图片广告能够引起网站用户或者是消费者的兴趣,因为图片广告一目了然并且容易被网站用户发现和查看,如果图片广告制作的比较精良,那么会极大的提高用户的兴趣并提高点击量。
在广告模块的设计中,考虑到有不同的广告类型和展现方式,通常情况下有以下三种广告展现方式。
文字广告:仅向用户展现文字广告。
图片广告:仅向用户展现图片广告。
图文广告:随机的向用户展现文字或图片广告。
文字广告和图片广告都是单纯的广告形式,只向页面中展现文字或者图片,提供一个超连接即可,而图文广告能够随机的展现文字广告或图片广告,当用户将页面刷新或者缓存更新时,对用户展现的广告是不同的。
由于广告模块是网站的管理者进行发布的,开发人员可以将广告模块制作成为自定义控件,使用自定义控件可以允许管理者或开发人员进行管理或发布,对于不同的广告类型,可以考虑不同的自定义控件。
而对于管理员而言,广告发布流程是比较简单的,如图 24-1 所示。
图 24-1 广告发布流程 正如图 24-1 所示,对于管理人员并无需做复杂的操作,管理人员只需要在后台编写相应的广告类型、广告代码和广告标题等广告模块需要的字段,然后进行广告的发布就能够在页面呈现了,但是对于开发人员来说,要让这个过程能够顺利的进行需要在页面呈现中进行筛选。
如果是文字广告,就需要筛选出文字广告和广告说明,如果是图片广告,就需要筛选出图片和超链接,对于不同的广告类型开发人员必须筛选出不同的广告并呈现在页面中。
所以对于开发人员可以选择如下两种方案进行广告模块的开发。
自定义控件:开发人员可以为不同的广告类型进行自定义控件的开发,对于页面编程人员可以 拖动自定义控件到相应的位置进行广告的呈现,但是这样制作就有可能在页面中呈现多个相同 的广告。
固定投放位置:开发人员可以固定投放位置,例如网站头部广告、网站底部广告和网站侧面广 告,虽然这样做能够降低网站的重复广告的频率,但是这样制作无疑只能固定死网站的 HTML 代码,也显得不够灵活。
虽然网站广告投放没有最好的解决方案,通常开发人员也会通过页面的修改进行网站广告的投放,但是这里还是选择一个折中的方案,就是自定义控件的开发,自定义控件的开发可以通过编程的方法在页面中进行广告的控制和筛选,相比固定投放位置而言,在维护过程中更加的方便。
从上述流程中可以基本规划几个自定义控件: 文字广告自定义控件:专门用于呈现文字广告的自定义控件。
图片广告的自定义控件:专门用于呈现图片广告的自定义控件。
图文广告的自定义控件:专门用户呈现图文广告的自定义控件。
高级广告呈现控件:可以通过属性进行控制广告的呈现。
广告发布页面:管理员可以通过该页面进行广告发布。
广告呈现页面:管理员发布的广告能够在一个或多个页面进行呈现。
广告管理页面:管理员能够为不需要使用的广告进行管理。
通过编写多个自定义控件进行广告控制,也可以通过编写一个广告控件进行广告控制,同时管理员能够方便在后台进行广告发布并能够轻松的呈现在前台页面。
24.2.2 模块流程分析 在对业务进行了基本的划分之后,可以为模块进行基本的流程分析,包括这个模块中最基本的函数,以及这些函数在页面中是如何执行的。
其中广告模块中需要开发广告发布页面,广告发布页面能够让管理员快速的发布广告,并选择广告发布的类型和位置,这样就能够轻松进行广告的发布,同时管理员也应该能够进行广告的管理,包括修改和删除,如图 24-2 所示。
图 24-2 管理员发布流程 管理员能够在广告后台发布广告、修改广告和删除广告,当对广告进行修改后可以选择对广告再次进行投放,投放完成后就能够在页面进行呈现。
对于上述流程可以分别开发若干个页面进行功能整合,如图 24-3 所示。
图 24-3 管理员操作页面划分 管理员在后台只需要进行广告管理等操作,而对于页面呈现,只需要从自定义控件中选取相应的数据并通过编程的方法进行整合呈现即可,而其中最重要的是如何进行页面呈现,只有灵活的将同类广告进行页面呈现才能够避免重复广告的出现。
24.3 数据库设计 对于广告模块的数据库设计可能比较的复杂,其复杂并不在数据库设计的本身上,数据库本质上就是一种存储数据的容器,而如何进行数据筛选在广告模块中是一个最为重要的过程,对于数据库的设计就需要考虑到广告模块中的数据筛选。
24.3.1 数据库设计分析 对于广告模块的数据库设计,需要加强数据条目的筛选功能,例如数据库中对广告的类型进行筛选,以选择不同类型的广告的不同呈现方式。
在广告设计中,需要设计 3 个表,这三个表分别为 ads、type和 adclass。
其中 ads 表用于存放广告数据,其字段如下所示。
广告编号:表示广告的 ID 号,为自动增长的主键。
发布时间:表示广告发布的时间。
结束时间:表示广告发布结束的时间。
广告名称:作为广告的标识而存在,用于表示广告的名称。
广告内容:作为广告的内容而存在,可以是文字也可以是 HTML 代码。
广告备注:作为广告的备注而存在,用于标识备注信息。
广告图片:作为图片广告的图片连接。
广告连接:作为外部连接的广告的地址。
广告标题:作为广告的标题。
广告 html:作为广告呈现的 HTML 代码,可以为 JavaScript 代码。
广告类型:作为广告的类型而存在,类型没描述在 type 表中。
聚合类型:作为广告的广告 ID 而存在,用于归纳同类广告。
其中 type 表用于存放广告的类型数据,其字段如下所示。
分类编号:表示广告类型的 ID 号,为自动增长的主键。
分类名称:表示广告类型的描述,例如文字、图片等。
其中 adclass 表示广告显示的类型,使用 ads 表的 adid 表示可以表示广告在页面中呈现的归纳,其字段如下所示。
聚合分类编号:表示广告类型的 ID 号,为自动增长的主键。
分类名称:表示广告存放类型的描述,例如头部广告、底部广告。
对于广告模块来说,其数据表比较多,为了方便维护和扩展,就必须要让一些需要长期修改的字段进行外部连接。
这样就能够极大的加强数据库中数据的健壮性和低耦合性。
注意:良好的数据库设计可能需要同时创建多个表进行一个功能的描述,虽然在数据库设计时这样的方法比较麻烦,但是在维护和开发中,这样会带来很多的便利。
24.3.2 数据库表的创建 创建表可以通过 SQL Server Management Studio 视图进行创建也可以通过 SQL Server ManagementStudio 查询使用 SQL 语句进行创建。
广告模块需要创建多个表进行广告的描述,在创建表之前首先需要创建一个 ad 数据库,数据库创建完成后就能够在数据库中创建表了。
这里首先需要创建一个 ads 表,该表用于存储广告模块中的广告信息,如图 24-4 所示。
图 24-4 ads 表结构 正如图 23-4 所示,其中的字段意义如下所示。
id:表示广告的 ID 号,为自动增长的主键。
time:用于标识广告的开始时间 endtime:用于标识广告的结束时间,当时间到达该时间后,广告将不再被呈现。
name:用于标识广告的名称,这个名称在后台管理中可以进行辨认。
content:作为广告的内容而存在,管理员能够在该字段进行广告内容的编写。
infor:作为广告的备注而存在,管理员和管理员之间能够通过备注阅读该广告是什么广告。
picture:作为图片广告的图片连接。
url:作为外部连接的广告的地址,用户单击广告时能够跳转到相应的连接。
title:作为广告的标题,呈现在页面之中。
html: 可以为 JavaScript 代码, 作为广告呈现的 HTML 代码, 当广告为文字广告时,将呈现 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 IDENTITY11 NOT NULL time datetime NULL endtime datetime NULL name nvarchar50 COLLATE Chinese_PRC_CI_AS NULL content nvarcharmax COLLATE Chinese_PRC_CI_AS NULL infor nvarcharmax COLLATE Chinese_PRC_CI_AS NULL picture nvarchar500 COLLATE Chinese_PRC_CI_AS NULL url nvarchar500 COLLATE Chinese_PRC_CI_AS NULL title nvarchar500 COLLATE Chinese_PRC_CI_AS NULL html nvarcharmax COLLATE Chinese_PRC_CI_AS NULL type int NULL adid int NULL CONSTRAINT PK_ads 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 上述代码创建了一个 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 IDENTITY11 NOT NULL classname nvarchar50 COLLATE 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主要描述的是广告的类型,包括图片广告、文字广告等,是系统类型, 而 通常情况下是不会更改的。
adclass用于描述的是广告呈现时所需要的类型,例如头部广告和底部广告,这些广告通过 adclass 表进行筛选和整合。
adclass 表创建的 SQL 语句如下所示。
USE ad GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE dbo.adclass //创建 adclass 表 id int IDENTITY11 NOT NULL classname nchar10 COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT 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 表,使用该表能够将广告进行分类并呈现到相应的页面中,可以极大程度的避免同种类型的广告的呈现。
数据库的设计是非常重要的,也是在软件开发过程中一个非常重要的环节。
在广告模块中,必须先规定好,以及规划好广告模块的数据库设计,否则数据库的更改会带来很多的不便,例如如果将 adclass 表和 type 表整合在 ads 表中,如果要修改一个字段的值,例如修改图片类型的广告,有可能需要更改一个或多个数据,这样就非常的不方便,也会导致数据的混乱,所以数据库设计在任何模块甚至是系统的开发过程中都是非常重要的一个环节。
24.4 界面设计 对于广告模块的界面设计,并不像前面两个模块一样对界面的要求很高,也同样没有对用户体验进行要求。
但是广告模块的界面设计也并不是很简单,由于广告骄傲模块的呈现需要使用自定义控件进行HTML 代码的呈现,其界面设计反而要求开发人员有较熟练的 HTML 编码能力。
24.4.1 发布广告界面 发布广告界面作为管理员进行广告发布的页面,这个页面无需特别复杂的呈现,因为管理员最终期望的是能够快速的进行广告的发布,而不是花哨的界面,不过虽然这样,还是需要进行一定的用户体验的开发,发布广告界面代码见光盘中源代码第 24 章24-124-1Postad.aspx 所示。
其中的代码编写了广告信息的基本控件,管理员能够填写相应的广告信息用于广告的识别。
在广告发布中,还需要填写广告发布代码,以及图片连接用于高级的广告信息的呈现,示例代码见光盘中源代码第 24 章24-124-1Postad.aspx 所示。
在该页面中,使用了若干控件,这些控件都分别为广告中的数据输入进行准备,这些控件包括TextBox 文本框控件、日历控件和下拉菜单控件。
下拉菜单作为数据绑定控件用于数据绑定,提供给管理人员选择相应的广告分类。
24.4.2 发布广告页数据源配置 在发布广告页面中使用了数据源控件进行数据源的呈现。
在页面中,需要对数据源进行配置、筛选和生成才能够在发布页面中进行数据选择。
单击【配置数据源】按钮,选择【新建连接】选项,在新建连接窗口中进行数据源配置,如图 24-5 所示。
拖放一个数据源控件到页面,用于配置 adclass 数据连接和数据绑定,创建数据连接后,选择【将数据连接保存到 Web.config】选项,在项目里就可以使用该连接进行数据连接和绑定,如图 24-6 所示。
图 24-5 创建新数据连接 图 24-6 创建连接 创建连接后,就可以自动生成 SELECT 语句填充数据绑定控件,方便开发,如图 24-7 所示。
在完成 SELECT 语句的配置,就可以在相应的控件中使用数据源呈现的数据,例如在广告类型的下拉菜单中就可以使用数据源控件进行数据显示,如图 24-8 所示。
图 24-7 配置 select 语句 图 24-8 选择数据源呈现数据 在选择了数据源之后,就可以为另一个下拉菜单进行数据源配置,配置过程与上面的代码相同。
配置完成后,页面增加了数据源控件的代码和数据绑定控件代码,示例代码见光盘中源代码第 24 章24-124-1Postad.aspx 所示。
24.4.3 修改广告界面 修改广告界面同发布广告界面相同,但是修改广告界面在加载时必须接受一个传递的参数 id 来查询相应的广告信息,加载完成后就要填充到修改广告页面的控件中。
这也就是说,当页面加载时,加载之后的修改广告页面应该先获取广告信息提供给管理人员修改,修改广告界面代码见光盘中源代码第 24章24-124-1modi.aspx。
修改广告界面基本同添加广告界面相同,因为修改广告界面只需要进行广告的读取和修改即可,而广告中所需修改的字段同广告添加字段基本相同,所以在广告修改中只需要进行字段的显示和更新就能够实现广告修改页面的制作。
24.4.4 管理广告界面 管理广告界面可以使用现有的
ASP.NET 数据源控件和
ASP.NET 数据绑定控件实现,
ASP.NET 数据源控件和数据绑定控件能够快速的提供数据的更新、删除等功能。
由于这里使用的是自定义更新页面,就不能够使用数据源控件本身提供的数据更新功能,对于管理广告界面,只需要进行数据删除操作的支持即可,数据源示例代码见光盘中源代码第 24 章24-124-1Manage.aspx。
上述代码配置了数据源控件的高级模式以支持数据绑定控件中的更新、删除等操作,这里只需要使用删除操作就能够实现广告的管理, 单 更新操作无需使用自带的更新而使用自定义页面。
击【数据绑定】控件,在菜单中单击【功能模块】按钮,选择【添加新列】选项,在【选择字段类型】选项中选择【HyperLinkFiled】选项并填写 HyperLinkFiled 类型字段中提供的相应的数据列和数据显示策略,如图24-9 所示。
在数据绑定控件中能够使用【更新】连接进行页面跳转功能的实现,如图 23-10 所示,其中就包括了系统自带的删除操作和开发人员自定义的更新操作。
图 24-9 添加字段 图 24-10 数据绑定控件 Grid View 其中数据绑定控件选择了自动套用格式让管理界面看上去更加的友好,管理人员能够在该界面查看相应的广告信息并且删除相应的信息,如果管理人员要修改相应的数据,可以单击【修改】按钮在自定义页面中进行广告的修改。
24.4.5 分类管理界面 分类管理界面比较的简单,因为分类管理表中的字段非常的少,所以分类管理界面就能够使用现有的控件,如 Grid View 控件进行数据插入、删除和更新,在分类管理界面中,可以直接使用控件进行操作 , 这 样 就 能 够 在 多 个 页 面 进 行 复 杂 的 管 理 , 示 例 代 码 见 光 盘 中 源 代 码 第 24 章24-124-1ClassManage.aspx。
上述代码使用了 ListView 控件并自动套用格式,使管理员在操作的时候更加方便和简单,ListView控件能够直接进行数据的插入、更新和删除,更加简便的进行了数据管理,如图 24-11 所示。
与 24-11 分类管理页面效果 分类管理页面是广告模块中一个比较容易实现的模块,但在功能上却是非常重要的模块,因为在广告的分类管理是非常重要的,在自定义控件的开发过程中,可以通过广告的分类管理进行广告的筛选,以及整合,通过广告的分类可以在网站的不同页面进行不同的广告的呈现,以及不同广告的筛选,避免了广告的重复。
24.5 代码实现 虽然控件为开发提供了良好的支持,但是控件毕竟样式死板、界面布局有限,而且代码实现也有限,所以很多情况下都需要使用自定义页面进行应用程序的开发,使用控件虽然能够方便和快速的进行功能开发,但是却无法避免死板的界面布局和有限的功能。
24.5.1 广告添加功能 广告添加功能可以使用 ADO.NET 进行广告添加,ADO.NET 可以执行 INSERT 语句进行数据库中的数据插入,在广告添加页面,管理员在填写完相应.
上一篇:
【精品】第6章 应用程序状态管理
下一篇:
电话销售英文简历范文