1、 本 科 毕 业 设 计 第 35页 共 35 页(此文档为word格式,下载后您可任意编辑修改!)1 引言随着时代的发展,网站建设越来越接近于一门艺术而不仅仅是一项技术。网页的艺术设计,日益被网站建设者所注重。在目前国内对此领域研究甚少的情况下,作者将网页艺术设计与其他艺术设计形式进行比较,尝试从网页艺术设计的内容、原则和特点等三个方面,对这个新的艺术设计领域进行初步的归纳总结和理论探讨。作者认为网页艺术设计是艺术与技术的高度统一,指出网页艺术设计包含视听元素与版式设计两项内容;以主题鲜明、形式与内容相统一、强调整体为设计原则;具有交互性与持续性、多维性、综合性、版式的不可控性、艺术与技术结
2、合的紧密性等五个特点。在明确了网页艺术设计与网站主题的关系的基础上,提出了“美”和“功能”都是为了更好地表达网站主题这一观点。网页艺术设计是伴随着计算机互联网络的产生而形成的视听设计新课题,是网页设计者以所处时代所能获取的技术和艺术经验为基础,依照设计目的和要求自觉地对网页的构成元素进行艺术规划的创造性思维活动,必然要成为设计艺术的重要组成部分,并随着网络技术的发展而发展。表面上看,它不过是关于网页版式编排的技巧与方法,而实际上,它不仅是一种技能,更是艺术与技术的高度统一。网站数量的激增,意味着网络深远的影响力已经越来越多地为人们所共识,网络已经实实在在地为人们带来了财富和知名度。于是,很多单
3、位和个人都开始准备建立自己的网站。不论出于什么目的,所有人都希望自己建立的网站信息量丰富,功能尽可能强大。自己选择的这个个人的网站设计,首先,能丰富自己的文化知识,在建设网站的过程中能学到实际的网络知识;其次,对与即将毕业的学生,个人网站是一个很好的网络身份证明,可以让别人对自己有更好的了解。最后,有这么一个自己设计和制作的网站,可以证明用有了一定的计算机水平,这样比简单空白的文本式建立要更有说服力随着互联网技术的日趋成熟,各种信息化实体不断应运而生并得到了快速发展,从单一的模式到现在复杂的服务端、客户端的交互,不得不令人惊叹和喜悦!人们在充分享受互联网带来的各种便利时,一种新型的网络实体也日
4、渐地出现在人们的视野,那就是当前网络界较为流行的实体之一博客(BLOG),当然这绝不仅仅是一种单向的发布系统,它有着极其出色的交流功能,在以往的几种网络交流方式中,BBS过于公共化,而Email和即时通信工具IM则有很明显的私人性质,BLOG的出现则将公共性和私人性很好地结合起来。它代表着一个新型媒体时代的到来,而且作为专业领域的知识传播模式,它有可能成为该领域最具影响力的”人物”之一;另一方面,它也将推动各种“精神共同体”的形成,打破传统媒体和传统交往时间和空间上的限制、社会精英独霸话语权的局面,且极大地增加个人的社会资本,博客作为一种快捷方便的信息交换方式,将和那些不久还会出现的更多的有效
5、的技术手段一起,成为构建新社会的强劲动力。因此,基于BLOG的多种优势和未来的发展趋势,所以有必要设计这样的一个BLOG系统。虽然目前国内众多BLOG系统已经诞生,并得到充分的发展,大到多用户、功能强大、复杂性的系统,小到网络日记本形式的“BLOG”,通过对该系统的开发,以此加深对BLOG的认识、研究简单BLOG系统开发途径和应用方法,并为以后设计复杂BLOG系统打下坚实的基础。本次设计所开发的BLOG系统是以VS2003 + SQL sever 2000为编程环境,以.NET框架中的C#.NET来实现其制作和开发过程(IE6.0)。在目前多数的BLOG系统中,.NET原型的系统并不是很多,而
6、多以ASP等为主流,这在很大程度上使个人的设计减少了一定的参考性,此外虽然.NET的发展时间并不是很久,但.NET的发展趋势也是显而易见的,当然这就要谈到.NET的优势所在,这里不在追述。通过对BLOG系统进行可行性分析、需求分析和设计逐步将一个BLOG系统的开发过程呈现出来,当然也没有刻意追求专业性和商品化软件的华丽包装,而是本着简单、实用、性能优化的原则。2 开发工具本章主要介绍个人博客网站所需要的开发工具进行详细介绍。2.1 C#简介C#是一种最新的、面向对象的编程语言。它使程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的
7、工具和服务来最大程度地开发利用计算与通讯领域。最重要的是,C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。C#与C/C+具有极大的相似性,因为C#继承与C+,熟悉类似语言的开发者可以很快的转向C#1。C#是一种完全的、纯粹的面向对象语言,不但支持封装、继承、多态性等面向对象技术的关键特征,而且增加了特性(Attribute)、属性(Property)、委托(Delegation)、可容类型(Nullable Type)等强大功能。C#也是一种传统的面向对象语言,只支持标准的单一继承,避免了C+中因多继承而带来的复杂性。C#是可用于创建要运行在.NET CLR上的应用程
8、序的语言之一,它从C和C+语言演化而来,是Microsoft专门为使用.NET平台而创建的。因为C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语言的许多优点,并解决了它们的问题。使用C#开发应用程序比使用C+简单,因为其语法比较简单2。但是,C#是一种强大的语言,在C+中能完成的任务利用C#也能完成。如前所述,C#中与C+比较高级的功能等价的功能(例如直接访问和处理系统内存),只能在标记为“不安全”的代码中使用。这个高级编程技术是非常危险的(正如它的名称),因为它可能覆盖系统中重要的内存块,导致严重的后果。因此,本书不讨论这个问题。C#代码常常比C+略长一些。这是因为C#是一种类型安全
9、的语言(与C+不同)。在外行人看来,这表示一旦为某些数据指定了类型,就不能转换为另一个不相关的类型。所以,在类型之间转换时,必须遵守严格的规则。执行相同的任务时,用C#编写的代码通常比C+长3。但C#代码更健壮,调试也比较简单,.NET总是可以随时跟踪数据的类型。在C#中,不能完成诸如“把4字节的内存放在这个数据中,使之有10个字节长,并把它解释为X”等的任务,但这并不是一件坏事。C#只是.NET开发的一种语言,但在我看来,这是最好的一种语言。C#的优点是,它是惟一为.NET Framework设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。要使语言如VB.NET尽可能类似
10、于其以前的语言,且仍遵循CLR,就不能完全支持.NET代码库的某些功能。但C#能使用.NET Framework代码库提供的每种功能。.NET的最新版本还对C#语言进行了几处改进,这是为了满足开发人员的要求,使之更强大。2.2 Asp.Net技术为开发人员提供创建企业级 Web 应用程序所需的服务。Asp.Net提供许多Web开发的强大优势。Asp.Net是一个全新的Web开发框架,“Asp.Net 是一种建立在通用语言上的程序构架,是统一的 Web 开发平台,它开包括了许多新的特性:Asp.Net作为.NET Framework的一部分,当编写Asp.Net应用程序的代码时,可以访问.NET
11、 Framework 中的类;可以使用与公共语言运行库(CLR)兼容的任何语言来编写应用程序的代码;Asp.Net提供了易于编写,结构更清晰的代码,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要4。Asp.Net具有一些新性能:“执行效率的提高,世界级的工具支持,强大性和适应性,高效可管理性,自定义性,和可扩展性,安全性”。 Asp.Net是基于通用语言的编译运行的程序,它可以在Web应用软件开发者的几乎全部的平台上运行5。你可以选择一种适合你自己的语言来编写程序,或者把你的程序用很多种语言来写,现在已经支持的有C#,VB,Jscript。将来,这样的多种程序语言协同工作
12、的能力保护您现在的基于COM+开发的程序,能够完整的移植Asp.Net。在ASP.NET 不仅仅是Active Server Page (ASP) 的下一版本;它是统一的 Web 开发平台,用来提供开发人员生成企业级 Web 应用程序所需的服务。ASP.NET 的语法在很大程度上与 AS兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序6。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强该 ASP 应用程序的功能。 ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic
13、.NET、C# 和 JScript .NET.)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET 框架。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 ASP.NET技术的简洁的设计和实施,完全面向对象、具有平台无关性且安全可靠、主要面向互联网的所有特点。此外,强大的可伸缩性和多种开发工具的支持,语言灵活,也让其具有强大的生命力7。ASP.NET以其良好的结构及扩展性、简易性、可用性、可缩放性、可管理性、高性能的执行效率、强大的工具和平台支持和良好的安全性等特点成为目前最流行的Web开发技术之一。而采用ASP.NET语言的
14、网络应用开发框架,目前也已得到广泛的应用,其优势主要是为搭建具有可伸缩性、灵活性、易维护性的业务系统提供了良好的机制。2.3 Microsoft Visual Studio 2008 简介 Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,是对Visual Studio 2005一次及时、全面的升级。Visual Studio 2008 是一个集成的开发工具集,他最基本的用途就是进行代码的编写和调试。在Visual Studio 2008 中的应用程序主要分两个层次,语言分类,有C#语言,VC+,VB.NET等开发语言
15、。“Visual Studio 2008 将一些常用的应用程序的创建过程以应用程序向导的方式给出,自动生成公共代码,大大提高了效率”8。 Visual Studio 2008 为开发人员提供了相关的工具和框架支持,帮助创建支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET 应用程序服务和 Microsoft 平台。为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,例如语言集成的查
16、询 (LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。 VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用程序。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。如果您是软件开发人员,您一定会对下一代Visual
17、 Studio 2008的外壳感兴趣,一个好的开发环境可以让开发工作事半功倍,微软公布了最新版Visual Studio Shell的预览,一起来看一下:我们可以发现新版VS的开发界面分为两个版本:整合模式和孤立模式,分别对基于语言的开发和基于特别工具的开发作了优化。并将Iron Python引入VisualStudio,该界面将在Visual Studio 2008的Beta2版本中出现。微软开发者部门的副总裁索玛塞加在其博客中表示,尽管Visual Studio 2008软件开发平台是2008年2月份一次产品开发活动的一部分,微软计划于2007年年底开始销售这款产品。 据InfoWorld
18、网站报道称,本周早些时候,微软宣布将在于2008年2月27日举办的一次产品发布会上发布Visual Studio 2008、Windows Server 2008、SQL Server 2008。微软曾表示计划在今年晚些时候发售Visual Studio 2008。索玛塞加表示,微软仍然计划在2007年发布这款产品。他说,尽管我们将在明年2月份集中发布数款产品,但根据客户的反馈,我们仍然计划在今年年底时发售Visual Studio 2008和.Net FX 3.5。微软的一名代表详细阐述了相关计划。这名代表在一封电子邮件中说,微软希望在今年年底前发售Visual Studio 2008。客户
19、的反馈将最终决定产品的发售时间。2月份的发布会是一个机会,将向客户、合作伙伴、社区展示微软的创新成果。 微软在今年的合作伙伴会议上还宣布,其Software Licensing and Protection Services产品将于今年10月份发布。它包含帮助ISV在内的开发人员保护知识产权、开发和许可产品版本、跟踪产品和特性使用、与后端过程整合的工具。2.4 SQL Server数据库随着信息技术的发展,计算机处理数据的方式也发生着变化,SQL Server是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的
20、请求与服务器的处理结果9。众所周知,SQL Server能够满足今天的商业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。除这些SQL Server的优点外,SQLServer还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,S
21、QLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力。SQL(Structured Query Language)意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。“SQL Server 2005是一种基于客户机/服务器的关系型数据库管理系统,具备通常数据库管理系统最基本的功能10。”用来对存放在计算机中的数据库进行组织、管理和检索,它
22、使用Transact-SQL语言在服务器和客户机之间传送请求。“ SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理”11。SQL是一种介于关系代数与关系演算之间的结构化查询语言,是一个综合的、通用的、功能极强的关系数据库语言。SQL利用表、索引、关键字、行和列等来确定存储位置,它具有数据定义、数据操纵、数据管理、存取保护以及处理控制等多种功能。它为组织中的用户提供了一个更安全可靠和更高效的平台,用于企业数据和BI应用12。SQL Server 2005为IT专家和信息工作者带来了强大的,熟悉的工具,同时降低了在从移动设备到企业数据
23、系统的多平台上创建,部署,管理和使用企业数据和分析应用程序的复杂性。2.5 .NET技术简介Microsoft .net是Microsoft的xml web服务平台。.net包含了建立和运行基于xml的软件所需要的全部部件。Microsoft .net解决了下面这些当今软件开发中的一些核心问题:a) 互操作性(interoperability)、集成性(integration)和应用程序的可扩展性(extensibility)太难实现而且代价很高。Microsoft .net依靠xml(一个由world wide web consortium(w3c)管理的开放标准)消除了数据共享和软件集成的
24、障碍。b)无数具有相当竞争力的私有软件技术使得软件的集成变得非常复杂。而Microsoft .net建立在一个开放的标准上,它包含了所有编程语言。c)当终端用户使用软件时,他们总觉得不够简便。有时甚至感到很沮丧,因为他们无法在程序之间方便地共享数据或是无法对能访问的数据进行操作13。xml使数据交换变得容易了,并且.net软件可以使得用户只要得到数据就能对它们进行操作。d)终端用户们在使用web的时候,无法对自己的个人信息和数据进行控制,这导致了个人隐私和安全泄漏问题。而Microsoft .net提供了一套服务,使用户可以管理他们的个人信息,并且控制对这些信息的访问。e).com公司和web
25、站点开发者们很难为用户们提供足够的有价值的数据,至少有一部分原因是由于他们的应用程序和服务无法很好地和其他程序和服务合作,只是一个不和外界连接的信息孤岛14。而Microsoft .net的设计宗旨就是为了使来自于多个站点和公司的数据或服务能够整合起来。如同ms-dos和windows一样,.net将大大改变我们的计算领域。ms-dos使得个人电脑在商业和家庭中广为接受;windows增强了用户的图形界面,使其成为首选的与软件交互方式,最终使得图形界面成为个人电脑的主流。而.net则要把xml web服务变成日后的主流计算模式。xml web服务是建立在xml数据交换基础上的软件模型,它帮助应
26、用程序、服务和设备一起工作。用xml进行共享的数据,彼此之间独立,但同时又能够松耦合地连接到一个执行某特定任务的合作组。Microsoft .NET为程序员、商业领导、IT部门以及消费者带来了很多好处。相对来说,程序员是比较缺乏的,雇用的费用也很高。然而Microsoft .NET使编程工作变得更加容易,开发投资的回报率也趋最大化15。开发者们可以创建能重用的XML Web服务,而不再是一个单一的程序;这些Web服务易于编程和调试,彼此之间相互独立,通过XML message通讯及合作。所以对某一个服务的修改不会影响到其他的服务。由于XML Web服务可以被很多.NET体验共同使用,所以对一个
27、服务模块的有效更新,也即更新了所有使用这个模块的.NET体验。任何编程语言都可以用来编写XML Web服务(如:C、C+、Visual Basic、COBOL、Perl、Python和Java等),所以你的程序员可以选择他们最熟悉的语言来编程,这大大提高了开发效率。更值得一体的是,他们并没有因使用了不同的语言而失去服务或跨组件的调试能力。总之,Microsoft .NET是Microsoft的XML Web服务的平台。这是下一代的Internet计算模型,各个XML Web服务之间彼此是松耦合的,通过XML进行通讯,协同完成某一特定的任务。Microsoft .NET战略提供了一个用以建立新.
28、NET体验的软件平台、一个编程模型、用以建立和整合XML Web服务的工具以及一套可编程的Web接口。3 需求分析进行应用网站系统的研发,首先必须了解与分析用户的需求。需求分析是整个设计过程的基础,它可以直接影响网站系统的开发速度和质量。本章主要对个人博客网站的业务需求、功能需求、性能需求、软件需求进行详细分析。3.1 业务需求分析本节以用例图形式分别对系统用户管理、日志管理和相册管理和留言管理四个方面进行业务需求分析。3.1.1 系统用户管理用例图系统管理员可以通过用户添加操作添加普通管理员,也可以通过用户管理操作删除添加的普通管理员的信息。系统用户管理用例图如图3.1所示。 添加普通管理员
29、远员删除普通管理员图3.1 系统用户管理用例图3.1.2 日志管理用例图系统管理员可以在登录网站后台系统后发表日志,包括添加、修改、删除等基本操作。普通用户在前台展示模块中可以浏览管理员发布日志信息。日志管理用例图如图3.2所示。浏览日志添加日志修改日志删除日志管理员普通用户图3.2 日志管理用例图3.1.3 相册管理用例图管理员可以在后台进行相册管理,包括添加、修改、删除等基本操作。普通用户可以在前台浏览管理员发布的相册信息。相册管理用例图如图3.3所示。浏览相册添加相册修改相册 普通用户删除相册 管理员 图3.3 相册管理用例图3.1.4 留言管理用例图用户可以发表留言和查看留言内容,管理
30、员可以查看并删除所有用户留言。留言管理用例图如图3.4所示。 发表留言 查看留言 普通用户 删除留言 管理员图3.4 留言管理用例图3.2 功能需求分析个人博客网站由以下多个子模块组成:用户登录、用户注册、页头和页尾的处理模块(用户控件)、管理员后台管理(包括BLOG配置、分类管理、站点文件在线编辑与管理、会员管理、BLOG表情管理、日志中自动识别的关键字管理、友情链接管理、友情链接验证、用户收藏的URL、服务器的相关信息、骂人词语的管理等)、BLOG编辑模块、友情链接提交与显示模块、BLOG发表模块、RSS订阅模块(1.0&2.0)、BLOG浏览模块、独立IP访问统计分析模块、验证码实现模块
31、、BLOG评论列表模块、BLOG首页处理模块、注册用户URL收藏模块(提交、显示)、会员信息显示模块(单用户、多用户、信息编辑)、站点信息搜索模块(Google站内、系统本身)、文件上传模块、公用导航模块(用户控件)、公用类模块、全局变量和在线用户的记录、开启站点模块、工具模块等,各模块的详细功能如下所述:3.2.1 页面头部处理模块该模块主要实现的是从数据库中读出BLOG分类信息列表(分类由管理员在后台设定),统计用户访问信息(IP、时间、来源URL、浏览器、操作系统、屏幕宽度、语言、COOKIE、入口地址,搜索关键字等),同时获得全局使用的总访问人数,当然这些操作也可以在Global里来完
32、成,效果是一样的,因为我的每个页面都包含了页面头部,但是当有不包含页面头部时将不会统计分析,只需要把相关实现写到Global里即可(有时间再看看)。在统计访问者的信息时,实现了防止刷新的功能,同一个IP,一定时间内将不会重新统计,同时如果支持穿过代理获得IP的话,统计的是真实的IP,而不是代理的IP。3.2.2 页尾处理模块该部分主要解决的是系统的版权信息,页面执行时间的显示等,比较简单。3.2.3 管理员后台管理模块该模块涉及的东西比较多,用于实现对系统数据和相关信息的管理和配置等。具体描述如下:BLOG系统的配置:主要是完成站点标题的配置,站点URL和首页每页显示的日志数,这些操作不是在数
33、据库里来完成的,也没有这个必要因为取一个数,就要查询数据库,我放到了站点配置文件里Web.config里,后台采用相关方法,修改该XML类型的文档,从而达到修改站点配置的目的,不过每次使用该选项时,系统将会从新执行。同时也支持修改用户上传文件大小和时间的限制、数据库连接配置等设置,也可配置管理员的邮件地址,以便作为批处理发送系统邮件的帐户。站点文件管理:主要实现的是BLOG系统文件的在线管理(增加、删除、修改、移动、重命名等,对目录的操作同样),可查看附件(文件信息、上传时间、文件类型等),不同文件显示不同图标,目录也可显示目录占用空间大小,作为管理用户上传的附件来说还是有必要的且比较实用,唯
34、一不足的是,当系统文件较多时,性能会有所影响,便历目录需要时间。当然这个可不是木马,它的执行需要系统给予一定的权限。友情链接管理:主要实现的是对用户提交的链接进行管理,包括链接名称、URL图片(相对路径、绝对路径)、是否首页显示,同时链接图片可预览,和上面不同的是,此处操作支持批处理,主要是首页显示,管理员可选中头部的首页显示,从而将下面所有的CheckBox选中,再执行批处理设定,当然,可对特定选择的多条记录同样处理,此外增加了省略显示的功能,就是当某条记录的长度过长时,截取了该记录的前面固定长度的串,加”显示出来。同时在增加友情链接的时,可增加其链接名称、URL、图片、排序等信息,当然也严
35、格检查了提交的信息。另一方面与上同,分页、确认删除 服务器的相关信息:这是默认显示的,在登陆后台时,主要显示当前服务器的相关信息,如服务器时间、域名、IP、端口、服务器IIS版本、脚本解释引擎、服务器空间占用情况、站点的物理路径、服务器的名称、脚本超时、服务器开机后执行的时间、服务器CPU的数量、CPU的类型、服务器操作系统、.NET Framework版本、USER_AGENT信息、常用组件支持情况、自定义组件查询、1000万次循环检测执行时间等,能给管理员对服务器的一些情况有一点了解。3.2.4 日志管理模块该模块主要完成了BLOG日志提交的功能,也是BLOG系统中比较重要的一个环节了,同
36、时该部分处理的也比较复杂,在这里我采用了两种模式(UBB、HTML)在线进行编辑、提交,用户可根据自己的需要进行选择互换使用,并查看帮助信息,当然这样做并不是多余的,因为我发现有的时候纯粹的使用单一的模式有一定的不方便。在这两种模式下,都可以插入表情图片、识别关键字、识别超级链接、禁止UBB代码、禁止表情、禁止图片等操作,在UBB编辑器方面,完成了以下的功能支持: 加粗字体、斜体字、下划线字体、删除线字体、上标字、下标字、居中显示、飞行文字、滚动文字、闪光文字、阴影文字、超级链接、Email、图片、Flash、shockwave、RealPlayer媒体、Windows Media媒体、Qui
37、ckTime媒体、Winmap媒体、代码片段、引用、项目符号、水平线、文件下载、网页框架、字体、字体大小、字体颜色、段落样式等。3.2.5 作品展示模块该部分主要完成在用户发表日志、发表评论时对上传附件(包括图片、UBB的中的所有视频、文件等)的处理,当然上传附件是需要管理员以上的权限的,这在该页面也通过Session来检测的,当然采用Session并不是不安全,Session的数据是从加密的 COOKIE读到的,所以不用担心不安全。当用户没有该权限时,将会给出提示,当文件上传成功时,将给出提示,并显示给文件的类型(如Image/Jpeg)、大小、上传的目录,此外对上传文件大小的限制,我设置为
38、2M(对于检测文件大小,我想是不能放到服务端进行的,如果文件太大的话,所以在客户端进行检测,采用了JS,FSO判断不是好使,暂时没完善 ),超时时间为120s。当选择上传文件为空时,也将给出提示,如果文件不为空且大小符合要求,将会检查文件类型是否合法,同通过定义一串数组,存放不可上传的文件类型,比如html、asp、asa、cgi、hta、exe、vbs、dll等,上传此类型的将提示非法,如果是合法文件,将会上传到系统目录下的upload里,不存在将自动创建该目录,同时创建年月日格式的文件夹,不存在将自动创建,存放当前文件,同时文件将重新命名为“时分秒”的格式,然后开始上传,上传成功后,将根据
39、文件类型,增加代码到评论或发表日志的文本框,比如是FLASH文件,则自动添加UBB相同的代码,当然还有图片、其他媒体等类似处理,如果上传的文件类型不能用UBB来显示,则直接设定为普通文件,供下载(添加到父框架),用户点返回后将可再次上传,此外对于多文件上传,也很容易实现,可以动态的根据用户选择上传几个文件而增加上传浏览框,加入到上传集合中即可,上传路径从配置文件里读取。3.2.6友情链接提交与显示模块该模块实现的是友情链接的提交、当前友情链接显示等,包括图片链接、文字链接,图片限制以88*33象素为准,防止影响界面,至于显示出来,这个比较简单,图片和文字的DataList进行数据绑定就可以了,
40、当有用户提交友情链接申请时,将对提交信息进行检查,提交成功后,将提示等待管理员验证才可以显示首页或本页。其他部分调用页头、页尾、公用导航控件。3.3 软件和硬件需求分析本网站开发的软件环境如下:a) C#语言b) Microsoft Visual Studio 2008 环境c) Asp.Net技术d) SQL Server数据库e)Windows 2003 / 2000 / XP3.4 本章小结首先,根据系统功能的详细分析,在配置好开发平台、运行环境后,我先从系统的后台开始设计,因为前台数据的显示或管理都需要后台的支持,所以在后台的第一个模块服务器基本信息开始,直至顺序完成整个后台部分(系统
41、设置、分类管理、会员管理、链接管理验证、书签管理、表情、关键字、骂人词语屏蔽管理、文件管理等)。然后在后台支持的基础上,对前台进行顺序开发,日志发表、编辑、日志浏览(评论、分页、注册、内容过滤)、评论搜索、会员信息(整体、个人、编辑)、再到首页总体显示的实现。逐个模块的完成、完善、性能思考等。大多数情况下,不仅仅单一的依靠VS来编写,也是要考虑到手工编写,因此我觉得这样做是最好的解决方案,尤其是对性能的影响,当然在实现方法上,某些地方可能做得不是很好,有待于以后改进!4 系统总体设计本章主要介绍个人博客网站的总体设计,在对网站的需求分析的基础上,制定出该网站的总体规划,对建设一个小型网站来说是
42、必须的,也是进行详细设计的基础。网站的总体设计包括总体模块图和数据库设计。4.1 系统功能模块图设计个人博客网站分为两个部分:一部分是普通用户可以看到的部分,通常被称为前台部分;另一部分是网站管理人员对网站功能进行管理、维护部分,通常被称为后台管理部分。并将这两部分按照功能划分为若干模块,在前台划分的每一个功能模块,在后台都有相应的功能模块与其对应,实现对网站功能的管理与制定。其划分的总体功能模块图如图4.1所示。图4.1 系统功能模块图4.2 数据库设计 数据库主要存储管理员信息、日志信息、相册信息和作品信息、留言信息、友情链接信息。管理员信息包括管理员名、密码等;日志信息包括日志名称、编号
43、、添加时间等;相册信息包括相册名称、相册编号、照片信息等;留言信息包括留言者、留言内容、时间、管理员回复等;友情链接信息包括友情链接编号、友情链接地址、友情链接名称等,经过分析得出,网站的总体E-R图如图4.2所示。 照片 留言 相册 属于 n 1 n n 上传 管理 审核 n 1 友情链接 管理 管理 管理员 1 1日志分类 n 1 1 1 n 发表 属于 1 n n 日志 图4.2 个人博客网站的总体简化E-R图网站主要建立了管理员、日志信息、相册信息、作品信息、留言信息、友情链接信息的数据表。下面是各个数据表的说明。a) 管理员表管理员表用来保存记录管理员的信息,包括管理员的编号、管理名
44、、密码、管理员类别、新增管理员日期等信息。其中ID字段定义为这个管理员表的主键,表示管理员编号,USENAME字段表示管理员名,密码用PWD字段来表示,CX字段表示管理员类别,ADDTIME表示新增用管理员的日期。管理员表的具体设计如表4.1所示。表4.1 管理员表字段名称数据类型长度说明IDint4管理员编号,主键,对象标识符USENAMEvarchar50管理员名PWDvarchar50密码CXvarchar50管理员类别ADDTIMEdatetime8新增管理员日期b) 日志信息表日志信息表主要用来储存日志编号、日志主题、日志内容、添加时间、日志类别。其中ID字段定义为主键,字段类型是i
45、nt型,表示的是日志编号。日志信息表详细设计如表4.2所示。 表4.2 日志信息表字段名数据类型长度说明IDint4日志编号,主键,对象标识符Titlevarchar50日志主题Contentvarchar50日志内容Addtimedatetime8添加时间Leibievarchar50日志类别c) 相册信息表相册信息表用于保存相册信息,其中包括相册编号、相册型号、相册名称、照片信息、添加时间等。ID字段表示相册编号,做主键,是对象标识符,Bianhao字段表示相册型号,Mingcheng表示相册名称,Pic表示照片信息,添加时间Addtime字段表示。其中具体相册信息表的详细设计如表4.3所示。表4.3 相册信息