人人范文网 范文大全

个人博客网站的设计与实现

发布时间:2020-03-03 10:25:12 来源:范文大全 收藏本文 下载本文 手机版

摘 要

最近几年博客在国内发展的非常迅猛,它可以作为其使用者个人或者工作中的文章、日记、照片等分享的平台,其渐渐成为新兴的网路媒介,并且扩展至营销、商业推广等商业应用,越来越多的人们建立了属于自己的博客来展示自己的风采。

该博客网站设计的目的旨在建立以ASP.NET和SQL Server 2005数据库为工具,功能简洁、结构灵活且精致、轻巧的个人博客网站系统。其中网络日志的管理作为本系统的主要目标,且同时可以满足用户对于图片,相册,留言,个人信息等的管理和展示,并且可以设置博客的背景音乐等功能。

该设计的开发环境为Microsoft Visual Studio 2005,使用C#编程语言进行编码,采用的是SQL Server 2005数据库。

关键字:DotNet;C#; 个人博客; 数据库; SQL Server 2005

ABSTRACT

In recent years, The Blog develops rapidly in China.It can be used as a platform which shares its user's articles for daily life or for work, and also shares diaries and musics.Blog has become an emerging media on the Internet gradually, and it has extended to be busine applications such as marketing and promotion.More and more people have established their own blogs to show themselves.

The design for this blog website aims to build a personal blog system which based on ASP.NET and SQL Server 2005, having advantages such as its concise functions, flexible structures, exquisite but simple looks.The management of cyber diaries is the main objective for this system.The system can also meet the requirements such as managements and displays for user's pictures, photos, meages and personal information.Yet it can set background musics.

This design is developed by Microsoft Visual Studio 2005, coded by C#, and based on the database of SQL Server 2005.Keywords: Asp.Net; C#; Personal Blog; Database; SQL Server 2005

目 录

第一章 系统概述 ...................................................1 1.1研究背景 ........................................................1 1.2研究现状 ........................................................1 1.3设计内容 ........................................................2 1.4 课题研究意义...................................................3 第二章 系统开发环境 ...............................................4 2.1 ASP.NET概述 ....................................................4

2.1.1 ASP.NET和ASP.NET结构 .....................................4 2.2 C#概述..........................................................7 2.3 动态网站技术介绍................................................8 2.4数据库技术 ......................................................8 2.5 ADO.NET连接数据库 ..............................................9 第三章 需求分析 ..................................................11 3.1 可行性分析.....................................................11

3.1.1 技术可行性 .................................................11

3.1.2 经济可行性 .................................................12

3.1.3操作可行性 .................................................14 3.2 功能需求.......................................................14 3.3 性能需求.......................................................15 3.4系统用例 .......................................................15 第四章 系统概要设计 ..............................................17

4.1概述 ...........................................................17 4.2系统结构 .......................................................17 4.3 数据库设计.....................................................18

4.3.1 数据库设计概述 .............................................19

4.3.2 数据库概念设计 .............................................20

4.3.3 数据库实体设计 .............................................22

4.3.4 数据库设计表 ...............................................24 第五章 系统详细设计 ..............................................28 5.1用户登录模块的实现 .............................................28 5.2留言板模块的实现 ...............................................29 5.3相册模块的实现 .................................................31 5.4图片管理模块的实现 .............................................34 5.5背景音乐的实现 .................................................37 5.6日历模块的实现 .................................................39 第六章 总结 ......................................................41 参考文献 .........................................................42 致谢 .............................................................43

基于Asp.Net的个人博客网站的设计与实现

第一章 系统概述

1.1研究背景

BLOG一词耳熟能详,把它翻译成我们所熟悉的意思就是“网络文章”,现在一般叫做“博客”。具体说来,使用浏览器或者某些程序,在互联网上去创作、书写、发贴和刊登自己的文章、照片等信息的人就是博客(BLOGGER)。

每一个BLOG都是一个网页,其通常是由简单短小并且经常更新的Post来构成;这之中所贴的文章全都以年份、日期为依据排列。BLOG的内容与目的大相径庭,其包含网站的相关链接、灌水、评论,对有关组织以及个人所构想的文章、图片、绘画、歌曲,乃至实时消息、构想的故事的发表和出版应有尽有。很多博客是个人对心中的感情和一些奇思妙想的抒发方式,而其它的博客则是一些人按照一些特定的主题或者共同爱好的领域进行的自发性的集体创作。BLOG可以理解为向整个网络传达实时的讯息。而创作这些blog的作者便被称为博客或者博主。

Jorn Barge在一九九七年的十二月第一次提出了BLOG一词,但到当年互联网上的博客屈指可数,直到进入新世纪博客才真正的流行起来。最开始,博客们每天把他们其浏览互联网的的感受和想法记录下来,然后发表出来,以供其他人参考和借鉴。 但随着BLOG的快速发展,其目的与最初的时候已经大相径庭。现如今互联网上面数以百万计的博客们所创作并且发表出来的难以计数的BLOG有着各种各样的目地。但是,因为其沟通方式较E-mail、聊天室更简洁、容易上手,更加快捷和广泛,BLOG已经成为个人、团体、公司和政府部门之间越来越流行的沟通工具。

1.2研究现状

BLOG,把它翻译成我们所熟悉的意思就是“网络文章”,现在一般叫做“博客”。具体说来,使用浏览器或者某些程序,在互联网上去创作、书写、发贴和刊登自己的文章、照片等信息的人就是博客。是一个急速发展的网络活动,现在博客一词已经被现代汉语词典所收录,标志着这种新兴事物已经被人们所接受。BLOG是在E-mail、BBS、IM之后的所涌现出的新一种互联的社交形式,是在这个新时代的属于个人的一个交流平台,是以迅猛发展的网络技术为基础的网络日记,是新时代的生活与工作方式的体现,同时也是新时代的学习方式的体现。

每一个BLOG都是一个网页,其通常是由简单短小并且经常更新的Post来

构成,这之中所贴的文章全都以年份、日期为依据排列。BLOG的内容与目的大相径庭,其包含网站的相关链接、灌水、评论,对有关组织以及个人所构想的文章、图片、绘画、歌曲,乃至实时消息、构想的故事的发表和出版应有尽有。传统意义上的日记带有着很强的隐私性。与此不同的是BLOG同时具有着隐私性质与公开性质,并且将二者有机结合了起来,博客绝不只是单纯的去表达个人的思想与记录日常生活中的流水账,博客所展示的内容可以用来沟通、展示自我并且可以为他人提供参考和帮助,它存在于整个互联网,可以极大程度的展示自我,极广泛的进行交流。

博客出现于九七年底,在九八年“DrudgeReport”这一blog成为披露克林顿绯闻案的先锋;

2000年博客开始走入中国,并且得到迅速发展,但并没取得突出业绩; 2001年博客在911事件的报道中发挥了巨大的作用,从而步入主流; 2003年在对伊拉克战争的报道中,美国众多传统媒体所具备的公信力遇到博客的重大挑战;

2004年是对于中国博客的发展至关重要的一年,木子美事件使很多中国人了解了博客,并学会了使用用博客;

2005年,像搜狐,新浪这样的很多起初对博客这一事物不抱期望的的国内各门户网站,也纷纷加入到发展博客的行列,从此国内博客的发展进入了战国时代。 最近几年,芙蓉姐姐等网络名人的一炮走红也使得博客更加深入人心。

博客们每天把他们其浏览互联网的的感受和想法记录下来,然后发表出来,以供其他人参考和借鉴。但随着BLOG的快速发展,其目的与最初的时候已经大相径庭。现如今互联网上面数以百万计的博客们所创作并且发表出来的难以计数的BLOG有着各种各样的目地。但是,因为其沟通方式较E-mail、聊天室更简洁、容易上手,更加快捷和广泛,BLOG已经成为个人、团体、公司和政府部门之间越来越流行的沟通工具。

如今,门户网站已经普遍有了自己的大型博客站点。目前,国内发展较好为人们所熟知的相关网站有:新浪,搜狐,腾讯,百度等。

1.3设计内容

网站的界面很友好、明快、舒适;操作起来容易、快捷;查询资料快捷、准确。本个人博客网站在很大程度上实现安装的简易性、操作的简单性与维护的最小化。系统运行有较高的稳定性、安全性和可靠性。在功能上游客身份可以用不注册,直接通过匿名访问的方式在博客前台进行查看用户的博客日志,发表留言,查看用户的相册图片等操作。博客用户可以在前台的页面登录,然后进入后台页

