湖南科技职业学院毕业设计
题目:企业网站的设计与实现
专业:计算机应用技术(外贸方向)
班级:计贸3092班
学号:
姓名:
指导教师:
湖南科技职业学院电子信息工程与技术系
二零一二年五月
湖南科技职业学院电子信息系毕业设计评语
题目:企业网站的设计与实现
专业:计算机应用技术(外贸方向)班级:计贸3092班姓名:学号:
目录
摘要........................................................................................................................................ I 关键词...................................................................................................................................... I 1研究背景 (1)
1.1 国内外研究现状及发展趋势 (1)
1.2、研究目的、意义和范围 (1)
2 课题分析 (3)
2.1 需求分析 (3)
2.2 企业网站的性能需求 (4)
2.3 https://www.wendangku.net/doc/cd17257828.html,和C#语言简介 (4)
2.4 .NET Framework概述 (6)
2.5 可行性分析 (7)
3 企业网站详细设计 (8)
3.1 企业网站功能描述 (8)
3.2企业网站功能模块划分 (9)
3.3数据库设计 (9)
3.4各主要窗体页的图形界面与代码介绍 (11)
3.5控件 (15)
3.6系统配置 (16)
3.6 遇到和解决的问题 (16)
结束语 (18)
致谢 (19)
参考文献 (20)
摘要
Internet的普及,网页逐渐融入人们的生活,现代企业也都意识到除了传统媒介网络是新的宣传企业形象的新平台。所以现在的企业都需要一个企业网站来吸引客户、促进公司员工交流、构建企业文化。
它担负着双层作用。一方面可以用来动态发布有关新产品或新开发项目,另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项,从而吸引顾客,扩大顾客群。本文论述的就是采用https://www.wendangku.net/doc/cd17257828.html,的开发环境开发动态的Web企业网站。同时涉及到数据库设计和iframe框架界面设计等问题,最后完成一个功能完善、界面清晰的动态企业网站。
1研究背景
1.1 国内外研究现状及发展趋势
传统的企业网站管理方式有两种:一种是静态HTML页面,更新信息时需要重新制作页面然后上传页面并修改相应链接,这种方式因为效率太低已不多用;另一种是基于ASP(Active Server Pages,动态服务器页面)和脚本语言,将动态网页和数据库结合,通过应用程序来处理信息,这是目前较为流行的做法。但是由于ASP技术本身的局限性使得系统还是有一些不可克服的缺陷。而https://www.wendangku.net/doc/cd17257828.html,不仅仅是下一版本的ASP,更是建立动态Web 应用程序而重新打造的全新技术,其主要特色包括:
●语言的独立性;
●简单的开发操作,分离程序代码和网页内容;
●提高了执行效率;
●简化部署与组态的操作;
●支持客户端类型;
●支持下一代的Web服务;
●增进适用性;
●增进延展性;
●更多的支持工具;
●更佳的安全机制;
●会话(Session)可以跨进程、跨机器。
1.2、研究目的、意义和范围
随着Internet的普及,越来越多的企业建立了自己的WWW网站,企业通过网站可以展示产品,发布最新动态信息,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。
该企业网站使用https://www.wendangku.net/doc/cd17257828.html,(C#语言)和https://www.wendangku.net/doc/cd17257828.html,技术开发, 实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。该企业网站具有一般企业网站的功能,主要包括前台新闻、产品查看区和后台管理区,可为公司各部门发布信息,为公司网
站提供信息发布与管理的服务。
该系统是基于B/S(Browser/Server,浏览器/客户端)模式实现,基于.NET平台架构开发设计,主要实现对公司新闻和产品的发布与管理功能,对新闻内容信息的浏览阅读等。
2 课题分析
2.1 需求分析
企业网站需要经常发布一些公司新闻和公司产品,获取客户的一些反馈,如何能有效地管理和发布信息的同时获取客户的建议呢?
通过对其它一些企业网站的调查发现,一般企业网站功能如下:
前台有各类公司信息,产品信息,和客户留言。
后台管理
●添加、删除和修改新闻
●添加、删除和修改产品
●添加、删除和修改留言
根据企业网站的实际需求,在首页中能显示最近发布的几条新闻、友情链接,同时在后台发布新闻、产品、链接时可以添加图片,前台能自动根据所显示的新闻标题或图片显示信息详情。
根据以上需求分析,该系统要实现的主要功能为:
前台显示部分
●按分类显示其下的所有信息
●显示最新的几条新闻
●显示最新的几个友情链接(可在管理中添加设置)
●显示产品
●新闻、产品详细信息浏览阅读
●客户在线留言提交
●客户留言显示
●后台管理人员登录区
后台管理部分
●登录验证
●添加、修改和删除新闻
●添加、修改和删除类型
●添加、修改和删除链接
●添加、修改和删除产品
●回复、添加、修改和删除留言
2.2 企业网站的性能需求
企业网站性能功能上应达到如下需求:
操作简单、界面友好: 完全控件式的页面布局,使得新闻的录入工作更简便,许多选项包括新闻分类、来源部门等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见企业网站管理的各个方面:信息录入、浏览、删除、修改,客户的留言及其回复等方面都大体实现,实现了网站对即时信息的管理要求。
即时可见:对信息的处理(包括录入、修改、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能。
系统运行应该快速、稳定、高效和可靠。
在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
2.3 https://www.wendangku.net/doc/cd17257828.html,和C#语言简介
https://www.wendangku.net/doc/cd17257828.html,是现在最新最热门的电子商务网站构建技术之一,与微软的SQL Server数据库集成有很好的表现。文章主要探讨一下https://www.wendangku.net/doc/cd17257828.html,和SQL Server的相关技术,及优化网站性能的技巧。
随着计算机网络的普及,计算机网络应用日趋丰富,网络体现出来的作用越来越大,截至目前,中国互联网上网人数已经超过1亿,人数仅次于美国。越来越多的人把上网作为自己获取信息的首要途径。利用Internet足不出户就可以获取所需要的信息,实现购物、炒股、旅游和学习等。目前在网上进行贸易的企业和个人日益增多,除了网上购物,还有网上商品销售、网上拍卖、网上货币支付等。面对这么大的市场,中国的公司和企业要更好的展示企业形象,宣传企业,推介产品,就要建立电子商务网站,开展电子商务活动。利用网站可以提高知名度,带来无限商机。
https://www.wendangku.net/doc/cd17257828.html,简介
https://www.wendangku.net/doc/cd17257828.html, 是微软公司推出的一种Internet编程技术,它采用效率较高的、面向对象的方法来创建动态Web应用程序。在原来的ASP技术中,服务器端代码和客户端HTML混合在一起,常常导致页面的代码冗长而复杂,程序的逻辑难以理解。https://www.wendangku.net/doc/cd17257828.html,是一种独立
于浏览器的编程模型,可以在最新版本的IE、NetscapeNavigator以及诸如Opera等被广泛使用的浏览器上运行。
https://www.wendangku.net/doc/cd17257828.html,是一种建立在通用语言上的程序构架。一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP 即时解释程序速度上要快很多。微软公司发布了4种与 .NET 兼容的语言(包括 Visual Basic .NET、C#.NET、Visual C++.NET和 JScript .NET.)创作应用程序。
2.常用到的https://www.wendangku.net/doc/cd17257828.html,内置对象
Application对象:对整个https://www.wendangku.net/doc/cd17257828.html,执行环境而言,一个虚拟目录下的所有https://www.wendangku.net/doc/cd17257828.html, 程序构成了一个Web应用程序。在多任务执行的情况下,来自四面八方的众多用户可能执行同一个Web应用程序,这变依赖Application对象。常用到的场合:聊天室、网页计数器等。
Request对象:获取从客户浏览器传给服务器端的数据,如接收来自表单的数据。
Response对象:Request对象与Response对象就像一般程序语言里的Input及Output 命令,若要让服务器端的https://www.wendangku.net/doc/cd17257828.html,程序能够接收来自客户端的信息,须用Request对象;若想将服务器端的信息传递给客户端,须用Response对象。
Session对象:Session对象和Application对象极为类似,但Session对象的信息只适用于同一位用户,换句话说,一个Session对象只属于一位用户。常用到的场合:虚拟购物车、用户登陆网站时用户名的临时存储等。
3、常用到的https://www.wendangku.net/doc/cd17257828.html,数据绑定控件
GridView 控件:GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。值得注意的是:GridView 控件是 https://www.wendangku.net/doc/cd17257828.html, 的早期版本中提供的 DataGrid 控件的后继控件。除了添加利用数据源控件功能的新功能,GridView 控件还实现了某些改进,例如,定义多个主键字段的功能、使用绑定字段和模板的改进用户界面自定义以及用于处理或取消事件的新模型。有关更多信息,请参见GridView Web 服务器控件和比较 GridView 和 DataGrid Web 服务器控件。
DetailsView 控件:DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。
FormView 控件:FormView 控件与 DetailsView 控件类似,它一次呈现数据源中的
一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与 DetailsView 控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行。而 FormView 控件则不指定用于显示记录的预定义布局。实际上,您将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达式。
Repeater 控件:Repeater 控件使用数据源返回的一组记录呈现只读列表。与FormView 控件类似,Repeater 控件不指定内置布局。您可以使用模板创建 Repeater 控件的布局。
DataList 控件:DataList 控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。您可以对 DataList 控件进行配置,使用户能够编辑或删除表中的记录。(DataList 控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然。
TreeView控件:TreeVies控件常用于树形层次关系的数据绑定,比如显示无限级分类和显示某个文件下的所有文件及文件夹,对于这些带有树形层次关系的数据的显示用TreeView控件是一个比较不错的选择。TreeView控件支持数据绑定也支持以编程的方式动态添加节点。在TreeView控件中每个节点都是一个TreeNode对象,我们可以通过TreeNode对象的Nodes属性来添加其它的TreeNode对象,使之成为这个TreeNode对象的子节点。TreeView控件可以静态的预定义其结构,支持的数据源控件有XmlDataSource 和SiteMapDataSource ,所以我们可以动态的填充TreeView的节点。在实现TreeView的动态填充节点后,我们可以用iframe框架来实现导航。
2.4 .NET Framework概述
.NET Framework 是用于 .NET 平台的编程模型,其关键组件是公共语言运行库(CLR,Common Language Runtime)和 .NET Framework 类库(包括 https://www.wendangku.net/doc/cd17257828.html,、https://www.wendangku.net/doc/cd17257828.html, 和 Windows 窗体),它提供了托管执行环境、简化的开发和部署以及与各种编程语言的集成,是支持生成和运行下一代应用程序和 XML Web services 的内部 Windows 组件。
.NET Framework 旨在实现下列目标:
提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是
在本地执行但在 Internet 上分布,或者是在远程执行的;
提供一个将软件部署和版本控制冲突最小化的代码执行环境;
提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境;
提供一个可消除脚本环境或解释环境的性能问题的代码执行环境;
使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致;
按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成。
公共语言运行库是 .NET Framework 的基础,可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。
.NET Framework 类库是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI) 应用程序,也包括基于https://www.wendangku.net/doc/cd17257828.html, 所提供的最新创建的应用程序(如Web 窗体和XML Web Services)。
2.5 可行性分析
企业网站属于数据信息发布与管理系统类。用户对功能上的要求不是很复杂,而且有强大工具和框架环境支持。企业网站后台管理时对新闻做了详细的分类,前台以分类形式显示新闻、产品的详细信息,满足了人们浏览网站时分类查看信息的要求,企业网站发布后台由管理员进行管理维护,保证了网站的安全性,所以本网站是十分可行的。
3 企业网站详细设计
3.1 企业网站功能描述
企业网站的功能主要包括网站导航类别管理、新闻与产品信息发布管理、友情链接、客户评论和后台管理等模块。具体描述如下:
1.导航类别管理:
(1)类别的录入,包括类别编号和类别名称等信息;
(2)类别的修改;
(3)类别的删除;
2.新闻发布管理:
(1)基本新闻信息的录入,包括新闻标题、新闻作者、新闻内容与图片
(2)基本新闻信息的修改;
(3)基本新闻信息的删除;
3.产品发布管理:
(1)产品信息的录入,包括产品名称、产品图片、产品描述及其所属系列
(2) 产品信息的修改;
(3) 产品信息的删除;
4. 友情链接模块:
(1)删除链接;
(2)修改链接;
(3)添加链接;
(4)查看链接;
5.留言管理模块:
(1)客户留言;
(2)管理员可以删除和回复留言。
6.站内搜索模块:
(1)站内新闻、产品信息搜索
3.2企业网站功能模块划分
图1 企业网站功能模块关系
3.3数据库设计
该企业网站使用SQL作为应用程序的数据库,建立了有7张数据表: admin表用于存储后台管理者的账户信息, cp_type表用于存储产品分类信息,tb_cp表用于存储产品信息,cp_type表与tb_cp表相关联。guest表用于存储客户在线留言信息, tb_link表用于存储友情链接信息, tb_news表用于存储新闻信息,tb_type表用于存储导航类别信息。
表3-3 admin管理员账户表
表3-4 cp_type产品分类表
tb_cp表结构如表3-5所示:
表3-5 tb_cp产品信息表表cp_type与表tb_cp建立的查询如图2所示:
图2 数据查询图
表3-6 guest在线留言表表结构如表3-7所示:
表3-7 tb_link友情链接表
表3-8 tb_news新闻内容表
表3-9 tb_type新闻内容表
3.4各主要窗体页的图形界面与代码介绍
首页:主要功能是显示最新的8条新闻,友情链接、设为首页、加入收藏、站内搜索等,如图3所示.
图3 首页图
采用DataLis实现最新新闻显示,关键代码:SelectCommand=" TOP”8” SELECT * FROM
[tb_news] ORDER BY [submitdate] DESC, [id] DESC">。
采用Repeater实现最新友情链接显示,
搜索关键代码:
//声明变量等于TextBox1的值。
string Key = this.TextBox1.Text;
//转到search页面并且把TextBox1的值传过去,在search页面的关键代码。
Response.Redirect("search.aspx?Key=" + Key);
//接受首页参数
string Key = Request.QueryString["Key"].ToString();
//连接数据库
SqlConnection conn = new SqlConnection("Server=OEM-B6E3FD40292;Initial Catalog=cacheeproject;User ID=sa");
//打开数据库
conn.Open();
//模糊查找
SqlDataAdapter sda = new SqlDataAdapter("select * from 表名 where 列名
like %valueName%", conn);
//声明一个DataTable变量叫Data
DataTable Data = new DataTable();
//填充这个Data
sda.Fill(Data);
//关闭数据库
conn.Close();
this.GridView1.DataSource = Data;
this.GridView1.DataBind();
网站管理员页面:保证了网站内容管理的安全性,并不是所有用户都可以添加新闻和产品,管理人员在登陆页面如图4,登陆成功后才可以进行网站信息管理如图5,网站管理员可以添加,修改,删除新闻、产品和管理员账号。
后台登陆关键代码:
https://www.wendangku.net/doc/cd17257828.html,mandText="select count(*) from admin where adminName
='"+username+"'and adminPas='"+userpass+"';
if(Convert.ToInt32(cmd.ExecuteScalar())>0)
{
Response.Write("");
Response.Redirect("Default.aspx");
}
else
{
Response.Write("");
}
图4 后台登陆页面图
图5 后台页面图
在后台添加数据的关键代码:
https://www.wendangku.net/doc/cd17257828.html,mandText = "insert into 表名(title,type_id, content)values('" + title + "','" + image + "','" + content1 + "')";
if (Convert.ToInt32(cmd.ExecuteNonQuery()) > 0)
{
Label2.Text="添加新闻成功!";
}
else
{
Label2.Text = "添加新闻失败!";
}
在线留言页面如图4所示,关键代码如下所示。
//变量定义
string user_name, sex,, tel, email1, content1;
user_name = userName.Text.Trim().ToString();
if (sex1.Checked)
{
sex = "男";
}
else
{
sex = "女";
}
//传值
tel = tel.Text.Trim().ToString();
email1 = email.Text.Trim().ToString();
content1 = content.Text.Trim().ToString();
//打开数据库连接
conn.Open();
//创建SqlCommand对象
SqlCommand cmd = new SqlCommand();
//设置SqlCommand对象的连接属性
cmd.Connection = conn;
https://www.wendangku.net/doc/cd17257828.html,mandTimeout = 15;
//设置命令类型为SQL
https://www.wendangku.net/doc/cd17257828.html,mandType = CommandType.Text;
//设置命令文本,即SQL命令语句
https://www.wendangku.net/doc/cd17257828.html,mandText = "INSERT INTO guest(userName, sex, url, tel, email, [content]) VALUES ('" + user_name + "','" + sex + "', '" + tel + "','" + email1 + "', '" + content1 + "')";
//执行SQL语句
if (cmd.ExecuteNonQuery() > 0)
{
Response.Write("");
Response.Redirect("../default.aspx");
}
图6 在线留言页面
3.5控件
该网站中创建了两个Web用户控件foot.ascx和top.ascx,在所有页面里都进行了引用,调用方式为:
<%@Register Src="~/top.ascx" TagName="top" TagPrefix="uc1"%>
<%@Register Src="~/foot.ascx" TagName="foot" TagPrefix="uc1"%>
@ Register指令注册用户控件,同时把属性Tag Name(标签名)和Tag Prefix(标签前缀)添加到@ Register指令中,Src 属性表示该用户控件相对于父页面的相对地址。用户控件也是服务器端控件,还必须在用户控件代码中添加Runat = server属性,用法如下:
其中top. ascx用户控件作用是显示企业log和导航,foot.ascx用户控件作用是显
示底部相关网站地址和友情链接等。
用户控件是非常易于代码重用的,可以把许多相关功能和用户界面封装在一个用户控件中,然后在任何需要该功能的地方重用此控件。
3.6系统配置
Web.config文件配置
https://www.wendangku.net/doc/cd17257828.html,应用程序的配置功能放在Web. Con fig文件中,它包含每一个具体Web应用程序的配置信息。在程序运行时,https://www.wendangku.net/doc/cd17257828.html,使用分层虚拟目录结构的Web .con fig文件提供的配置信息为每个惟一的URL资源计算一组配置设置,然后缓存结果配置设置,以供所有页面对资源的请求使用。
Web .con fig文件对于访问站点的用户来说是不可见的,而且也是不可访问的,它基于XML,每个配置文件都包含XML标记和子标记的嵌套层次结构。
企业网站系统的Web .con fig文件中的配置:
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\zhubaoqiye.mdf;Integrate d Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient"/> 通过键/值对key 和value配置数据库连接的相关信息,将SQL数据库zhubaoqiye.mdf 文件用相对路径的方式设置为字符串"MdbPath"在程序代码中进行连接引用。 3.6 遇到和解决的问题 由于用.NET时间不长,设计的逻辑性并不是很好,在应用面向对象知识的同时缺乏一定的灵活性,而且在有些地方,原来很简单的我却苦思冥想,很多基础的理论东西我还没有搞清楚。下面是我设计时遇到的部分问题描述: A、在有验证控件时,服务端控件都能激发同样事件,所以有时候必须用不同类型控 件,redirect不行,刷新验证码也不行,如图7所示。 图7 验证码不显示图