http://hi.baidu.com/rabbit__liu/blog/item/bfb111f70b8f0331730eece0.html
基于ASP.NET的博客系统
摘 要 基于Microsoft.Net环境的ASP.NET技术,为开发功能强大的动态网站提供了一种简单、高效的途径。该博客系统以ASP.NET为开发技术,使用C#为开发语言,实现了博客网站的动态管理,使得对博客信息的管理更加及时、高效,提高了工作效率。同时对系统的背景需求、系统的功能特点和设计方案进行了介绍。该文还以随笔管理为例,对ASP.NET环境下的MVC开发模式进行了简单的介绍。.
关键字 ASP.NET;ADO.NET;博客;系统;数据库
引言
博客,数字生活新时尚,通过文字、图片、声音、视频、无线等,尽情展示自我、分享感受、参与交流,美好你我生活。Show you, share me,人人都可以博客,人人都需要博客。
1 项目背景
"博客"一词是从英文单词Blog翻译而来。Blog是Weblog的简称,而Weblog则是由Web和Log两个英文单词组合而成。Weblog就是在网络上发布和阅读的流水记录,通常称为"网络日志",简称为"网志"。它是继Email、BBS、IM之后出现的第四种全新的网络交流方式。它绝不仅仅是一种单向的发布系统,而且有着极其出色的交流功能。另外Blog也提供了非常方便实用的个性化功能。简言之,Blog就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。
2 需求分析
2.1 需求调研
任何一个系统的开发,必然有其需求者,博客系统也不例外,本系统通过对互联网中的各个博客系统的分析,得出从以下几个方面进行调研:
(1)、收益需求:描述系统的商业需求和系统将带来的收益。
(2)、日常功能:亲身体验一个博客在系统中如何交互,然后记录下来。
(3)、通过论坛来了解各博客用户的需求:记录下各论坛中各博客用户对博客的要求记录。
(4)、制作邮件调查表:通过调查表的形式得出一些具体的书面信息,了解细节。
2.2 创建用例图
博客系统参与者:如图1
图1 博客系统参与者
博客系统用例:如图2
图2 博客系统用例图
2.3、详细描述用例(举例)
用户登录用例如表1所示
表1 用户登录用例表
用例名称
用户登录
用例ID
UC_11
参与者
用户、管理员
描述
用户登录系统过程
风险
低
优先级
高
难度
低
启动
主动进入用户登录画面或会话超时转入用户登录画面
前置条件
用户需在登录状态
后置条件
将用户信息放入会话中
将用户相关的博客信息放入会话中
显示博客阅读主画面
主事件流
用户
系统
1、进入或转入用户登录画面
2、用户输入用户名和密码
3、系统检查用户和密码是否合法
4、系统检查用户是否存在,密码是否正确
5、读取用户的基本信息、博客的基本信息放入会话中
6、转到管理博客的主画面
异常流
异常流
系统中不存在该用户或用户名错误
系统
转入登录画面
异常
用户不存在或者密码错误
用户登录用例图如图3所示:
图3 用户登录用例图
3 系统分析
3.1 系统中的对象
面向对象的开发的基石是对象,那么分析一个系统的开始就是从确定对象开始。那么这个系统重要的实体对象有:博客账户信息、用户、标题、用户名、密码、分类、文章、链接、评论、随笔、图片。而必须的对象有:文章,图片,随笔,链接,博客账号,分类,评论。
3.2 开发技术分析
本系统采用ASP.NET开发技术进行开发。ASP.NET不仅仅是ASP的一个新版本,更是Web应用程序编程方面的一个全新的概念和方法。ASP.NET中的新功能并不是对ASP的改进,设计它的初衷是为用户入境提供最佳的应用程序架构。它相比于ASP有着以下几个方面的优点:
(1) 多语言
ASP曾在脚本引擎方面受到了限制,特别是VBScript和Jscript。而ASP.NET则支持多种语言,默认情况下为Visual Basic.NET、C#和Jscript.NET,另外还支持一些第三方语言。
(2) 服务器处理
ASP在服务器处理上不管页面的内容是纯HTML还是ASP生成的HTML,它都是按照页面顺序显示的。因此逻辑代码依赖于它在页面中的位置,并且无法将HTML控件作为目标,除非将它们作为流的一部分进行显示。而ASP.NET就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型,因为控件在服务器上有,可以在服务器上编程,也可以是客户端驱动的事件。
(3) Web Form控件
将现有的HTML控件转换为服务器端的控件是比较容易的,但是也存在一些不方便,例如比较难于区分HTML控件和服务器端的控件。于是Microsoft公司就创建了一组专门的服务器控件,它们都用asp:前缀标识。
(4) 代码与内容分离
一个网站的设计与开发往往由不同的人来实现的,而ASP中就是存在着这样一个问题,代码(ASP脚本)和内容(HTML)混合在一起。这样就使得同时进行设计和开发变得很困难。而ASP.NET则采用了代码内联和后台编码两种方法实现了代码与内容的分离。
3.2 健壮性分析(举例)
下面以对博客系统的用户登录用例为例进行健壮性分析:
3.3.1 事件流分析
事件流分析主要是针对系统中的用例描述中关于事件流的部分进行分析,此外还必须综合考虑基本路径和扩展路径两方面。
3.3.2 边界对象分析
边界对象:通常是用来完成参与者(用户、外部系统)与系统之间交互的对象。
在用户登录这个用例中,由于不存在外部系统,而且参与者也只有一个,就是"用户",因此它的边界对象有:
(1)用户进入登录画面。
(2)转到管理博客的主画面。
3.3.3 实体对象分析
实体对象:通常来自域模型,也就是现实世界,用来描述具体的实体,通常映射到数据库表格与文件。
这个用例的实体对象包括用户和博客账号信息。
3.3.4 控制对象分析
控制对象:主要用来体现应用程序的执行逻辑,将其抽象出来,可以使得程序不影响用户画面和数据库中的表。
这个用例的控制对象有:检测博客账号的合法性。
3.4 交互设计
3.4.1 引入实体对象
根据健壮性分析,可以把实体对象给罗列出来。这些对象通常也是每个类的一个实例。由于是用来描述运行时状态的情况,因此是对象,而非类。
3.4.2 引入边界对象和参与者
将实体对象引入之后,再就是将边界对象找出来,在交互设计中引入参与者和边界对象。
3.4.3 引入控制对象
将参与者、边界对象均引入之后,再就要结合健壮图中的控制对象,以及用例描述中的事件流来确定对象之间的消息传递。
3.4.4 添加类的属性与方法
在交互设计中,将会发现类应该具有的方法,也会在设计中找到一些新的属性,而这些东西将近一步地完善交互设计。结合健壮分析、交互设计时引入设计类,并添加相应的属性与方法。
3.4.5 引入基础类
在着手开发之前,有一件很重要的事,那就是引入基础类。不管用什么样的开发工具进行代码编写,都将以各种库函数、框架作为开发基础。因此首先根据应用的需要选择相应的框架,然后再根据具体的局部需要选择相应的类库。
这个系统中要进行数据库操作,可使用.NET Framework的ADO.NET进行数据库操作。
在进行文本编辑时使用文本编辑,引入第三方控件,使用FreeTextBox编辑器。
在进行分页时,同样引入第三方控件,使用AspNetPager分页控件。由于这些第三方控件均是开放源码的,所以我们自
上一篇:
基于ASPNET的博客系统(1)
下一篇:
马原:环境保护与可持续发展论文(word)