面。在后台可以进行发表日志和管理日志以及日志的留言,添加相册,删除相册,上传、删除图片等操作。博客的主人在登录之后可以修改自己的个人信息,也可以设置自己博客的背景音乐。

1.4 课题研究意义

根据上面所介绍的相关信息我们已经知道如今博客的发展已经到了比较成熟的阶段了,它已经被人们所广泛接受。博客在改变着人们抒发情感与人际间相互交流的方式,它拉近了人与人的距离,改变着人们社交的方式;博客极大的扩展了着人们对于信息世界的想象,它影响着整个互联网的发展趋势,甚至对社会的发展会起到想当重大的影响。

博客这样一种有着巨大影响的新的信息传播方式的发展,必将有利于社会的进步。但同时也应看到,由于博客所具有的快速广泛传播信息的功能,一旦为不法分子所利用将带了严重的后果。所以我们要把这种好的作用尽可能的发挥到最大,并且通过技术、法律和道德的力量来避免不好的作用,在这过程中必然就需要通过开发新的技术来让博客的用户们活动更好的体验。

现在各个大中型的门户网站都退出了博客、空间等服务,令广大用户能够在互联网上有属于自己的一席之地。为了满足广大用户们在使用博客的过程中所追求的个性化要求,本个人博客网站尽量采用了.NET中的新方法,该个人博客采用.NET的可视化开发环境,所见即所得。从而让开发人员可以更加高效快捷的得到开发内容的实际效果,并且进行相关调试。 3 基于Asp.Net的个人博客网站的设计与实现

第二章 系统开发环境

2.1 ASP.NET概述

DOTNET也就是我们通常所说的.NET,准确来说它叫做.Net框架 。作为Windows系统的的一种组件,NET框架将会支持未来会出现的各种应用程序和XML Web业务。.Net框架刚刚提出的时候,微软确定要实现以下目标:给程序开发者统一的面向对象的编程环境。提供一个控制软件的布置和协调不同版本之间矛盾的执行环境,尽可能的减少矛盾,提供了更加安全可靠的的代码运行环境,提供一个可以避免脚本运行或者解释运行环境所引起的整体性能降低,使开发人员面对的操作系统的应用程序与网络应用程序相协调。

.Net框架在通过初步发展之后,在.Net 框架l.0以及它的升级版.Net 框架l.l中,更好地支持移动ASP。净监控及支持ODBC和Oracle数据库。后.Net 2.0中出现了越来越多不同的API。API允许管理.Net执行时的非实例.Net应用程序能够将其实现。不同以往的API.Net里面有着丰富的本领,比如:多线程,分配内存,代码的载入,给予了有效的管理,其次.Net 3.0里面加入了四个WPF。为开发Windows窗体和浏览器应用程序提供更好的用户体验的WCF。给予用户SOA(应用于服务软件的架构),以支持安全的网络服务框架。 Windows工作流基础(WF):提供面向工作流的设计和开发(面向工作流程)的应用基础设施,以支持应用程序接口。Windows CardSpace的:提供的SSO解决方案,所有使用者都拥有属于自己的CardSpace。在这个项目后,所使用的.Net框架3.5,这个版本包括一款支持C#和VB的网络中心编译器的语言功能的支持。同时,.Net 框架3.5的自动.Net 框架2.0 SPⅠ.Net 框架3.0 SPⅠ,用于这两个版本提供安全修补程序,以及少量额外的库的。 2.1.1 ASP.NET和ASP.NET结构

ASP.NET是.NET 框架的一个组成部分:它给了用户大量的用于编程的类,以满足各种编程需要。

.NET 框架类库

假如你是Microsoft。假如你必须支持大量的编程Language,比如Visual Basic、C#和C++。这些编程语言的很多功能相互重叠。例如,对于任何程序语言,必须包括的文件系统的访问,与数据库和操作系统的字符串的操作方法。

并且,虽然语言不同,但是实现相同功能时的程序结构是相似的。就像任何

程序语言都能够使用循环结构与条件结构的语句。写在Visual Basic语法的使用条件语句是写在C + +中是不一样的,程序的功能却是一样的。

此外,对于绝大多数的程序语言来说来都有着类似的数据类型。绝大多数的程序语言,都有能够定义整数型和字符型的数据。虽然由于程序语言的种类不同,整数型数据的最大值和最小值不尽相同,但是它们都是对应着用一种数据类型。

同时向多种语言来提供这种功能要耗费很多的资源。为什么继续重复工作呢?对所有的语言只创建这种功能一次,然后把这个功能应用在每一种语言中岂不是更容易。

.NET Framework类库正是这么做的。它包含一个庞大的集合,旨在以满足任何可以想象的编程需要的类。举例来说,数据库访问,文件协同,操作文本,生成图像等工作.NET Framework类库所提供的的类型足以将其实现。刨去以上的内容,本框架中有着众多专业的类型应用在处理网络协议的执行任务和正则表达式上。

此外.NET Framework包含所有基本的变量数据类型。

相比于之前的脚本语言,ASP.NET优越性集中表现在下面几个特性上:

(一) 高效性

以.NET框架做为基础来制作的的ASP.NET,应当使用VB,C++这些高度模块化的编程语言,只要执行一次编译器后便可以直接运行,因此ASP.NET的速度和效率比ASP这种只能依靠VBScript和JavaScript这样的脚本编程语言,增强了很多。

(二) 可重用性

ASP.NET比起以前的ASP来是大相径庭的。ASP中ASP的代码与HTML是混在一起的,而ASP.NET中是代码与内容是完全分离的,可重重复使用性大大提高。

(三) 代码量小

在ASP中,要实现的功能是通过编写代码来实现,但ASP.NET只是事先,可以自动实现,因此,当实现相同的功能,小于ASP的ASP.NET代码量。

(四) ASP.NET不是解释性的而是编译型的

ASP.NET编译器由两个阶段组成。在第一阶段,当一个ASP.NET页面是第一次访问或早期编译ASP.NET网站,包含语言代码江北编译成微软中间语言中间语言代码,像ASP.NET网站的编译模型可以在不使用背景语言的混合编程。第二阶段,ASP.NET页面执行时,MSL\ IL代码可以由即时编译(时间,JIT)的形式被编译成机器语言。

ASP.NET页面的编译过程为:

如果是VB.NET代码,则使用这种语言所编译器;若使用的是C#代码,则使用C#对应的编译器;如果是其他语言代码,则使用其对应的编译器。统一将

其编译为MSIL代码,之后进行JIT变编译,随后编译为机器语言代码最终进行执行。 6 基于Asp.Net的个人博客网站的设计与实现

2.2 C#概述

C#是一种Microsoft为了实际应用.NET而根据其特点和需要所创造的不同于以前出现过的的的编程语言。C#同.NET Framework存在密切相关的关系,C#中所包含地类型便是.NET里面所能提供地所有类,而且C#可以直接使用.NET 框架所提供地类库。此外,C#中所包含地理性的安全检查和结构化异常的处理等全部由CLR来处理。事实上,ASP.NET 3.5便是使用C#语言来进行开发的,因此C#这种编程语言不进十分适合Web应用程序的开发,而且还适合用于强大的系统程序的开发。

C#这门语言具有着如下的特点:

在.NET 框架所提供的环境中执行C#的代码的时候,无法对内存直接进行操作,从而使得程序的安全性能大大提高。C#中并不推荐使用指针,如果想要使用指针的话,需要添加unsafe修饰符才行,并且在编译的时候需要采用/unsafe这个参数。

采用C#编程语言可以构建出健康高效的应用程序。C#中的垃圾回收功能将会自动的回收那些不再被使用的对象所占用的内存。而异常处理功能则提供了结构化的并且可扩展的错误检测与恢复的方法。独有的类型安全的设计从根本上排除在读取未被初始化过的变量和未被初始化过的数组的时候导致溢出上限的可能性。

C#编程语言有着整合的类型系统。全部的C#类都继成于唯一一个根类——object。所以,全部的类型都能够共享同一组通用操作。

C#编程语言完全支持使用组件编程。现在软件设计越来越依靠有着自包含与自描述功能包形式的软件组件,通过属性,方法和时间来提供编程的模型。而C#恰恰可以轻而易举的创建并且使用这些软件组件。

