ASP.NET个人博客系统毕业设计论文.doc_第1页
ASP.NET个人博客系统毕业设计论文.doc_第2页
ASP.NET个人博客系统毕业设计论文.doc_第3页
ASP.NET个人博客系统毕业设计论文.doc_第4页
ASP.NET个人博客系统毕业设计论文.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆电子工程职业学院09级毕业报告毕业设计(论文)课题:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx学生:李 兵 系部: 软件工程系班级:软件091班 学号:2009005755指导教师: 项 刚装订交卷日期:2011年4月5日毕业设计成绩评定表指导教师评语(包含学生在毕业实习期间的表现):成绩(平时成绩): 指导教师签名:年 月 日评阅教师评语:成绩(评阅成绩): 评阅教师签名:年 月 日答辩情况记录:(不安排答辩的学生此表不填)答辩成绩:答辩委员会主任(或答辩教师小组组长)签名:年 月 日总评成绩:毕业设计任务书一、设计课题:用asp.net设计一个博客二、设计目的:为了能更好的在网络加与别人交流分享.本课题sql server2005数据库为后台、asp为前台,设计一个个人博客。通过本课题的设计,使得交流更为方便。三、设计要求 本课题设计要求如下:1、用户登录对用户的登录进行权限设置2、日志模块本模块实现的功能为记录文章,查看文章3、相册模块本模块实现的功能为上传图片.4、留言板本模块实现的功能为删除,查看好友留言.5、后台登陆四、毕业设计报告要求:毕业设计报告由以下几部分组成:1、标题封面:标题要求简洁、确切、鲜明。2、毕业设计成绩评定记录表(教师等填写)3、毕业设计任务书(指导教师提供)4、目录5、正文6、附录五、设计进度计划:12月15日-12月25日 查阅资料、系统功能分析、模块设计、数据库设计1月 1日- 2月25日 代码设计、调试3月 1日- 3月25月 撰写毕业设计报告 4月 初 毕业设计答辨(如有变动,另行通知)六、毕业答辨需提交的材料:1、完整的系统代码(光盘或磁盘)2、毕业设计报告学 生:李兵 指导教师签名: 2011年12月13日重庆电子工程职业学院09级毕业报告目 录前 言61 绪论81.1 .net技术简介81.2 blog相关介绍101.3 系统开发背景141.4 系统开发意义151.5 系统开发目标151.6 开发平台、运行环境、测试实施162 需求分析182.1 系统构成182.1.1 系统组成及功能182.1.2 系统实现方案242.2 e-r关系242.3 数据存储282.4 逻辑分析282.4.1 数据流图282.4.2 数据字典302.4.3 系统边界312.5 系统实现的关键技术313 概要设计323.1 设计原理323.2 接口设计323.3 数据库设计333.3.1 设计思路与步骤333.3.2 结构设计333.4 界面设计364 详细设计374.1 系统流程图375 运行结果及调试分析425.1 主要运行效果425.2 调试分析455.3 修改日志与事件记录466 设计总结47谢 辞48参考文献49前 言在本次设计中,采用.net技术进行web开发(c#开发asp。net程序),我最大的感触也是在这个方面,设计思路、实现方法、解决步骤等等,这与以往单独的设计windows应用程序、web程序一样。唯一不同的是采用c#开发asp.net程序的确是一个跨越,是一种新鲜的体验,而不是之前单一的开发windows程序(c+),单一的开发web程序(asp)那样,当然也由于这个跨越,需要自己不但要有后台win form编码的知识,也要有web form程序开发的基础所以在很大程度上,我觉得本次的设计还算是比较顺手,虽然有不少新技术、新难题、新思路,但在点滴设计思考中,都逐步解决了。blog的新兴不是很久,但是比较流行、实用,所以开发此blog系统让我对本次设计很有兴趣,在绝大部分的时间里,我没有觉得枯燥,更没有做不下去的感觉,反倒是兴趣倍增,难题、不解我都将其看成为学习的目标、研究的对象。从cookie加密、正则的应用、urlrewrite的实现、ubb的思考到文件管理的编制、访问分析的思考、站点日志的另类实现等等,在这些过程中,设计的思路是逐渐明了,直至每一个问题的解决。事实上,在解决这些问题时,也没有那么容易,但是我觉得能学会解决这些问题便是学习的第一步,也是个人进步所必需经历的。本次设计,不能说是时间仓促,但即便如此,系统不足之处也是在所难免的,在每个阶段,我都会发现这样或那样的不足,错误、需要优化、共用性、和开发环境的兼容问题等等。这在设计的过程中,都及时的记录并一一解决了。当然,我也曾将系统放到网上进行测试,在这里非常感谢曾帮我测试的朋友们,非常感谢他们提出的建议和提交的bug。如果你在应用中发现系统bug,或是你有更好的建议,非常欢迎能和我联系,在此谢过!2012年4月5日1 绪论.net技术简介(1)什么是microsoft .netmicrosoft .net是microsoft的xml web服务平台。.net包含了建立和运行基于xml的软件所需要的全部部件。microsoft .net解决了下面这些当今软件开发中的一些核心问题:l 互操作性(interoperability)、集成性(integration)和应用程序的可扩展性(extensibility)太难实现而且代价很高。microsoft .net依靠xml(一个由world wide web consortium(w3c)管理的开放标准)消除了数据共享和软件集成的障碍。l 无数具有相当竞争力的私有软件技术使得软件的集成变得非常复杂。而microsoft .net建立在一个开放的标准上,它包含了所有编程语言。l 当终端用户使用软件时,他们总觉得不够简便。有时甚至感到很沮丧,因为他们无法在程序之间方便地共享数据或是无法对能访问的数据进行操作。xml使数据交换变得容易了,并且.net软件可以使得用户只要得到数据就能对它们进行操作。l 终端用户们在使用web的时候,无法对自己的个人信息和数据进行控制,这导致了个人隐私和安全泄漏问题。而microsoft .net提供了一套服务,使用户可以管理他们的个人信息,并且控制对这些信息的访问。l .com公司和web站点开发者们很难为用户们提供足够的有价值的数据,至少有一部分原因是由于他们的应用程序和服务无法很好地和其他程序和服务合作,只是一个不和外界连接的信息孤岛。而microsoft .net的设计宗旨就是为了使来自于多个站点和公司的数据或服务能够整合起来。如同ms-dos和windows一样,.net将大大改变我们的计算领域。ms-dos使得个人电脑在商业和家庭中广为接受;windows增强了用户的图形界面,使其成为首选的与软件交互方式,最终使得图形界面成为个人电脑的主流。而.net则要把xml web服务变成日后的主流计算模式。xml web服务是建立在xml数据交换基础上的软件模型,它帮助应用程序、服务和设备一起工作。用xml进行共享的数据,彼此之间独立,但同时又能够松耦合地连接到一个执行某特定任务的合作组。(2).net战略microsoft .net程序员们设计编写的是xml web服务,而不是服务器或客户端的独立应用程序。他们把这些服务组合成松耦合,相互协作的软件群,xml web服务之间使用xml messaging进行通讯。为了做到这一点,程序员需要:l 一个软件平台,用于建立一种新的完整的个人用户经验l 一个编程模型和工具,用以建立和整合xml web服务l 一套能为应用程序和服务提供基础的可编程的服务microsoft的.net战略就瞄准了这三点。(3).net的优点microsoft .net为程序员、商业领导、it部门以及消费者带来了很多好处。相对来说,程序员是比较缺乏的,雇用的费用也很高。然而microsoft .net使编程工作变得更加容易,开发投资的回报率也趋最大化。开发者们可以创建能重用的xml web服务,而不再是一个单一的程序;这些web服务易于编程和调试,彼此之间相互独立,通过xml message通讯及合作。所以对某一个服务的修改不会影响到其他的服务。由于xml web服务可以被很多.net体验共同使用,所以对一个服务模块的有效更新,也即更新了所有使用这个模块的.net体验。任何编程语言都可以用来编写xml web服务(如:c、c+、visual basic、cobol、perl、python和java等),所以你的程序员可以选择他们最熟悉的语言来编程,这大大提高了开发效率。更值得一体的是,他们并没有因使用了不同的语言而失去服务或跨组件的调试能力。总之,microsoft .net是microsoft的xml web服务的平台。这是下一代的internet计算模型,各个xml web服务之间彼此是松耦合的,通过xml进行通讯,协同完成某一特定的任务。microsoft .net战略提供了一个用以建立新.net体验的软件平台、一个编程模型、用以建立和整合xml web服务的工具以及一套可编程的web接口。blog相关介绍虽然现在人们更多的是在谈论blog的人文氛围、blog的商业经营价值,但从这种新的网络文化的演变过程中可以看到,是blog技术的出现使得每个人可以零成本、零维护地创建自己的网络媒体,是blog站点所形成的网状结构促成了不同于以往社区的blog文化。blog技术缔造了“博客”文化。就像人类发展史中,工具成为每个历史时期的象征一样,各种文化的诞生恰恰是由于工具本身的进步。不经意间,blog竟如雨后春笋般冒出来,博得了越来越多网民的欢心,并引发了各种新的应用热潮。它最大的吸引力在于,只要你会发邮件,就可以轻松创建自己的网络媒体。(1)blog的起源一直以来,想弄清楚blog的起源问题,想弄清楚这个东西的来龙去脉,可是在网上搜索了一段时间,阅读了一些文章后,才知道有很多种说法,一时我也弄不清楚该相信谁的,只能将几种说法,列举一二。说法一:1997年,blog 这个词汇被 john barger 创造出来,1999年之后它得到了发展迅速,这还要得益于麦特德拉吉的一则有关克林顿和一位白宫实习生暧昧关系的报道,这则报道引起的各种思考到现在也没有完全停止。德拉吉报道(drudge report)其中的一个影响是人们开始思考个人网络出版的可能性及其可能对未来生活造成的影响。同年,美国一家小软件公司 pyra 的三个创始人为了开发一个复杂的“群件”,编写了一个小软件,目的是便于交流想法和团队协作。使用的过程中,他们发现这个小软件对普通人也很有用,于是他们共享了这个软件。这就是 blog 的起源,这个公司就是后来鼎鼎大名的b 的前身。blog 提供了人们一个实践的机会,操作简单,个人几乎不需要任何技术就能轻松上阵。简单易用而且完全免费,降低了进入成本,所以从1999年初到2002年底,blogger 人数从近百人壮大到近百万。 说法二:一对1977年出生的小夫妻,一个无事可做,不甘寂寞写起了网络日志;另一个找不到体面工作,就在家编编电脑程序。没想到,他们从自家卧室里捣腾出的小公司竟然引发了网络新兴势力博客网站的革命,如今更成为全球最大的商业化blog服务提供商。而这夫妻俩不仅年纪轻轻就当起了富翁,而且成为博客发展史上不可取代的人物。本特洛特和梅娜特洛特都出生在1977年,两人生日仅差6天,这就是相隔六天公司名字的来历。创建这个公司后,特洛特夫妇燃起了互联网博客(英文为blog,即网络日志)网站的熊熊火焰,在blog技术革新史上奠定了行业鼻祖的地位。如今,这家位于旧金山的公司已成为全球最大的商业化blog服务提供商。如今,相隔六天已拥有70多名员工、700万用户,其中仅付费用户就达100万。特洛特夫妇已经成为博客领域最强大的夫妻档。2001年初,梅娜厌倦了互联网泡沫后的无聊生活,开始建立自己的博客网站。梅娜说:当时,我想我已不可能在现实世界中出名了,但或许可以在网络世界出出名。梅娜所写的个人网络日志赢得了一批拥趸。在日志上,她大谈少女情怀、成长点滴,还大胆表露的喜好,比如她不喜欢有人在公共场合剪指甲,比如她对1972年一部灾难片的迷恋等。梅娜在拼命写个人日志的时候,丈夫本却迟迟未找到一份体面的电脑程序师工作。失意的本开始编一个程序,这个程序就是后来针对个人用户的blog发布软件movable type(简称mt),这也是目前最为流行的个人blog发布系统。2001年9月,本特洛特刚把mt软件放到网上一个小时,就有100个人下载。本和梅娜觉得这是个好机会,就干脆把自家的卧室变成了创业室,成立了相隔六天公司。一开始,他们只是希望能赚点钱维持日常花销,但是没想到财源滚滚而来。硅谷风险资本家乔伊伊托看到了商机,很快就找上门来,表示愿意进行风险投资。最终,特洛特夫妇把公司的部分股份以1150万美元的价格卖给了伊托和其他风险资本家。如今,从卧室两台电脑起家的这家小公司已经成为blog业的一条大鱼。最近,google和微软这两个大玩家各自推出了b服务和msnspace服务,为的就是跟相隔六天这个最强有力的竞争对手相抗衡。2004年被称为博客年,而2004年个人电脑杂志评出的五个年度人物中,两个就是特洛特夫妇。(2)blog展望总体展望:blog与bbs,及网络论坛内的留言相比更能有机的组织个人的言论并与他人自由的交流,实际上它的个性化更强;倒是和个人网站有些接近,但是用户友好性要好得多,并且得益于一些新兴技术的支持,可能拥有更加灿烂的未来。 从前的互联网使用html描述信息,大家彼此是孤立的。blog使用基于xml的rss内容描述协议,使得大海中的孤岛彼此可以识别和交流,相信慢慢的、blog会促进互联网络的改进,但是blog本身将会走向何处,窃以为很难预测。大部分人都认为博客将继续受到大众欢迎,而其未来的发展却是不确定的。hunter断言,由于很多网站都增加了博客功能,同时新闻站点亦变得“博客化”,博客将会一直存在。有两点是可以肯定的:博客与传统媒体的竞争日趋激烈;博客的新用法将会不断浮现。教育blog的展望:任何一种新技术、新产品、新思想的创新与扩散对社会的发展都起着重要的推进作用,因此,人们十分关注创新扩散规律的研究。 1995年,美国新墨西哥大学埃弗雷特.罗杰斯教授研究了3000多个有关创新扩散的案例,发表了创新扩散一书,提出了著名的创新扩散s-曲线理论(s-shaped curve)。罗杰斯认为,创新的扩散总是一开始比较慢,然后当采用者达到一定数量(即“临界数量”)后,扩散过程突然加快(即起飞阶段take-off),这个过程一直延续,直到系统中有可能采纳创新的人大部分都已采纳创新,到达饱和点,扩散速度又逐渐放慢,采纳创新者的数量随时间而呈现出s形的变化轨迹。罗杰斯把创新的采用者分为革新者、早期采用者、早期追随者、晚期追随者和落后者等几个发展阶段。罗杰斯认为,创新扩散总是借助一定的社会进行的,在创新向社会推广和扩散的过程中,信息技术能够有效地提供相关的知识和信息,但在说服人们接受和使用创新方面,人际交流则显得更为直接、有效。因此,创新推广的最佳途径是将信息技术和人际传播结合起来加以应用。系统开发背景随着互联网技术的日趋成熟,各种信息化实体不断应运而生并得到了快速发展,从单一的模式到现在复杂的服务端、客户端的交互,不得不令人惊叹和喜悦!人们在充分享受互联网带来的各种便利时,一种新型的网络实体也日渐地出现在人们的视野,那就是当前网络界较为流行的实体之一博客(blog),当然这绝不仅仅是一种单向的发布系统,它有着极其出色的交流功能,在以往的几种网络交流方式中,bbs过于公共化,而email和即时通信工具im则有很明显的私人性质,blog的出现则将公共性和私人性很好地结合起来。它代表着一个新型媒体时代的到来,而且作为专业领域的知识传播模式,它有可能成为该领域最具影响力的”人物”之一;另一方面,它也将推动各种“精神共同体”的形成,打破传统媒体和传统交往时间和空间上的限制、社会精英独霸话语权的局面,且极大地增加个人的社会资本,博客作为一种快捷方便的信息交换方式,将和那些不久还会出现的更多的有效的技术手段一起,成为构建新社会的强劲动力。因此,基于blog的多种优势和未来的发展趋势,所以有必要设计这样的一个blog系统。虽然目前国内众多blog系统已经诞生,并得到充分的发展,大到多用户、功能强大、复杂性的系统,小到网络日记本形式的“blog”,通过对该系统的开发,以此加深对blog的认识、研究简单blog系统开发途径和应用方法,并为以后设计复杂blog系统打下坚实的基础。本次设计所开发的blog系统是以vs2003 + sql sever 2000为编程环境,以.net框架中的c#.net来实现其制作和开发过程(ie6.0)。在目前多数的blog系统中,.net原型的系统并不是很多,而多以asp等为主流,这在很大程度上使个人的设计减少了一定的参考性,此外虽然.net的发展时间并不是很久,但.net的发展趋势也是显而易见的,当然这就要谈到.net的优势所在,这里不在追述。通过对blog系统进行可行性分析、需求分析和设计逐步将一个blog系统的开发过程呈现出来,当然也没有刻意追求专业性和商品化软件的华丽包装,而是本着简单、实用、性能优化的原则。系统开发意义从blog系统的诸多媒体优势可以看出,设计这样一个博客(blog)系统;一方面,能为人们提高写作水平的提供“基地”,为爱好写作的人们提供了一个提高写作水平的好园地,成为大众文字表达的好场所,博客写作比较自由随意,可以不断的更改增新,有利于写作水平的快速提高和思想敏锐性的进一步增强。也能成为行业专业人才的交流场所,为一些各行业的专业技术人员提供一个技术交流平台,诸如:it技术、教育技术、管理技术等一些专业性的知识,可以通过博客得到相互学习,取长补短,从而解决疑难之谜。另一方面,使得意见表达也更完整、更系统,无论是对问者还是答者,都十分方便,不像论坛那样大海捞针,博客相对更有秩序一些,此外有利于规范网上言论秩序,在个人博客里,多数人乐于亮明自己的身份。他们一般都会珍惜机会,责任感很强,从容不迫,不急于慌不择言,更重视自己“水平”的体现,因而博客里大大减少了一些人们所谓的垃圾文字,从而有利于维护汉语言文字的纯洁性和规范化,它还能为企业和求职者提供了一个伯乐选千里马的职场,博客为他们各自所需创造了一个高效的网络职场。企业们要找适合自己的人才难度就大减少。而求职者也不用花太多的时间在招聘现场的人群中拥挤了,随着演变,博客的形式会越来越多样性。系统开发目标通过利用c#进行asp.net、ado.net的应用程序开发,使用code behind方式来实现,使前台界面和后台代码分离,通过利用类的继承、重用,以及函数的公用来尽量精简代码,此外,注意系统以后的就阅读性和可维护性。在开发中,不去一味的使用web服务组件,能巧妙的结合其他方式来实现,将不适合或没必要在服务端运行的放至客户端完成,在一定程度上减少服务端资源的损耗。提高系统的整体性能。在功能实现上,完成目前存在的blog系统大部分的功能,提供良好的用户界面(方便交互操作),并能在此基础上尽可能的设计出较为新颖和更实用的功能。大致主要实现以下几点:q 便捷后台文件添加、编辑、复制、剪切,包括目录操作、文件大小、日期显示等q 实现日志的发表、浏览、编辑、删除等q 实现像册管理q 实现日志搜索(按标题、内容、评论等)q 实现站点链接开发平台、运行环境、测试实施开发平台:microsoft .net framework 1.1visual studio 2003.net(c#)microsoft sqlserver 2000windows 2000+iis5.0+ie6.0运行环境:windows 2003 / 2000 / xp 安装 .net framework 1.1 或 visual studio 2003.net 安装iis5.0以上版本数据库microsoft sqlserver 2000 以上版本 适合以上环境本系统可正常运行实现方式:b/s模式,本地运行、远程访问皆可如果你在前面已经拥有了本系统的运行平台,如上所要的配置后,则可继续通过以下步骤来运行本系统。2 需求分析系统构成1.1.1 系统组成及功能 本系统由以下多个子模块组成:用户登录、用户注册、页头和页尾的处理模块(用户控件)、管理员后台管理(包括blog配置、分类管理、站点文件在线编辑与管理、会员管理、blog表情管理、日志中自动识别的关键字管理、友情链接管理、友情链接验证、用户收藏的url、服务器的相关信息、骂人词语的管理等)、blog编辑模块、友情链接提交与显示模块、blog发表模块、rss订阅模块(1.0&2.0)、blog浏览模块、独立ip访问统计分析模块、验证码实现模块、blog评论列表模块、blog首页处理模块、注册用户url收藏模块(提交、显示)、会员信息显示模块(单用户、多用户、信息编辑)、站点信息搜索模块(google站内、系统本身)、文件上传模块、公用导航模块(用户控件)、公用类模块、全局变量和在线用户的记录、开启站点模块、工具模块等,各模块的详细功能如下所述:(3)页面头部处理模块该模块主要实现的是从数据库中读出blog分类信息列表(分类由管理员在后台设定),统计用户访问信息(ip、时间、来源url、浏览器、操作系统、屏幕宽度、语言、cookie、入口地址,搜索关键字等),同时获得全局使用的总访问人数,当然这些操作也可以在global里来完成,效果是一样的,因为我的每个页面都包含了页面头部,但是当有不包含页面头部时将不会统计分析,只需要把相关实现写到global里即可(有时间再看看)。在统计访问者的信息时,实现了防止刷新的功能,同一个ip,一定时间内将不会重新统计,同时如果支持穿过代理获得ip的话,统计的是真实的ip,而不是代理的ip。(4)页尾处理模块该部分主要解 决的是系统的版权信息,页面执行时间的显示等,比较简单。(5)管理员后台管理模块该模块涉及的东西比较多,用于实现对系统数据和相关信息的管理和配置等。具体描述如下:q blog系统的配置:主要是完成站点标题的配置,站点url和首页每页显示的日志数,这些操作不是在数据库里来完成的,也没有这个必要因为取一个数,就要查询数据库,我放到了站点配置文件里web.config里,后台采用相关方法,修改该xml类型的文档,从而达到修改站点配置的目的,不过每次使用该选项时,系统将会从新执行。同时也支持修改用户上传文件大小和时间的限制、数据库连接配置等设置,也可配置管理员的邮件地址,以便作为批处理发送系统邮件的帐户。q 站点文件管理:主要实现的是blog系统文件的在线管理(增加、删除、修改、移动、重命名等,对目录的操作同样),可查看附件(文件信息、上传时间、文件类型等),不同文件显示不同图标,目录也可显示目录占用空间大小,作为管理用户上传的附件来说还是有必要的且比较实用,唯一不足的是,当系统文件较多时,性能会有所影响,便历目录需要时间。当然这个可不是木马_,它的执行需要系统给予一定的权限。q 友情链接管理:主要实现的是对用户提交的链接进行管理,包括链接名称、url、图片(相对路径、绝对路径)、是否首页显示,同时链接图片可预览,和上面不同的是,此处操作支持批处理,主要是首页显示,管理员可选中头部的首页显示,从而将下面所有的checkbox选中,再执行批处理设定,当然,可对特定选择的多条记录同样处理,此外增加了省略显示的功能,就是当某条记录的长度过长时,截取了该记录的前面固定长度的串,加”显示出来。同时在增加友情链接的时,可增加其链接名称、url、图片、排序等信息,当然也严格检查了提交的信息。另一方面与上同,分页、确认删除q 友情链接验证管理:主要实现的是对用户提交的友情链接进行验证,显示需验证链接,是否首页已显示(当然默认是不会的),没通过验证的,将不会显示出来;不通过首页显示验证的,将不会在首页显示,在对验证、删除进行处理时,也采用批处理的操作,这和上面有所不同,实现了全部验证、全部删除的操作。q 服务器的相关信息:这是默认显示的,在登陆后台时,主要显示当前服务器的相关信息,如服务器时间、域名、ip、端口、服务器iis版本、脚本解释引擎、服务器空间占用情况、站点的物理路径、服务器的名称、脚本超时、服务器开机后执行的时间、服务器cpu的数量、cpu的类型、服务器操作系统、.net framework版本、user_agent信息、常用组件支持情况、自定义组件查询、1000万次循环检测执行时间等,能给管理员对服务器的一些情况有一点了解。 (6) blog日志发表模块该模块主要完成了blog日志提交的功能,也是blog系统中比较重要的一个环节了,同时该部分处理的也比较复杂,在这里我采用了两种模式(ubb、html)在线进行编辑、提交,用户可根据自己的需要进行选择互换使用,并查看帮助信息,当然这样做并不是多余的,因为我发现有的时候纯粹的使用单一的模式有一定的不方便。在这两种模式下,都可以插入表情图片、识别关键字、识别超级链接、禁止ubb代码、禁止表情、禁止图片等操作,在ubb编辑器方面,完成了以下的功能支持: 加粗字体、斜体字、下划线字体、删除线字体、上标字、下标字、居中显示、飞行文字、滚动文字、闪光文字、阴影文字、超级链接、email、图片、flash、shockwave、realplayer媒体、windows media媒体、quicktime媒体、winmap媒体、代码片段、引用、项目符号、水平线、文件下载、网页框架、字体、字体大小、字体颜色、段落样式等。(9)blog评论列表显示模块该模块主要完成用户评论信息的汇总,包括个人评论的汇总、所有用户评论的汇总以及用户搜索评论的汇总三个子部分,显示了评论的作者、评论的日期、评论的内容、是否为隐藏的日志(是则隐藏评论)、同时管理员可删除评论、查看ip信息。考虑到多条评论记录时,采用了分页存储过程来完成分页,并写了简单的分页算法代码(有一定的规律性),并支持自定义页面跳转。在分页处理时,作为url参数来传递,同时也对评论内容进行ubb或html转换,对评论的表情、关键字、超级链接、禁止图片和ubb等进行了同上的处理。(10)首页处理模块由于该页面由三部分组成,页头、页尾、左边导航、主要显示日志。这里主要完成的是显示系统的所有日志,每页日志的条数由管理员在config里定义,对于日志的分页显示也同样采用存储过程方式进行,并支持自定义跳转,采用视图查询,增强了系统的安全性。显示时,显示日志作者、标题、天气、发表日期、来源、日志摘要、所属分类、评论总数、引用数、查看次数,以及是否置顶,是否为隐藏日志,实际上这个处理相对比较简单,因为多由用户控件组成,在这些控件里已完成了部分的内容。 (12)友情链接提交与显示模块该模块实现的是友情链接的提交、当前友情链接显示等,包括图片链接、文字链接,图片限制以88*33象素为准,防止影响界面,至于显示出来,这个比较简单,图片和文字的datalist进行数据绑定就可以了,当有用户提交友情链接申请时,将对提交信息进行检查,提交成功后,将提示等待管理员验证才可以显示首页或本页。其他部分调用页头、页尾、公用导航控件。 (18)作品展示模块该部分主要完成在用户发表日志、发表评论时对上传附件(包括图片、ubb的中的所有视频、文件等)的处理,当然上传附件是需要管理员以上的权限的,这在该页面也通过session来检测的,当然采用session并不是不安全,session的数据是从加密的 cookie读到的,所以不用担心不安全。当用户没有该权限时,将会给出提示,当文件上传成功时,将给出提示,并显示给文件的类型(如image/jpeg)、大小、上传的目录,此外对上传文件大小的限制,我设置为2m(对于检测文件大小,我想是不能放到服务端进行的,如果文件太大的话,所以在客户端进行检测,采用了js,fso判断不是好使,暂时没完善 ),超时时间为120s。当选择上传文件为空时,也将给出提示,如果文件不为空且大小符合要求,将会检查文件类型是否合法,同通过定义一串数组,存放不可上传的文件类型,比如html、asp、asa、cgi、hta、exe、vbs、dll等,上传此类型的将提示非法,如果是合法文件,将会上传到系统目录下的upload里,不存在将自动创建该目录,同时创建年月日格式的文件夹,不存在将自动创建,存放当前文件,同时文件将重新命名为“时分秒”的格式,然后开始上传,上传成功后,将根据文件类型,增加代码到评论或发表日志的文本框,比如是flash文件,则自动添加ubb相同的代码,当然还有图片、其他媒体等类似处理,如果上传的文件类型不能用ubb来显示,则直接设定为普通文件,供下载(添加到父框架),用户点返回后将可再次上传,此外对于多文件上传,也很容易实现,可以动态的根据用户选择上传几个文件而增加上传浏览框,加入到上传集合中即可,上传路径从配置文件里读取。2.1.1 系统实现方案首先,根据系统功能的详细分析,在配置好开发平台、运行环境后,我先从系统的后台开始设计,因为前台数据的显示或管理都需要后台的支持,所以在后台的第一个模块服务器基本信息开始,直至顺序完成整个后台部分(系统设置、分类管理、会员管理、链接管理验证、书签管理、表情、关键字、骂人词语屏蔽管理、文件管理等)。然后在后台支持的基础上,对前台进行顺序开发,日志发表、编辑、日志浏览(评论、分页、注册、内容过滤)、评论搜索、会员信息(整体、个人、编辑)、再到首页总体显示的实现。逐个模块的完成、完善、性能思考等。大多数情况下,不仅仅单一的依靠vs来编写,也是要考虑到手工编写,因此我觉得这样做是最好的解决方案,尤其是对性能的影响,当然在实现方法上,某些地方可能做得不是很好,有待于以后改进!e-r关系(1)总体简化e-r关系图注:以下图为microsoft visio 2003设计完成并导出为jpg图片(photoshop压缩)。图2.1 总体简化e-r关系图图2.2 用户信息管理简化e-r关系图(3)作品管理e-r关系图2.3 作品管理简化e-r关系图(5)友情链接简化e-r关系图2.5 友情链接简化e-r关系图数据存储本系统选择sqlserver做后台数据库,而没有选择access来开发,原因主要有以下几点:access是面向小型的,而sql是面向大型的应用。由于在容量方面,access有极限,所以到了一定极限之后,很容易造成服务器iis假死或者吃光机器内存,而sql则可以完全修复这些问题,而且相对而言sql的数据备份也比较方便,功能强大很多。在速度性能方面前者也比后者逊色许多,如果稍做测试,比如10000条记录,会发现sql可能比access快1020倍。另外,做单层系统可用access,而做两层或多层则用sql。而且在安全性能上讲,sql也还是比较好些,它有针对不同访问用户的权限设置。当然,具体的dbms各有各自己的特性,和优点,例如跨平台性、性能、安全性等。所以适用的行业和范围就有所不同,就比如电信行业来说,一般只会用orcale,db2之类的大型关系型数据库.而中小型企业用ms 的sql sever多一些。所以考虑到系统在以后实际使用中的问题,不能使用access数据库,而选择sqlserver来存储、处理数据很有必要。在使用sqlserver时,针对其特点灵活应用过程、语句等。如果转化为sqlserver也并不是很费时,只是涉及如区别函数、对应字段时要修改,如access的now与sql的getdate()。逻辑分析3.1.1 数据流图用户级简化数据流图:(1)顶层图2.11 用户级数据流图:顶层(2)0层图2.12 用户级数据流图:0层(3)1层图2.13 用户级数据流图:1层4.1.1 数据字典(1)数据流词条描述(2)数据元素词条描述(3)数据文件词条描述(4)加工逻辑词条描述(5)源点及汇(终)点词条描述具体的描述略,数据项、数据流、数据文件、数据元素、加工逻辑等描述和上面流图的设计相对应,比较简单。5.1.1 系统边界该系统边界没有向uml用例图中的的样式表示,下面简要的阐述一下。由于“系统”具有相对性,不同边界的系统其组成不同,目标不同。要求实现的功能也不同。因此,在描述系统时,首先要定义系统边界。让其反映系统在职能、功能方面的边界,系统的可行性研究、总体设计、详细设计、开发和运行均是在这些边界内进行。(1)系统的职能边界 系统的职能边界定义为超级管理员管理范围内的主要功能。(2)系统的功能边界 系统在功能上覆盖日志发表、编码标准、系统异常处理、xml处理(rss)、外部引用、性能优化等,为不同的用户提供所需的信息与管理,并通过系统实现文档存储检索、信息共享。系统实现的关键技术(1)正则表达式:用户匹配或替换文本内容,如ubb、注册验证、特定参数检查多处用(2)存储过程:几乎在每个模块都使用了该方式,当然有的地方使用存储过程是不佳的,不过在这些地方我直接用了sql语句,这里设计的存储过程有复杂的也有简单的,简单查询、更新、插入,还有通过计算、判断、多重语句、分页(3)xml:主要是操作与读取web.config文件和做rss订阅方面用到一点(4)文件处理:后台文件的编辑、处理以及文件信息的查看,服务端空间占用、文件上传等都有用到(5)简单算法与面向对象应用:比较零散(6)webform:asp.net&ado.net技术,主要是综合的应用(7)数据绑定:在操作datagrid等控件时,需要反复的绑定,比如删除、编辑、分页后要重新的绑定,datalist、downlist同样应用(8)控件、组件:datagrid、datalist、用户控件(9)编码安全:cookie实现与加密、参数过滤、密码加密(10)统计分析:简单的数据分析(11)图形图象:验证码的生成和其他动态加载的处理、统计分析(12)sql编码与脚本:各地方实现方式、条件不同,在系统sql脚本和代码皆有(13)html、css、javascript、dreamweaver、photoshop(14)分页技术:包括控件的分页(自定义分页算法)、存储过程分页3 概要设计设计原理根据以上详细的需求分析,可以确立系统核心是对前后台主要部分的分析与概括,而这些概括和分析内容中,对信息是如何表示出来的,以何种形式表现,通过界面形式、数据形式等,下面将对其作简要的阐述。系统前台的主要部分在于日志发表、日志浏览、以及日志编辑等处,用什么样的方式去实现,如何实现?设计前这样的考虑是很有必要,对于其后的设计思路也是至关重要的。首先考虑的是页面的布局处理,这里的主要任务是将web页面合理分割成用于安排文字,图像等各种屏幕元素的区间,当然设计时也是尽可能的做到结构清晰,易于用户操作等特性。其次要考虑的是链接结构,是树状链接结构,还是星状链接结构,是单独的页面实现,还是综合的结构处理也是必需所考虑的,比如简单的登录页,退出部分放到哪里实现?不是在每个页面都处理一下,而是同一页面不同请求,达到公用的效果。其次考虑的是系统的目录,用户控件和正常页面不是要都放在一起,而是分类型的存放到指定的目录下,根据不同的需要,调用不同的控件或其他属性。在考虑以上的几个部分后,主要考虑的是系统功能的实现,同样一个要求,一个分析,用什么样的方式来完成,什么样的方式最好,以及考虑到以后系统的发展与性能影响等,也是设计过程中必要考虑的,反之在以后的设计中,会对之前的设计,倍感不足,而苦于设计失败,没处理好。在考虑系统功能的基础上,就会要考虑其系统局部设计的逻辑结构,根据简要的思考,确立最佳的解决方案,对于其后的编码工作,也都是较为简单的事情了。总之,思想决定实施,思想决定规划。系统后台也可采用和上面简述同样的处理方式,这里不再赘述!接口设计(1)用户接口不同的界面和功能,系统都会有良好的界面提示信息,诸如置顶展开、日历浏览等,以及交互的链接结构。针对urlrewrite的实现,可以由用户自己编辑正则表达式,自定义重写操作。在系统目录下的rewrite.config里。重写后用户可根据设定的重写规则,进行访问、操作、管理等。在提供的系统操作上,用户可以根据提示信息来管理(发表、删除、查看信息、浏览)。另一方面,对不同区域的用户提供服务,没采用不同文化处理,所以没法决定用户喜欢的语言以及使用该语言提交web页面,这个在二次开发的时候,将会完善。(2)外部接口(命令接口、图形接口)支持rss订阅、外部引用同步添加和处理,以及友情链接的串联访问。在后台文件管理处,不仅仅是管理blog文件、附件,站点文件同样可以管理,日志访问统计分析也是如此,可对整个站点访问信息进行简单的分析。只需添加系统函数即可。另外本系统不允许跨站提交信息和注册等。(3)内部接口系统各部分都是有机结合的,而不是孤立存在的,连接关联、函数关联、模块关联、公用关联等等。在存储过程实现中,通过数据库接口联系诸多模块与元素。并采用用户控件来作为各元素间的接口操作。同样的功能部分,采用不同的实现方法、设计思路,接口稍有不同。数据库设计1.1.1 设计思路与步骤q 根据需求分析创建需要的数据表、数据字段,一开始我是通过编写sql语句来完成的,后来工作量比较大,就直接用通过视图模式来建立表、字段,当然在某些方面还是要写脚本的,比如sqlserer里的自增字段等。对于主键、外键的操作,也是通过视图编辑的。当然由于设计时功能的变动或是其他因素的影响,我需要不断的修改数据表。在此过程中,我将前面生成的sql脚本,直接修改完成,而没有再用视图编辑。q 生成sql脚本,包括删除数据库、创建数据库(w_blog)、创建帐户(webwalker)、删除表、创建表(分类列表、评论列表、日志内容列表、访问统计分析列表、用户url收藏列表、blog信息列表、识别关键字的列表、友情链接的列表、blog用户的列表、表情管理的列表、骂人词语列表等)、添加主键(各列表),具体实现请参见sql脚本。q 编写存储过程(用户注册、站点信息配置、blog分类编辑、分类添加、管理员修改用户信息、用户修改自己的信息、表情编辑、表情插入、申请友情链接、管理员更新链接信息、关键字编辑、关键字增加、用户增加自己的url收藏、发表日志、装载骂人词语、用户自身最新发表的日志id、发表日志评论、评论时用户的注册、查询是否存在日志id、删除评论、删除日志同时删除评论、编辑日志时初始内容装入、更新日志内容、统计访问者的信息、查询日志分类信息、更新访问总量、计算今日昨日本月今年和开始统计日期、计算并获得已统计天数、获取更新后的blog信息、删除访问记录的数据并更新统计数据、查询所有评论、通用分页处理函数等),补充sql脚本,建立删除存储过程。q 初始化数据填入,blog信息、管理员、关键字、骂人词语、分类、内容等q 在使用系统时,只需要运行sql脚本即可,当然也可以对原有库还原操作。2.1.1 表结构设计1:管理员表:2.日志信息表:3.像册信息表:4.作品信息表:5留言信息表:6友情链接信息表:界面设计 首先是准备图片和其他素材资源,设计系统需要的简单图片,当然由于时间的原因,我没花太多的时间去做这个,主要是弄了下css,包括定义服务端的一些元件属性(image,asp标签是我想在做设计时直接预览所用的,之后可以删除这个对编码的前期工作开发效率影响很大,个人的感觉),还有就是我先用vs建立框架,然后用dream weaver来进行页面布局,只是做总体的布局,不是反复的切换使用,因为vs里设计表格甚是麻烦,flow layout的模式几乎没有一点用处,听说好像ms将取消它。当然flash、图片动画处理和简单设计等我还是比较擅长的,所以在进行界面设计时,还算顺手!这里我要说明一下,界面设计的同时,我也部分参考了其他网站的设计风格,在此表示感谢。本系统的界面设计主要完成的地方如下:q css定义,在系统styles/default.css文件,包括body部分、表格、文本框、链接、其他自定义显示的标题、内容等等。q 日历的绘制q 导航图片的设计与处理q 部分控件的显示风格q 诸多交互的界面提示信息q 相关的快捷键支持、新窗口的访问形式等q 整体页面的布局,显示方式等主要采用的工具有photoshop、dream weaver等4 详细设计系统流程图注:以下图为microsoft visio 2003设计完成并导出为jpg图片(photoshop压缩)一、 系统总体构架图数据层设计数据服务配置系统信息应用层用户接口层图4.1 系统总体构架图二、模块流程以下为各模块流程的简要表示,严格检查与细节没有涉及,请参见源码、aspx页面内的组成部分:(1)日

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论