通过上面的介绍,可以想象.NET Framework会是非常庞大的。它有着三千四百个的类。幸运的是,类不会简单的堆在一起。.NET Framework通过鲜明的层次结构将类组织在命名空间中。

例如在先前的ASP中,你只有五个标准类的访问,而在ASP.NET中所提供的类超过三千四百个!

命名空间是一个逻辑分组,像是,有关工作在System.IO的文件系统类型设置。 您通过完整的类的命名空间,可以唯一识别在the.NET框架位置的任何一类。 默认情况下,ASP.NET页面,在一些选定的命名空间中包含的类,在ASP.NET里普遍应用类被系统初始化。

7 基于Asp.Net的个人博客网站的设计与实现

2.3 动态网站技术介绍

鉴于博客网站系统的操作界面均为Web页面的形式,并且需要对各种用户的请求实时进行处理以及返回结果,而这些是一般的静态Web页面所无法实现的,因此需要使用动态网页技术。现在动态网页技术有很多,例如CGI、SP.NET、JSP、ASP、ASP.NET等。本设计将以ASP.NET为主要技术。

ASP.NET是ASP版本的下一代,它不仅仅是ASP Four,而是一种新的Web开发框架,包含了许多新的功能。不像ASP,ASP.NET是完全基于模块化和组件,它的可扩展性和定制是用ASP技术无法比拟的,在数据处理方面引入了许多令人振奋的新技术,为Web开发人员提供了更多的灵活性,网络是有效的改善应用程序的开发效率。 ASP技术相比,ASP.NET的进展是革命性的。 ASP.NET和Windows2005 Advanced Server的完美结合,为小型和中型企业用户和企业用户的网络商务活动提供了更好的稳定性,安全性,高效的运行环境。

2.4数据库技术

该个人博客网站所具有的存储用户信息,文章,图片,音乐等功能必然要通过数据库技术来实现。

统一的SQL Server 2005中的语言风格,可以完成这项工作的数据库活动,包括创建数据库,数字模式,改变和查询数据和整体安全的保障和数据库的维护。数据库应用系统的发展提供了一个良好的环境。即使系统在实际使用之后,用户仍旧能够根据需要来改变系统的结构,同时保证数据的正常运行,这一特点令系统有了非常优异的扩展性能。

在使用SQL语言访问数据库时,用户不需要像C语言那样具体的写出如何实现操作,而只需要写清楚要做的事情,SQL语言就可以将要求提交给数据库管理系统,然后由数据库管理系统自动全部工资。

自二十世纪八十年代以来,SQL便是DBMS这一系统所采用的规范化语言。最早的SQL标准是ANSI(American National Standards Institute)于1986年10也颁布的。ISO(国际标准化组织)于一九八七年六月正式通过了国际标准,并在此基础上补充,****年四月,ISO发布有着全部功能的SQL,SQL-89。SQL-89标准的颁布,对数据库技术队发展和数据库的应用都起到了巨大的推进作用。尽管如此,SQL-89依然有相当多不足之处。因此,SQL-89的基础上,研究和修订3年以上后,国际标准化组织与ANSI于1992年8月颁布了新的标准

——SQL-92 亦或是SQL2。值得注意的是它依然没有很全面,因此于一九九九年有颁布了SQL-99或叫做SQL3。

SQL语言就能够实现所数据库活动的工作,包括数据库的创建,修改和查询数据和安全管理和维护数据库,使用户可以继续死对数据库结构根据修改后还需要数据库系统投入使用。同时不会影像数据库的运行,从而使得系统具有良好的可扩展性。

在使用SQL语言访问数据库的时候,用户无需告诉计算机怎样一步步的达成操作,只需要描述清楚所要实现的目的。SQL语言之后便会将用户的要求提供到数据库管理系统,然后其将自动将剩余的任务达成。

尽管SQL语言有着强大的功能,但是它并不复杂,通过很少的几条命令便能实现众多功能。而且,SQL语法和日常语言比较相似,十分便于学习。

SQL语言能够通过到命令的模式直接应用,同时能够嵌入在使用的编程语言之中。如今数据库制作工具普遍的直接将SQL语言变成自己的语言,它是使用起来非常方便。贴现使用,为用户提供了一个灵活的选择。但不管是什么样的应用,SQL语言都会采用大体相同的格式。鉴于SQL 2005所具有的功能可以方便高效的实现本次工作的目的,本系统将使用SQL 2005。

本网站的开发工具使用的是Visual Studio 的二零零八版,使用的是C#语言作为编程语言,用到的技术有ASP.NET这一微软推出的先进技术,在数据库开发方面使用的则是SQLServer数据库,版本为二零零五。

2.5 ADO.NET连接数据库

在网站的开发过程中,如何存取数据库是最常用的部分。.Net 框架提供了多种存取数据库的方式。

ADO.NET这种数据访问技术虽然比较先进,但也存在着需要编写大量重复代码的问题,为了提高工作效率,ASP.NET 2.0进行来大胆的改进,增加来许多数据源控件和数据绑定控件。数据源控件包中的所有接入和数据处理功能,包括连接到数据源头,使用选择,更新,delete和插入SQL代码来获取数据和管理。数据绑定控件是用来显示数据在多种方式。把数据来源相关的控件和绑定上数据的空间有机整合起来,用户只需要轻点需要的属性,基本上不用依靠任何代码就都可以访问数据库。

System.Data命名空间管理专业类在ADO.NET中,数据处理是一个关键部分。所有依靠ADO.NET的软件的实现方法的关键都是数据集。该数据集是一个内存库中的副本。一个数据集包括许多数据表,每个数据表一般都会对应着一个数据库的表或者视图。有些特定的命名空间便是用来提供处理数据集,数据表和

视图的类。通过这些类能够方便的以编程的方式与数据库中的数据进行交互。

System.Data命名空间中的类,涵盖了所有的内容和关系数据库,如某些特定的类的外键查找和修改数据视图的数据关系表。

使用System.Data能够将数据库中的数据进行缓存,方便客户端进行读取,从而打到提高数据交互性能的目的。

System.Data是数据操作的关键,System.Data命名空间中包含的类负责着协调整合修改并且提供数据交互的一些常用功能:

通过使用共同System.Data命名空间中的类和接口的连接,可实现连接数据库。在这之中最关键的是DataSet类,它管理者数据库中的多个表。这些表在第一次读出来之后就保存在内存中,在此读取的时候可以直接从内存中读取,因此一般会把DataSet放在内存的缓存里边。 10 基于Asp.Net的个人博客网站的设计与实现

第三章 需求分析

3.1 可行性分析

技术可行性:如今主流的计算机配置水平均可以实现平台的安装和稳定运行;SQL数据库和VS2008等编程工具提供了可靠的编程环境;凭借以前所学的软件开发方法和编程的知识,并且查阅相关资料和书籍可以为网站的开发提供足够的技术保障。

社会可行性:目前互联网上已经有很多成功的博客网站,博客系统的存在完全符合国家的相关法规和普遍的社会价值观,不存在严重的障碍。此外,博客的的操作方式简便,门槛低,适合大多数人使用,其内容符合大众的价值观,有利于提高人们学习、交流的效率,因此本设计具有可行性。

经济可行性:本设计基于ASP.NET开发,完全可以实现免费、开源,用户可以直接浏览博客信息和留言,并且可用通过免费注册来获得更多的功能,便于为人们接受。 3.1.1 技术可行性

技术可行性是本设计最关键的部分,也是其他可行性的基础。需要根据用户所提出的各种功能要求和限制条件,在技术的角度上研究本系统实现的可行性。系统的开发涉及多个方面的技术。包括了系统的软件和硬件,网络的环境,人员的技术水平,系统开发的各种相关理论。在

在技术可行性方面需要考虑的有很多,首先是技术人员,无论任何工作,都是以人为本的,由人来完成,最后面向的用户也是人。而不管是个人还是团队,如果要开发一款产品都需要相应的技术基础。对于个人来说必须要掌握相关的技术或者确定可以在可接受的时间范围内掌握该技术才能够去进行开发。对于团队来说,团队之中至少要有一个人能够完整的掌握相关的技术,不能这个人会一点那个人懂一点来东拼西凑,这样会大大的降低开发效率。而且对于团队来说,良好的团队协作是成功的必要条件,如果一个人所写的代码虽然能顺利运行,但是不具有很好的规范性兼容性,那么这个团队也是无法协同工作的。

之后要提到的就是采用的技术,从信息革命爆发以来所涌现出的新技术新理念层出不穷,但是为人们所广泛接受的技术同庞大的总量比起来就显得九牛一毛了。很多技术或者是不成熟,或者是不完善或者是不符合大多数人的价值观。总

11

之因为各种各样的原因导致它们没有广泛的应用。我们在开发的过程中确定了产品的功能之后要做的便是选择合适的技术来实现它,这其中的大多数技术应当是成熟的可靠的,因为作为一款产品首先应该是可靠的,不能总是出现问题。但是也应当采用一些具有新特点的技术,令本产品同其他类似产品比起来有所独特的地方,能够在众多同类产品中脱颖而出。当然,如果技术实力足够强大,也可以更加大胆和广泛的采用新技术新理念。

博客作为一款网络应用,需要注意的还有网络环境的问题,如何降低网络环境的波动对博客系统性能产生的影响。比如博客在只有少数用户的时候能够流畅的运行,但是在面对大量的用户时原有的资源就可能捉襟见肘,如何在低谷和高峰之间进行切换,在面对大量用户时不会导致明显的性能能下降,在面对少量用户时避免资源的浪费。

最后要注意是硬件条件,有些程序在正常运行的时候看起来效果很好,但是它要求的硬件条件非常高。像是核爆炸的模拟程序,它已经各个大国所使用,它能够为相关领域的科技发展提供极大的便利。但是由于它庞大到令人惊叹的运算量,世界上也只有着为数不多的超级计算机能够运行它。再比如一款游戏,在刚推出的时候如果只能在那个时期顶尖的旗舰级电脑平台上才能流畅运行,那么能接受它的用户面就会仅仅限制在一些游戏发烧友上,失去广大的用户群体,从而导致无法获得理想的经济回报。因此,对于博客这种需要依靠大的用户群体来支撑的事物,必须用尽可能地的硬件要求便能实现好的用户体验。

技术成熟性方面本系统的软件方面采用ASP.NET技术,而.NET技术已经投入实际应用很长时间,如今已经成为来计算机领域一门非常有前途的技术,它成熟、稳定。并且本网站的开发开发工具使用的是Visual Studio 的二零零八版,使用的是C#语言作为编程语言,用到的技术有ASP.NET这一微软发明的先进技术,在数据库开发方面使用的则是SQLServer数据库,版本为二零零五。通过ADO技术将其与.NET有机结合起来开发出一个适应性强,稳定并且高效的系统,在相关的技术方面不存在不成熟,缺乏实际检验,缺乏实用性和适应性的问题。其硬件方面由于采用的是较老版本的软件平台,其对硬件的要求较低,现在绝大多数个人电脑均能运行。在技术人员方面,我之前在课堂上学习过ASP.NET网站的开发和SQL数据库,并且通过在图书馆查阅相关资料,网上参考类似的成熟的相关产品,和老师同学的交流等掌握了所需的技术。预期整体开发过程所需时间小于毕业设计所规定的时间,能够独立按时完成任务。 3.1.2 经济可行性

经济可行性是指可以使用的资源的可能性,经济可行性研究的核心是成本效益分析,主要是估算开发成本是否会高于预期利润。要关注开发设计所投入的资

本与软件所带来的经济效益是否对称,要关注软件是否能够给用户创造经济效益并且带来好的体验。对于一款产品来说,经济可行性是至关重要的。我们开发产品的最终目的是为了产生经济效益,如果这个最高目标无法得到实现,其他的努力都将是徒劳的。所谓经济效益就是最后能产生的直接利益加上间接利益再减去开发成本和运行维护的成本所得到的收益。现有的博客的盈利方式主要有植入广告,用户个性化需求等方面。植入广告已经成为了互联网行业的一个主要盈利方式,比如谷歌公司百分之九十以上的经济收入来自于广告。而广告盈利的前提是有这大量的点击量,现在很多网站上有大量的恶意广告和不友好的广告,比如要实现点击某个连接或者看到某些内容就必须点击若干个广告。这种方式在短期来看是能够为网站提供大量的点击率,但是随着同类网站的发展,用户会趋向于简单友好的网站,而不是下载个文件都需要机械性的点击关闭多次广告的网站。好的广告植入方式应该是在尽量不引起用户反感并且能够吸引用户的注意力,用户应该对广告的内容有一定的选择能力,而不是那些闪耀到晃眼的模式单一的广告。并且由于不同人的博客有着不同风格主题,针对某一风格主题也有着特定的人群。比如CSDN中主要的用户都是计算机领域相关的人员,而关注刘慈欣博客的人大多是科幻小说的爱好者。对于不同风格主题的博客应该投入不同类型的广告,从另一个角度来说,采用某些技术可以记录人们在浏览互联网时所关注的信息,在这些信息中选择出一些具有代表性的产品在特定用户浏览博客时以图片连接的形式呈现在其面前也是一种被广泛使用并且十分有效的方式。

对于另一种盈利方式,也有着十分广泛的市场,比如腾讯空间中有有少量的比较死板的主题和皮肤。而腾讯空间的主要使用者又是喜欢追求个性的年轻人,而在腾讯空间的商城中有着十分丰富并且符合年轻人喜好的各种付费产品,并且其又推出了各种钻来以优惠为吸引人的方式让用户对其产生长期的依赖,使为其投入一定的金钱成为交水电费一样的生活习惯,从而为产品带来长期稳定的用户群体。并且通过收取一定的费用可以提供一些特权服务(会员),比如更低廉甚至免费的个性化装饰,在更大限度上放宽带宽的限制,提供去除广告的功能,使得浏览更加简洁和流畅,并且可以扩展一些受限的功能(好友数量的限制,图片最大数量的限制等)。并且将其付费方式与时下迅猛发展的新付费方式所结合,让客户足不出户轻点鼠标或者发几条短信就能购买到所要的功能和产品。在成本方面需要考虑的有开发的成本和运行与维护的成本。

开发成本是指在开发产品时所花费的人力,物力和时间。人力成本与开发人员的数量,层次有关,对于大型的高端的开发需要大量高端人才,其成人力本无疑将是巨大的。而对与小的点单的产品开发则往往只需要个人便能独立完成,其目的又多以兴趣爱好,验证自身技术和较小的盈利为目的,这种开发的成本相对来说是很低的。在物力投入和花费方面也与所开发的产品是密切相关的,对于所

要开发的产品应该事先进行评估,确定其开发中所需要投入的各种成本,并且对今后的运行维护做出比较准确的预期。从而避免出现系统自身问题导致耗费大量人力物力来解决后期运行中的问题。

而我们所开发的这套博客网站系统正式基于提高用户使用效率,节省工作时间,简化操作管理的理念来设计的。并且本系统是个人独立设计开发的,并不需要投入大量经费,系统今后的运行和维护也相当简便,无需投入额外的资金,其成本不会出现超于预期的可能。并且在其过程中也可以提高个人的开发水平,因此在经济上是完全可行的。在系统运行的过程中将定期进行系统备份,在遇到突发事件时只需将备份的系统在另外一台具有所需环境的计算机上即可还原,并且重新运行,系统的可靠性高,风险小。 3.1.3操作可行性

在当今这个信息技术迅猛进步的时代,信息技术早已深入到社会中的每个地方,它为人们带来来便利的工作方式,优越的工作环境,因此也对人们的工作效率和操作水平提出了更高要求。在这种发展趋势下,减少费时费力的人工操作,通过各种智能化软件来提高工作效率和工作精度就成为了一个很重要的方向。

对于用户来说一个可以轻而易举上手的产品显然比那些要读完冗长的说明书甚至进行一定的学习培训才能操作的产品受欢迎的多。一个成功的博客应该是

很友好的,对于任何一个熟悉上网方式的人都应该能够无障碍的使用它。同时它的功能又应该是全面的,用户可以用符合日常习惯的方式来实现所要达到的目的。对于一些新颖的功能,应该通过给予用户一些奖励的方式使用户对其产生兴趣,并且试用它。若是使用起来有一定的难度则应该给予一定的说明和引导。比如腾讯微博在更新出新功能时会通过种种奖励和优惠积极像广大用户推广,并且用很详细的方式来一步步引导用户学会使用新功能。

本博客网站系统的用户平台同时面向游客、普通注册用户和管理员,其界面简洁,采用web的可视化界面,普通注册用户只需要轻点鼠标和键盘就可以使用博客;而数据的输入和维护均由博客的管理者来完成。正是由于这些特性,本博客系统十分适于新手使用,无须学习复杂的教程便可以获得好的体验。故,本博客网站系统在操作上是可行的。

3.2 功能需求

用户管理模块:注册(游客用户)、登入(注册用户)、修改资料(注册用户) 系统管理模块:用户管理(管理员)

文章管理模块:添加(注册用户)、删除(注册用户,管理员)

留言管理模块:张贴评论(游客用户,已注册用户,管理员)、删除(注册用户,管理员)

相册管理模块:添加相片(注册用户)、删除(注册用户,管理员) 音乐管理模块:添加音乐(注册用户)、修改(注册用户)、查询(注册用户)、删除(注册用户,管理员)

3.3 性能需求

数据精度要求:数据需要遵循严格的格式,否则系统将不会予以响应。 时间要求:运行环境方面的连接响应时间应小于等于10秒,对大于180秒没进行任何操作的用户其访问认证将失效,需要重新进行登入。

数据管理要求:即数据库系统管理,其包括:

注册信息表包含用户名,密码,住址,爱好,职业等基本信息。并且要求数据库的自动增长比例为2%。

日志记录:包含标题,时间,内容,作者等信息。 留言管理:包含回复人,内容,时间等信息。 相册管理:包含评论人,内容,时间等信息。

控制:用户在进入博客首页面后,可以以三种身对博客网站系统进行浏览——游客身份,普通用户身份(需要通过登录)和管理员身份(需要以特定的帐号来登录),在访问over后关闭所浏览的网页的同时也就退出了博客,

3.4系统用例

根据以上需求分析,总结出个本人博客系统的基本功能需求。如图3-1所示: 15

日志管理>>>>图片管理留言管理相册管理>>用户管理系统管理员音乐管理用户注册>>>>>浏览日志用户登陆>浏览相册文章评论个人档前台用户图3-1 系统总用例图

16 基于Asp.Net的个人博客网站的设计与实现

第四章 系统概要设计

4.1概述

本博客系统采用B/S结构,即Browser/Server或浏览器/服务器结构;建立在两种Web服务模式之上,本模型结构适用于Internet环境下。用户只需要连上Internet,便能够在任何时间、任何地点使用本系统,本网站工作的原理如4-1:

执行过程请求客户端回发验证Web服务器传送数据库检索 图4-1 系统工作原理图

4.2系统结构

本博客网站系统基于B/S架构,分为用户前台和管理者后台这两大模块。

前台的关键任务是:查看日志、查看相册、大家评论、音乐背景、用户登录、用户资料等功能模块。

后台的主要功能为:日志管理、相册管理、图片管理、留言管理等功能模块。 本系统的功能部分结构如图4-2所示:

17 基于Asp.Net的个人博客网站的设计与实现

系系系系系系系系系系系系系系系系系系系日背日日发志留相添上景用日相历志布类言册加传音户志册浏留管日别管管相图乐登查浏览言理志管理理册片设录看览文板理置章图4-2系统功能结构图

从上图可以看出本个人博客系统由前台和后台这两个功能模块组成。前台功能模块包括:

用户登录:用户通过自己所注册的账号和密码登录成功后便能进入属于自己的博客管理界面。

日志查看:日志查看可以分为对日志的列表进行查看和对日志的内容进行查看,并且日志可以根据类别进行浏览。

相册浏览:相册浏览包含首页最新相册和相册列表这两项,点击相册的类别便可以看到该类别的所有图片。

留言板:本博客系统具有留言板功能,游客和用户能均可以到留言板发表留言。

用户资料:对于登录之后的的用户来说,在这里能够修改自己的个人信息,对于么有登录的用户则只能浏览个人信息。

后台功能模块包括:

日志管理:即发布日志,更改日志,deleted日志,并可以对日志类别进行区分和修改。

留言管理:博主可以在留言板以博主身份回复前台的留言信息。 相册管理:可以进行添加相册,修改相册,删除相册等操作。 图片上传:用户可以选择指定的相册,将上传图片至该相册中。 音乐设置:博主能够在后台对博客的背景音乐进行上传、删除等操作。

4.3 数据库设计

8 个人档基于Asp.Net的个人博客网站的设计与实现

4.3.1 数据库设计概述

数据库设计是使用现有的数据库管理系统,针对特定应用的简历数据库模型,建立数据库来满足它所要实际使用的环境。因此,它可以快捷的采集数据,进行内存操作和管理数据,实现使用者对信息需求和处理的要求。从另一个角度来看,数据库的设计是在现实世界的数据库管理系统的紧密结合,有机的过程,结合相应的。

在数据库的设计过程之中,我们将会遇到的关键难题会是:

懂得计算机与数据库的人往往缺乏应用业务的只是和实际经验。而熟悉应用业务的人一般又不懂得计算机和数据库。两者兼具的人很少。

在项目的一开始旺旺不能明确应用业务的数据库系统目标。 能普遍适用的工具与设计方法几乎不存在。

用户的要求一般情况下并非在一开始就是鲜明的,而是在设计的过程中不断的提出新要求,甚至在数据库完全建立之后还会要求修改数据库或者增加新的功能。应用业务系统成千上万,难以找到一种广泛试用于各种应用业务的工具和方法,隐刺增加里研究数据库自动生成工具的难度。由此可见,研制一种适合所有应用业务的全自动的数据库生成工具是不可能的。

要设计数据库首先要明确系统目标。这样可以确保开发工作得以顺利实施,提高工作效率,保证数据模型的准确和完整。数据库设计的终极目标是数据库必须满足使用者对数据的存储和处理的要求。一个成功的数据库应该是功能强大的。能够准确的显示工作数据。使用方便,易于维护。在系统实际投入使用的时候,对于用户的请求能够在合理的时间内给与响应。方便在投入使用之后根据实际情况对数据库结构进行再次的改进。便于对数据的查找和编辑。维护数据库的工作较少。具有可靠的安全措施可以保证数据的安全。冗余的数据尽可能少。便于数据的备份和恢复。数据库的结构对于最后使用的用户应当是可视化的。

新奥尔良方法。这种方法是一种比成熟的数据库设计的办法。其主要包括对需求进行分析,之后根据需求建立概念结构,以之前的工作为基础简历逻辑结构,最后设计系统的物理结构等肆大部分。这种方法注重于数据库的结构设计,而不太考虑数据库的行为设计。

数据库设计方法——E-R模型是以第三范式作为理论基础的,抽象的语言规范世纪的方法,设计方法的基础上,使用在数据库设计的各个步骤中的的实际的技术和方法。

数据库设计的实现方法,从根本上来讲依旧是靠手工分析来设计的,他的基本思想是通过不断的反复带入和不断的精益求精来实现的。

在数据库设计过程中,首先要做的是需求分析,在这个部分要做的是对我们

19

所生活的世界中要实现的目标进行详细调查,通过之前的调查中所得到的有用的信息,来确定系统的新功能,基本数据和处理方法收集支持系统目标。需求分析是基于用户进行的调查,通过分析逐渐清晰的用户需求的系统,包括数据本身和以这些数据为根本的各种处理工作。

用户调查,获取信息的用户需求,其中的加工要求,安全性和完整性的要求和其它要求。在需求分析,通过顶部,逐步分解的方法分析系统,系统可以抽象为数据流程图的形式,在这个阶段,没有确定具体的数据存储。处理二字将系统要求的的功能在数据流图中抽象的表达出来,整个函数对系统的要求能够被逐步以多个子系统来实现主系统的功能要求,通过一步步用多个子系统等价代替的方法,将系统工作过程逐步划分为可以清楚描述的N个子系统。

数据库的需求分析是数据库最重要也是最困难最麻烦的一步,如果这一步做得不好,那么后续的设计花费再多的时间,再怎么优化也无法从根本上改变之前的问题。

在明确了数据库的需求之后要做的就是数据库的结构设计。 4.3.2 数据库概念设计

设计数据库的结构,需要以需求分析的结果作为基础,一步步归纳总结出数据库的概念,逻辑,物理结构。结构概念设计的概念模型,形成数据库层,语义层模型。如ER模型的逻辑结构设计的模式和模式的数据库,形成层结构模型,如基本表,视图。物理结构设计的结果在设计结果的形成模式数据库,使用的话,是属于的描述,如数据库文件或目录,索引。

数据库结构设计的第一步要做是确立概念性的结构,其顶部的信息结构的设计,会要求根据对使用者需求的研究出的结果,抽象出系统的信息结构,也就是概念模型,建立数据库系统的结构是最重要的工作,独立的逻辑结构设计,数据库管理系统。

数据库概念结构需要具有丰富的语义表达能力。表达各种用户的不同需求,包括各种现实世界中的物体的描述,它们之间的连接,可满足用户数据处理的需求。容易沟通和理解。结构的概念是设计师和用户之间沟通的主要工具。容易修改。当这个系统所使用的地方和应用中遇到的要求发生变化时,可以很容易地修改的概念结构,以反映这些变化。轻松转换模型的各种数据,很容易推导出的DBMS的逻辑模型。

其设计的方法是采用E-R图,其过程可以分为三步:

(一) 在E-R模型的设计

设计内容包括当地的ER模型确定本地的ER模型范围内,定义实体,关系和它们的属性。主要核心是实际的现实情况是,加工,共同的特征提取,忽略不

重要的细节,而将这些需要的特征描述为概念。抽象的方法有聚蔟,概括,分类这三种。

(二) 设计整体E-R模型

将所有部分E-R模型图融合为一个整体E-R图,即整体E-R模型。其方法主要有一次性将所有E-R模型有机融合在一起的方式和逐步累加的方式。在把部分E-R的模型集成为一个整体的E-R模型的过程中,消除各个部分E-R模型合并时所产生的冲突是其关键所在。这些矛盾一般分为三种情况:实体的属性互相矛盾,即属性的范围矛盾和属性的取值单位矛盾。命名的矛盾,是指同一个名字具有不同的意义与不同的名字有着相同意义这两种情况。对于属性和命明矛盾一般采用讨论协商的方法进行结局。另外,结构的矛盾,它是指多个的属性来对应有且仅有的一个对象,或者多个对象却共同使用着一个属性,不一样的的排列顺序的E-R模型并非是完全一样的。对于前者可以通过把属性转换为实体或者将实体转换为属性的方法,使同样的对象具有相同的抽象。后一种解决方案的方法是使该实体的属性和ER模型的各部分的属性,然后在属性,以调整适当的。

(三) 优化整体E-R模型

通过对相关实体的合并减少数量的实体,通常具有相同的原代码实体合并。此外,如果多个实体之间存在1:1的关联,那么你可以考虑把他们整合成一个实体,同时适当把多余的属性和多余的链路消除掉。

通过对现实世界信息的抽象,建立概念模型,可以有效提高数据库设计的效率。根据以前所学的知识,可以依靠系统E-R图来描述概念模型,并且易于该图所体现的系统中各个实体间关系来建立数据库。相关的内容如图4-3所示:

编号相册名称1管理N相册相册封面登录账号添加时间编号管理员信息11管理N登录账号登录密码登录密码管理编号用户信息出生年月N电子邮件标题描述爱好星座编号日志信息内容类别发布时间

21

图4-3系统E-R图

4.3.3 数据库实体设计

在概念设计完成的是进行E-R模型转化为一个特定的数据库管理系统在支持数据模型的组织,这是在一定条件下所限定的数据库管理系统。它能够对数据库中所包括的信息的逻辑结构进行处理。

数据库管理系统的具体数据支持的组织层形式有四种。层次的形式,网络的形式,关系的形式和面向对象的形式。

在本设计中将用到的是E-R模型想关系模型的转换。

其包含有两个步骤:

(一) E-R模型向关系模型的转换

从ER模型转换关系模型中面对的问题是如何将实体和关系模型之间的关系,如何确定主代码和属性模型之间的关系。

(二) 数据模型的优化

逻辑结构的设计结果并非是唯一的,因此应该根据实际需求对逻辑数据模型进行适当的调整与修改,即数据模型的优化。

在完成了以上工作之后,便到了物理结构设计的阶段。物理结构依靠数据库管理系统为基础建立存储结构,是把已经确定的数据库逻辑结构性能尽可能提高的方法和技术。数据访问,访问和存储分配设计合理高效的数据的路径,数据库结构和可行的。

其一般方法为确定数据库的物理结构,用于选择适合对数据库进行物理访问的方法和数据库信息储存的结构;对物理结构的时间效率和空间效率做出评价。

相册信息实体,相册包含编号;相册的名字;相册的封面图;建立的时间这四个属性,具体如图4-4:

相册名称编号相册相册封面添加时间

图4-4相册信息实体图

用户信息包含有编号;登录帐号;登录密码;出生年月;电子邮件地址;星

22

座;爱好;个人描述等属性,如图4-5:

登录账号登录密码编号用户信息出生年月电子邮件描述爱好星座

图4-5用户信息实体图

日志信息包含编号;标题;具体信息;类别;发布时间等属性,如图4-6:

编号日志信息标题内容类别发布时间

图4-6日志信息实体图

日志类别包含编号和类别名称这两个属性,如图4-7:

编号日志类别类别名称 图4-7日志类别信息实体图

留言信息包含有编号;留言人;留言时间;留言内容;回复内容等属性,如图4-8: 23 基于Asp.Net的个人博客网站的设计与实现

编号留言信息留言人回复内容留言内容留言时间

图4-8 留言信息实体图

图片信息包含有编号;图片名称;图片描述;所属相册;上传时间;图片地址等属性,如图4-9:

编号图片信息图片地址上传时间图片描述图片名称所属相册

图4-9 图片信息实体图

4.3.4 数据库设计表

在完成了数据库的结构设计和行为设计,并且编写了实现用户需求的应用程序之后要做的边上利用DBMS提供的功能实现之前所做的设计,并且选择尽可能好的方法。然后夹在数据并且调试和运行应用程序。

下面将介绍本博客系统所需要的数据库中各个表的详细信息。

Album信息表包含编号(ID),相册名称(AlbumName),相册封面(AlbumPic),添加时间(addTime)。在这些字段中编号是该表的主键。如表4-1所示:

表4-1 相册信息表

字段名 ID AlbumName AlbumPic addTime 数据类型 int nvarchar nvarchar datetime

长 度 4 50 50 8

24

主 键 是

否 否 否

述 编号 相册名称 相册封面 添加时间

Music信息表包含编号(id),音乐标题(MusicPath)。其中编号作为该表的主键。如表4-2所示:

表4-2 背景音乐信息表

字段名 id MusicPath 数据类型 int int

长 度 4 50

主 键 是 否

述 编号 标题

Picture信息表包含编号(id),图片地址(imagePath),相册编号(AlbumId),相册名称(AlbumName),图片描述(ds)。在这些字段中编号是该表的主键。依表4-3所示:

表4-3 相册内容信息表

字段名 id imagePath AlbumId AlbumName ds 数据类型 int nvarchar int nvarchar text

长 度 4 50 4 50 16

主 键 是 否 否 否 否

述 编号 图片地址 相册编号 相册名称 图片描述

Article信息表包含编号(id),日志标题(Title),日志内容(Contents),发布时间(addtime)。在这些字段中编号是该表的主键。如表4-4所示:

表4-4 日志信息表

字段名 id Title Contents addtime 数据类型 int nvarchar text datetime

长 度 4 50 16 8

主 键 是 否 否 否

述 编号 日志标题 日志内容 发布时间

UserInfo信息表包含编号(id),帐号(Username),用户密码(Userpwd),用户生日(BirDay),电子邮件(Emal),星座(httpweb),爱好(addre),注册时间(addtime),用户描述(ds)。在这些字段中编号是该表的主键。如表4-5所示:

25

26 基于Asp.Net的个人博客网站的设计与实现

表4-5 用户信息表

字段名 id Username Userpwd BirDay Emal httpweb addre addtime ds 数据类型 int nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar datetime text

长 度 4 50 50 50 50 50 50 8 16

主 键 是 否 否 否 否 否 否 否 否

述 编号 账号 用户密码 用户生日 电子邮件 星座 爱好 注册时间 用户描述

userliuyanban信息表包含编号(id),发布时间(Date),留言姓名(Name),回复内容(Reply),留言内容(Meage)。其中编号作为该表的主键。如表4-6所示:

表4-6 留言信息表

字段名 id Date Name Reply Meage 数据类型 int nvarchar nvarchar Text Text

长 度 4 50 50 16 16

主 键 是 否 否 否 否

述 编号 发布时间 留言姓名 回复内容 留言内容

ArticleType信息表包含编号(id),类别名称(Name)。其中编号作为该表的主键。如表4-7所示:

表4-7 日志类别信息表

字段名 id Name 数据类型 int nvarchar

长 度 4 50

主 键 是 否

述 编号 类别名称

27 基于Asp.Net的个人博客网站的设计与实现

第五章 系统详细设计

通过将ASP.NET技术与SQL 2005数据库系统的有机结合,通过科学的计划方法实现了个人博客网站的建设工作。在这次设计的过程中,运用了很多在课本上学过的理论知识,但是经过实际操作发现仅靠这些并不足以实现目标。在开发的过程中,我认识到好的开发方法起着至关重要的作用,只有先做好前期的工作才能少走弯路,高效的达成目标。由于自己的实际经验不足,在过程中出现不少考虑不周的地方,导致在后期的测试中花费了较多的时间,因此导致比较仓促,所设计的界面比较简单,主要精力投入在功能的开发和调试中。尽管如此,系统依旧具有完整的功能和比较友好的界面。

5.1用户登录模块的实现

实现用户登录的过程由以下几个部分组成,第一步是对用户所输入的信息进行保存,之后利用ASP.NET程序在数据库中检索是否存在用户输入的信息,如果存在则返回正确的结果,否则就返回错误的结果。若返回正确结果,则显示登陆成功,否则将显示登录失败,请重新登录。在这之中将使用验证码技术防止短时间内重复提交登录请求。在这之中使用了GetDataReader方法,CheckCode验证。

登录页面的页面效果如图5-1所示:

图5-1 用户登陆

28 基于Asp.Net的个人博客网站的设计与实现

用户登录过程的主要代码如下:

protected void Button2_Click(object sender, EventArgs e)

{

string sno = TextBox1.Text.Trim();

string pa = TextBox2.Text.Trim();

SqlDataReader dr = data.GetDataReader("select * from UserInfo where txtUsername='" + sno + "' and txtUserpwd='"+pa+"'");

if (dr.Read())

{

if (string.Compare(Seion["CheckCode"].ToString(), TextBox3.Text, true) != 0)//判断所输入的验证码与系统随机生成的验证码是否相同

{

Label2.Text = "验证码错误。";

return;

}

else

{

Seion["User"] = dr["txtUsername"].ToString();

Seion["UserName"] = TextBox1.Text.Trim();

Response.Redirect("loading.aspx");

}//将用户名和密码与数据库中的信息进行比对

}

else

{

Response.Write("<script language=javascript>alert('用户名或密码不正确,请重新输入!');</script>");

} } 5.2留言板模块的实现

本博客网站为用户提供了留言板功能,所用用户均可在留言板进行留言,博客拥有这在后台可以查看和删除留言信息。

29

留言的页面效果如图5-2所示:

图5-2 用户留言

留言的主要代码如下:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)//页面首次加载

{

rptMR.DataSource = data.GetDataReader("select * from Meage");

rptMR.DataBind();

}

}

protected void btSubmit_Click(object sender, EventArgs e)

{

string sql = "insert into [Meage](Name,Meage)values('" + tbName.Text + "','" + TextBox1.Text + "')";

data.RunSql(sql);

Alert.AlertAndRedirect("感谢您的留言", "Meage.aspx");

} 下面是留言板的后台部分,博客拥有者在后台可以进行查看和删除留言的操作。

后台管理留言的效果如图5-3所示:

30

图5-3 管理留言

5.3相册模块的实现

相册模块主要是对相册中信息的展示,博客的拥有者可以进行添加相册、编辑相册、删除相册等操作。

相册展示列表的实现效果如图5-4所示:

图5-4 相册信息列表

主要的代码如下: private void GetListPage()

{

try

{

31

DataSet ds = new DataSet();

ds = data.GetDs("select * from Album ", "Album");

PagedDataSource objPds = new PagedDataSource();

objPds.DataSource = ds.Tables[0].DefaultView;

objPds.AllowPaging = true;

objPds.PageSize = 6;

int CurPage;

if (Request.QueryString["Page"] != null)

CurPage = Convert.ToInt32(Request.QueryString["Page"]);

else

CurPage = 1;

objPds.CurrentPageIndex = CurPage1);

}

if (!objPds.IsLastPage)

{

hylastpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + objPds.PageCount;

lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);

}

DataList3.DataSource = objPds;

DataList3.DataBind();

}

catch

{

}

}

32

博客管理者在后台凭借相册相关介绍添加的部分可以实现对相册加入多重介绍,包括相册的名字,图片的注释。添加相册信息实现的效果如图5-5所示:

图5-5 添加相册信息

主要代码如下:

protected void Button1_Click(object sender, EventArgs e)

{

string res;

upload up = new upload();

res = up.Up(file1, "../UpLoadImage/");

this.Label1.Visible = true;

this.Label1.Text = up.Resup[Convert.ToInt32(res)];

this.pic.Text = up.s;

Image1.ImageUrl = "../UpLoadImage/" + pic.Text;

}

protected void btnAdd_Click(object sender, EventArgs e)

{

string AlbumName = this.txtAlbumName.Text;

string AlbumPic = pic.Text;

data.RunSql("insert into Album(AlbumName,AlbumPic)values('"+AlbumName+"','"+AlbumPic+"')");

Alert.AlertAndRedirect("添加成功", "MangerAlbum.aspx");

} 首先我们将采用一个图片上传类来对图片的上传进行操作,用户先获取所要

33

上传图片的路径信息,之后窝们将都用日期时间对图片进行重命名,从而避免由于图片重名而导致无法上传的问题,然后采用Server.MapPath方法取得图片将要存放的文件夹路径,将图片上传到该文件夹中,最后将图片的相对路径信息保存到数据库中。

5.4图片管理模块的实现

图片管理模块主要包括前台图片信息的展示,后台对图片信息的添加和管理以及上传图片等功能模块。

图片展示效果如图5-6所示:

图5-6 图片信息展示

主要实现代码如下:

private void GetListPage()

{

try

{

DataSet ds = new DataSet();

ds = data.GetDs("select * from Pic ", "Pic");

PagedDataSource objPds = new PagedDataSource();

objPds.DataSource = ds.Tables[0].DefaultView;

objPds.AllowPaging = true;

objPds.PageSize = 6;

34

int CurPage;

if (Request.QueryString["Page"] != null)

CurPage = Convert.ToInt32(Request.QueryString["Page"]);

else

CurPage = 1;

objPds.CurrentPageIndex = CurPage1);

}

if (!objPds.IsLastPage)

{

hylastpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + objPds.PageCount;

lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);

}

DataList3.DataSource = objPds;

DataList3.DataBind();

}

catch

{

}

} 在后台可以实现图片信息的添加、修改和上传图片等功能的操作。 上传图片界面运行效果如图5-7所示:

35

图5-7 上传图片

主要实现代码如下:

protected void Button1_Click(object sender, EventArgs e) {

string res;

upload up = new upload();

res = up.Up(file1, "../UpLoadImage/");

this.Label1.Visible = true;

this.Label1.Text = up.Resup[Convert.ToInt32(res)];

this.pic.Text = up.s;

Image1.ImageUrl = "../UpLoadImage/" + pic.Text;

}

protected void btnAdd_Click(object sender, EventArgs e)

{

string imagePath = pic.Text;

int AlbumId = int.Parse(DropDownList1.SelectedValue);

string AlbumName = DropDownList1.SelectedItem.Text;

string ds = this.txtds.Text;

data.RunSql("insert into Pic(imagePath,AlbumId,AlbumName,ds)values('"+imagePath+"',"+AlbumId+",'"+AlbumName+"','"+ds+"')");

Alert.AlertAndRedirect("添加成功继续上传", "UpLoadPic.aspx"); }

36

5.5背景音乐的实现

背景音乐管理模块包含两个方面——在后台添加背景音乐的功能和在前台读取背景音乐并且播放的功能。

博主进入后台后可以电击背景音乐设置按钮选定背景音乐,然后上传到数据库中,这样便成功实现了设置背景音乐。

背景音乐设置效果如图5-8所示:

图5-8 背景音乐设置

主要实现代码如下:

protected void Button3_Click(object sender, EventArgs e)

{

string res;

upload up = new upload();

res = up.Up(file1, "../UserMusic/");

this.Label1.Visible = true;

this.Label1.Text = up.Resup[Convert.ToInt32(res)];

this.pic.Text = up.s;

}

protected void Button4_Click(object sender, EventArgs e)

{

string sql = "update Music set MusicPath='" + pic.Text + "' ";

data.RunSql(sql);//将音乐和说明信息上传数据库

Alert.AlertAndRedirect("上传背景音乐成功", "SetMusic.aspx");

} 这样数据库中便以存储了背景音乐的路径和名称,在前台登陆后便可以采用微软自带的音乐播放器来自动加载和播放背景音乐。

背景音乐的主要代码如下:

37

width="260">

38

5.6日历模块的实现

为了便与检索文章,我们在博客中加入了日历模块,用户可以点击日历模块上的日期便能够直接查询该日期当天所发布的所有日志信息。其原理是在选择日期后系统会把所选择的日期值传到文章页面,通过检索将结果显示到页面中。

日历效果如图5-9所示:

图5-9 日历效果

主要实现代码如下:

39

protected void Calendar1_SelectionChanged(object sender, EventArgs e)

{

Response.Redirect("CalendarArticleList.aspx?addtime=" + Calendar1.SelectedDate.ToShortDateString()); }

DataSet ds = new DataSet();

string sql = "select * from Article where Addtime = '" + Request.QueryString["addtime"].ToString() + "'";

ds = data.GetDs(sql, "Article"); 经过一段时间的实际测试证明,该博客网站系统有着较高的稳定性,其操作简单,功能齐全,所采用的技术成熟并且有很好的发展预期,故本设计基本达到预期。

由于自身的实践水平不足,导致在后期调试中花费较多时间,因而时间比较仓促,很多地方不够完善。比如其网站界面不够美观,对于一个网站来说,网站的页面是用户第一个看到的方面,其给用户的印象对整个网站来说是至关重要的。

对于一个访问量较大的网站来说缓存技术的应用也很重要,当网速较慢或者同时在线用户数量很大的时候采用缓存技术可以有效的保证用户的体验。并且本系统由于没有采用Ajax技术,导致在后台添加动态信息的时候需要刷新,这也影响到了用户的体验。凭借对ASP.NET有效的发挥,以VS2008与SQL2005为平台进行开发。从多方面说明了基于DotNet的个人博客网站的设计与实现的可行性。本博客系统的的搜索功能比较简单,仅能够按照日志的类别和日期来搜索,在本次设计的编程阶段,由于之前所写过的代码量不多,编程经验不足,导致容易出现问题。比如命名空间的错误,语法结构的错误,支持的浏览器的错误等问题。在很多细节的地方出现的错误往往导致整个程序无法运行,因此养成良好的编程习惯是至关重要的。只有通过不断的实践才能提高实际操作的水平,只有不断学习成功的案例才能发现自身的不知。尽管有很多不尽如人意的地方,但是总体来说,所预期的功能基本达到了实现,设计之初的目标已经达成。 40 基于Asp.Net的个人博客网站的设计与实现

第六章 总结

经过近三个月的努力,终于完成了这项程序设计及论文的撰写。设计成品能够符合我的设计初衷,即为特定年龄层用户以及博客初次使用者编写一款简单方便的个人博客系统。

本系统所实现的具体目标如下:

1、界面简洁、操作方便:使用完全控件式的页面布局,上用户在使用博客时更加简单方便;用户在使用博客的一些功能时只需按流程点击鼠标即可,不存在复杂的操作功能,实现博客易操作的目标;系统风格朴实简单,避免因花俏缭乱给人以不实之感。

2、即时可见:对博客进行的操作,包括发布、修改、删除等,一旦操作成功将立该在系统的相应位置出现,实现系统消息的提交与发表之间的零时差性。

3、功能完善:本系统包含一般博客系统所具备的三个模块:一般用户浏览、注册用户操作、管理员管理。不仅具备每个博客都有的写日志、上传照片、回复留言、修改信息等模块,甚至后台管理员可以对管理系统注册用户,对用户发布的日志、照片、视频进行审核,违反发布原则的可以立刻进行删除。

4、动态管理:能够动态的完成对数据库作息的存储、搜索、修改等操作,实现对系统的动态管理。

在查阅了大量的书籍资料后,将书本上的理论知识同我制定的基本目标与功能想结合,设计出一套理想的实施方案。这样不但将以前所学过的知识进行了巩固,而且为今后从事软件开发工作做好准备。

本系统的界面采用简洁清爽的风格,系统功能让人一目了然,操作简单易上手。在系统功能实现方面主要使用ASP.NET、SQL Server 2005 数据库等开发技术。在设计早期由于对一些知识有些欠缺,在老师的帮助下参考有关书籍、解答相关疑问、纠正设计错误等,使我能够顺利的完成程序的设计。

经过这几个月的学习,我现在已经基本掌握了ASP.NET、SQL Server 200

5、C#等网站开发技术,完成了从入门到运用的阶段跨越。除此之外,在程序设计过程中我还学会了做事要态度严谨、心思细腻,不然在过程中出现任何一个微小的错误都可能造成最后失败的结果。

由于时间和能力有所限,本系统必然不是完美的,程序和论文都存在不足之处。我今后将会更加努力学习软件开发方面的知识,争取将这个设计尽可能的改进完善。

41

参考文献

[1]Roger S.Preman.软件工程实践者的研究方法(英文版第4版)[M].机械工业出版社.1999.[2]American Microsoft.Microsoft SQL Server 2000 数据库编程(第一版)[M].北京:希望电子出版社.2001.[3]李海龙.SQL Server 2000 图解教程(第一版)[M].北京:希望电子出版社.2001.[4]李香敏.SQL Server 2000 编程员指南(第一版)[M]..北京:希望电子出版社.2000.[5]Michael Lee Rick Sawtell.MCSE:SQL Server Administration 考试指南(英文原版)[M].电子工业出版社.1999.[6]JD UIlman and JWidom.A first course in databasr systems[M].北京:清华大学出版社.1997.[7]Andrew.M.Fedorchek.SQL Server核心技术精解.中国水利水电出版社.2000.[8]Steve Adrien Deluca .SQL Server 7性能优化[M].机械工业出版社.2000.[9]范盛荣.Visual C#2008控件使用范例详解[M].北京:清华大学出版社.2009.[10]黄国平.使用开发参考大全 C#[M].电子工业出版社.2008.[11]沈士根.Web程序设计——ASP.NET实用网站开发[M].北京:清华大学出版社.2009.[12]刘乃丽.精通ASP.NET 2.0+SQL Sever 2000 项目开发[M].北京:人民邮电出版社.2007.[13]Hewardt.Advanced dot NET Debugging.[M].Addison-Wesley.2010.[14]郭兴峰.ASP.NET 动态网站开发基础教程(C#篇)[M].清华大学出版社.2006 [15]陈惠贞.陈俊荣.ASP.NET程序设计[M].机械工业出版社.2006.

42

致谢

在毕业设计期间,老师们认真负责的工作态度、客观严谨的治学精神、深厚扎实的理论知识和为人师表的道德风范都给我留下了深刻的印象,这些都是值得我用一生学习的宝贵财富。

在本次毕业设计的过程中,我巩固了大学中所学的理论知识,提高了时间能力,通过XX老师的悉心指导我成功的将自己所学的理论知识同实际需要有机结合起来,在完成设计的过程中我独立调研,全面分析,系统的灵活的运用理论知识解决了很多实际问题,并且在这个过程中发现自身的不足,从而使自己的整体理论水平进一步提高。与此同时,老师们严谨的治学精神,认真的工作态度也深深的感染了我,我将在今后的工作学习中以此为楷模不断进取。

在此,我向给予了我巨大帮助的各位老师们和同学们致以深深的感谢与敬意,在你们的帮助下我才能取得今天的成绩。与此同时,谨向审稿的老师们致以衷心的感谢!

43

个人博客的设计与实现——开题报告

基于JSP的个人博客系统设计与实现[开题报告]

asp个人博客系统实现毕业论文

物流网站设计与实现毕业论文答辩演讲稿

NBA全明星网站的设计与实现_1401191927503703

《建立个人博客》教学设计

《管理个人博客》教学设计

设计与实现

设计与实现

个人毕业设计作品DEMO设计与实现

个人博客网站的设计与实现
《个人博客网站的设计与实现.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档