论文部分内容阅读
摘要:随着计算机网络的日益普及,人们通过网络获得信息的方式变得越来越重要。基于ASP.NET技术的交友网站的设计主要是为了方便人们使用互联网扩大自己的交友圈。该网站可以满足大多数用户查找好友,添加好友,获得好友最新动态,发表个人日志等需求。虽然网站规模不是太大,但是却具有很强的针对性、实用性和界面友好性,能够满足大多数用户的需求。
关键词:ASP.NET 3.5;语言集成查询
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2126-03
The Analysis and Design of the Friends-making Website
YANG Jin-yan, YU You-ling
(Tongji University, Shanghai 201804, China)
Abstract: With the rapid development of computer networks, the method that people get information through the Internet becomes more and more important.The design of friends-making website based-on ASP.NET 3.5 is convenient for people to expand their circles of friends through the Internet.The site can meet most users’ needs, such as searching friends,adding friends,getting the friends’ latest information,releasing personal log and so on. Although the website’s scale is not big, it has very strong pertinency, practicability and friendly interface, and can meet most users’ needs.
Key words: ASP.NET 3.5; language integrated query
1 引言
交友类网站的出现,给人们扩大自己的交友圈提供了很大的方便。人们通过互联网不仅拥有了自己的朋友圈,而且节省了参加社交活动所花费的时间和精力。现在国内外诸多交友类网站虽然能够满足人们交友的需求,但这些网站大都没有保证用户信息的保密性,比如任何浏览到这些网站的网友都可以对本网站的用户信息进行浏览,对其信息进行评论。这种做法使得这些网站的注册用户的网络安全性降低。如何自动过滤来自非自己好友的评论,如何保证自己信息的隐密性将是众多用户考虑的问题。
本文所论述的交友类网站正是基于用户需求所设计的。它与其它交友网站的不同之处在于:非本网站会员无法浏览网站会员的信息,临时会员只能得到该网站的一些基本功能,比如仅可以浏览其它会员的资料,可以管理个人信息,个人主页,发表个人日志,查看好友邀请记录,管理相册,但是不允许向其它会员提出添加好友请求,不允许对其它会员信息发表留言等。临时会员必须向网站管理员交纳一定的费用升级为正式会员,才可享有网站的所有服务。另一方面,非网站会员无法使用该网站,可以保证该网站用户信息的保密性。
2 系统分析
2.1 需求分析
该文所论述的交友类网站的设计目的在于:一方面可以方便用户扩大自己的交友圈,另一方面可以保证用户私人信息的安全性。要设计一个高效的交友系统,必须用系统工程的观点来考虑问题。在系统分析阶段,设计者和用户双方要密切合作,共同收集和分析数据管理中信息的内容和用户对处理的要求。根据用户需求,本文所介绍的系统将网站设计分为用户模块和后台管理员两大模块,其中用户模块包括:会员登录,会员注册,个人门户,个人日志管理,个人相册管理,个人档案管理,交友管理(查看交友记录,查找、添加好友)。后台管理功能包括:管理员登陆,用户审核管理,用户个人门户小功能部件管理。
本系统开发采用微软公司的Windows 2003作为服务器,采用SQL Server 2005作为数据库,采用IIS作为Internet服务器,前台使用ASP.NET 3.5来开发,选择C#作为开发语言,开发工具采用Visual Studio.NET 2008,网站设计采用三层架构来开发。
2.2 系统架构分析
该网站的设计采用基于B/S的三层体系结构,即表示层,业务层,数据层。系统架构图如图1所示。
图1主要包括四个部分如下:
1) Database项目文件:主要包含系统用到的数据表,视图及存储过程等。所用到的数据库为SQL Server 2005。
2) Business项目文件:该项目文件夹下包含多个类库,有的类库中包含实体类,数据访问类及多个业务逻辑类,有的类库仅仅包含业务处理类。实体类为对数据表中字段的访问提供统一的接口;数据访问类用于对实体类进行操作,主要包括SQL语句的声明和对数据库的基本操作;业务逻辑类处理整个系统的业务逻辑,每个类都包含业务实体所需要的逻辑操作方法,比如添加好友,后台审核,获得好友信息等。
3) Web项目文件:用于界面显示,负责直接跟用户交互,包括所有用户和与系统的交互体验,即本系统中的.aspx页面、用户控件、主题等文件。
4) Common项目文件:主要是封装了系统中用到的一些公有类,共用控件设置,事务处理,设计模式,Webpart设置等,为业务处理类及页面显示类提供数据处理接口。
三层体系结构中的主要操作流程为:用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回并将数据显示在表示层。
2.3 系统主要模块功能分析
在系统需求分析中已经提到本系统设计分为用户和后台管理两个部分。这两个模块又由很多子模块组成。
用户模块主要包括:用户登录,用户注册,个人主页,个人日志管理,好友管理。其中个人主要由多个Webpart组成,包括个人日志,个人信息管理,个人主页小功能部件添加,个人主页访问率,个人主页留言,个人最新事件等。个人日志管理包括:创建个人日志,编辑个人日志,个人日志列表查看,删除个人日志。好友管理包括:邀请好友,添加好友,交友记录管理(可以同意或拒绝好友邀请,可以查看好友列表)。
后台管理包括:管理员登陆,个人主页小功能部件管理,网站主页信息发布,注册用户信息审核。
非网站会员在进入本网站之前要先进行注册,其中注册可以通过以下三种方式来完成。第一种方式是,直接登录到网站首页,点击注册,根据网站需求填写个人信息,通过网站管理员审核后成为临时会员;第二种方式是,有正式会员的邀请,用户直接点击邀请邮箱里的链接,进入注册页面,此时注册页面中用户的用户名(即Email地址)已经自动填写,注册用户填写完其它注册信息,通过网站管理员审核后成为正式会员;第三种方式是,申请用户通过付费方式获得一个注册码,按照注册流程填写注册信息,通过网站管理员审核后成为正式会员。
用户注册流程图如图2。
正式会员在登录到系统后可以根据姓名,爱好,毕业学校,工作行业,现居住地等来查找用户,浏览该用户的基本信息,若该用户满足自己需求可向其发送好友邀请。正式会员如果想邀请非本网站用户成为网站会员,可向其发送邮件,邀请其加入。所有网站会员可以查看本系统中自己的交友记录,包括好友请求信息,非好友请求加为好友信息及个人好友列表等。
好友管理模块流程图如图3。
3 系统主要模块设计及实现
本系统最主要的功能就是提供注册用户角色管理及查找添加好友,在具体实现上是将数据与控件绑定来显示数据,采用.NET中的LINQ技术实现对数据库的操作。下面重点论述一下主要模块的设计与实现。
3.1 交友管理模块
1) 查看交友记录:可以查看有谁添加自己为好友,可以根据需求选择拒绝或者同意。
2) 查找添加好友:用户可以根据姓名,爱好,毕业学校,工作行业,现居住地等来查找系统中的注册会员,浏览该会员的基本信息,然后根据自己需求可以向该会员进行发送邀请,并等待请求结果。正式会员也可以邀请非本网站会员加入该系统,被邀请的用户填写注册信息,通过后台审核后成为网站的临时会员,双方出现在彼此的好友列表中,临时会员可以通过升级成为正式会员。会员可以查看自己的交友记录,可以选择同意或者拒绝其它用户请求。但是临时会员仅可以查找好友,查看其它用户资料,可以同意或拒绝其它会员的邀请,但是不可以添加好友。在点击“查找”时,就是对服务器发送了一次请求,通过读取Request对象的参数我们来进行判断,该实现是通过多个条件判断语句来实现的。其中对数据库的访问,系统利用LINQ的智能感知功能,使代码实现变得简单化。
在进行好友搜索时,网站运行图片如图4。
查找好友实现中利用LINQ操作数据库的代码如下:
foreach (var info in baseinfo)
{ //筛选数据,利用LINQ的智能感知来实现
iEnumerableVUser = from detail in vUserDetails
where detail.Id.ToString() == info.Account.ToString()
orderby detail.EnterDutyDate descending select detail;
vUserDetailsList = iEnumerableVUser.ToList();
}
3.2 注册用户信息审核模块
管理员在后台对所有的申请信息进行管理并核实注册信息,并根据审核结果处理此类信息。所有的申请者提出申请后,其状态都是待审核状态,经过后台审核后,由管理员发送一封接受或者拒绝的邮件到申请者的申请邮箱里,该邮箱就是用户登录到系统的账户,申请用户登录到自己的注册邮箱,点击激活后可以成为正式会员或者临时会员。
注册信息被审核之前,在管理员后台管理界面如图5所示:
审核后成为临时会员代码如下所示:
/// 为保证代码的保密性,我们使用字母替换源程序实现中的变量,各个字母代表的意思如代码中所示
public void ConfirmRegister(Guid id,bool pass)
{
if (pass)
{ // A表示用户信息实体,B表示成员资格管理类,C邀请邮件实体,D个人主页业务逻辑类
A account = B.Instance.GetAccount(id);
C invitationEmail = B.Instance.GetInvitationEmailByRegisterAccount(id);
if (null != invitationEmail)
{//E为个人主页上Webpart业务处理类
BasicInfo basicInfo = D.Instance.GetBasicInfoByAccount(invitationEmail.Account, "");
E.Instance.SaveRelationship(id, basicInfo.Account, FriendsStatus.Accept,"", "Passive");
E.Instance.SaveRelationship(basicInfo.Account,id,FriendsStatus.Accept,"","Active");
if (account.Email.Equals(invitationEmail.Email))
{
account.IsActive = true; B.Instance.ModifyAccount(account);
}
}
// 分配角色,F为注册用户注册码
Role role = new Role();
List registerRecordList = D.Instance.GetRegisterRecordByAccount(id);
if (1 == registerRecordList.Count)
{
registerRecordList[0].CodeStatus = G.Effective;
D.Instance.ModifyRegisterRecord(registerRecordList[0]);
role = B.Instance.EnsureRole(H.Formal);
}
else { role = B.Instance.EnsureRole(H.Temporary); }
RoleAssign assign = new RoleAssign();
assign.Id = Guid.NewGuid(); assign.Account = account.Id;
assign.Role = role.Id;
B.Instance.AddRoleAssign(assign);
//如果是好友要求的则添加两个人的好友关系
B.Instance.SendValidationEmail(account); //发送验证邮件
}
else {//删除用户注册信息
……;
//发送拒绝邮件,I为会员资格管理逻辑类
I.Instance.SendRejectNotice(id, "RejectRegisterApplication");
}
}
4 结束语
本文内容主要涉及到了交友类网站的需求分析,系统架构,并对主要模块进行了分析和编码实现。该系统主要实现的功能是网站会员可以查找好友,添加好友,可以获得好友最新动态,发表个人日志,修改完善个人信息,网站管理员可以审核申请用户请求,审核后的结果可以成功发送到注册用户的注册邮箱里等,但是随着用户需求的不断增加,系统的功能还需要不断的完善。系统需要增加的功能为:会员之间的信息分享,会员好友通讯录的管理,会员之间的信息通讯。
参考文献:
[1] 杨云,王毅.ASP.NET 2.0程序开发详解[M].北京:人民邮电出版社,2007.
[2] Wang H,Yang J.Research and Application of Web Development Based on ASP.NET 2.0+Ajax[M].IEEE,2008.
[3] 郭馨君,张艳丽,王芳芳.ASP.NET AJAX入门与案例详解[M].北京:机械工业出版社,2007.
[4] 郭瑞军,郭馨君.ASP.NET 2.0 数据库开发实例精粹[M].北京:电子工业出版社,2006
[5] http://msdn.microsoft.com/zh-cn/library/s57a598e.aspx[EB/OL].
关键词:ASP.NET 3.5;语言集成查询
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2126-03
The Analysis and Design of the Friends-making Website
YANG Jin-yan, YU You-ling
(Tongji University, Shanghai 201804, China)
Abstract: With the rapid development of computer networks, the method that people get information through the Internet becomes more and more important.The design of friends-making website based-on ASP.NET 3.5 is convenient for people to expand their circles of friends through the Internet.The site can meet most users’ needs, such as searching friends,adding friends,getting the friends’ latest information,releasing personal log and so on. Although the website’s scale is not big, it has very strong pertinency, practicability and friendly interface, and can meet most users’ needs.
Key words: ASP.NET 3.5; language integrated query
1 引言
交友类网站的出现,给人们扩大自己的交友圈提供了很大的方便。人们通过互联网不仅拥有了自己的朋友圈,而且节省了参加社交活动所花费的时间和精力。现在国内外诸多交友类网站虽然能够满足人们交友的需求,但这些网站大都没有保证用户信息的保密性,比如任何浏览到这些网站的网友都可以对本网站的用户信息进行浏览,对其信息进行评论。这种做法使得这些网站的注册用户的网络安全性降低。如何自动过滤来自非自己好友的评论,如何保证自己信息的隐密性将是众多用户考虑的问题。
本文所论述的交友类网站正是基于用户需求所设计的。它与其它交友网站的不同之处在于:非本网站会员无法浏览网站会员的信息,临时会员只能得到该网站的一些基本功能,比如仅可以浏览其它会员的资料,可以管理个人信息,个人主页,发表个人日志,查看好友邀请记录,管理相册,但是不允许向其它会员提出添加好友请求,不允许对其它会员信息发表留言等。临时会员必须向网站管理员交纳一定的费用升级为正式会员,才可享有网站的所有服务。另一方面,非网站会员无法使用该网站,可以保证该网站用户信息的保密性。
2 系统分析
2.1 需求分析
该文所论述的交友类网站的设计目的在于:一方面可以方便用户扩大自己的交友圈,另一方面可以保证用户私人信息的安全性。要设计一个高效的交友系统,必须用系统工程的观点来考虑问题。在系统分析阶段,设计者和用户双方要密切合作,共同收集和分析数据管理中信息的内容和用户对处理的要求。根据用户需求,本文所介绍的系统将网站设计分为用户模块和后台管理员两大模块,其中用户模块包括:会员登录,会员注册,个人门户,个人日志管理,个人相册管理,个人档案管理,交友管理(查看交友记录,查找、添加好友)。后台管理功能包括:管理员登陆,用户审核管理,用户个人门户小功能部件管理。
本系统开发采用微软公司的Windows 2003作为服务器,采用SQL Server 2005作为数据库,采用IIS作为Internet服务器,前台使用ASP.NET 3.5来开发,选择C#作为开发语言,开发工具采用Visual Studio.NET 2008,网站设计采用三层架构来开发。
2.2 系统架构分析
该网站的设计采用基于B/S的三层体系结构,即表示层,业务层,数据层。系统架构图如图1所示。
图1主要包括四个部分如下:
1) Database项目文件:主要包含系统用到的数据表,视图及存储过程等。所用到的数据库为SQL Server 2005。
2) Business项目文件:该项目文件夹下包含多个类库,有的类库中包含实体类,数据访问类及多个业务逻辑类,有的类库仅仅包含业务处理类。实体类为对数据表中字段的访问提供统一的接口;数据访问类用于对实体类进行操作,主要包括SQL语句的声明和对数据库的基本操作;业务逻辑类处理整个系统的业务逻辑,每个类都包含业务实体所需要的逻辑操作方法,比如添加好友,后台审核,获得好友信息等。
3) Web项目文件:用于界面显示,负责直接跟用户交互,包括所有用户和与系统的交互体验,即本系统中的.aspx页面、用户控件、主题等文件。
4) Common项目文件:主要是封装了系统中用到的一些公有类,共用控件设置,事务处理,设计模式,Webpart设置等,为业务处理类及页面显示类提供数据处理接口。
三层体系结构中的主要操作流程为:用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回并将数据显示在表示层。
2.3 系统主要模块功能分析
在系统需求分析中已经提到本系统设计分为用户和后台管理两个部分。这两个模块又由很多子模块组成。
用户模块主要包括:用户登录,用户注册,个人主页,个人日志管理,好友管理。其中个人主要由多个Webpart组成,包括个人日志,个人信息管理,个人主页小功能部件添加,个人主页访问率,个人主页留言,个人最新事件等。个人日志管理包括:创建个人日志,编辑个人日志,个人日志列表查看,删除个人日志。好友管理包括:邀请好友,添加好友,交友记录管理(可以同意或拒绝好友邀请,可以查看好友列表)。
后台管理包括:管理员登陆,个人主页小功能部件管理,网站主页信息发布,注册用户信息审核。
非网站会员在进入本网站之前要先进行注册,其中注册可以通过以下三种方式来完成。第一种方式是,直接登录到网站首页,点击注册,根据网站需求填写个人信息,通过网站管理员审核后成为临时会员;第二种方式是,有正式会员的邀请,用户直接点击邀请邮箱里的链接,进入注册页面,此时注册页面中用户的用户名(即Email地址)已经自动填写,注册用户填写完其它注册信息,通过网站管理员审核后成为正式会员;第三种方式是,申请用户通过付费方式获得一个注册码,按照注册流程填写注册信息,通过网站管理员审核后成为正式会员。
用户注册流程图如图2。
正式会员在登录到系统后可以根据姓名,爱好,毕业学校,工作行业,现居住地等来查找用户,浏览该用户的基本信息,若该用户满足自己需求可向其发送好友邀请。正式会员如果想邀请非本网站用户成为网站会员,可向其发送邮件,邀请其加入。所有网站会员可以查看本系统中自己的交友记录,包括好友请求信息,非好友请求加为好友信息及个人好友列表等。
好友管理模块流程图如图3。
3 系统主要模块设计及实现
本系统最主要的功能就是提供注册用户角色管理及查找添加好友,在具体实现上是将数据与控件绑定来显示数据,采用.NET中的LINQ技术实现对数据库的操作。下面重点论述一下主要模块的设计与实现。
3.1 交友管理模块
1) 查看交友记录:可以查看有谁添加自己为好友,可以根据需求选择拒绝或者同意。
2) 查找添加好友:用户可以根据姓名,爱好,毕业学校,工作行业,现居住地等来查找系统中的注册会员,浏览该会员的基本信息,然后根据自己需求可以向该会员进行发送邀请,并等待请求结果。正式会员也可以邀请非本网站会员加入该系统,被邀请的用户填写注册信息,通过后台审核后成为网站的临时会员,双方出现在彼此的好友列表中,临时会员可以通过升级成为正式会员。会员可以查看自己的交友记录,可以选择同意或者拒绝其它用户请求。但是临时会员仅可以查找好友,查看其它用户资料,可以同意或拒绝其它会员的邀请,但是不可以添加好友。在点击“查找”时,就是对服务器发送了一次请求,通过读取Request对象的参数我们来进行判断,该实现是通过多个条件判断语句来实现的。其中对数据库的访问,系统利用LINQ的智能感知功能,使代码实现变得简单化。
在进行好友搜索时,网站运行图片如图4。
查找好友实现中利用LINQ操作数据库的代码如下:
foreach (var info in baseinfo)
{ //筛选数据,利用LINQ的智能感知来实现
iEnumerableVUser = from detail in vUserDetails
where detail.Id.ToString() == info.Account.ToString()
orderby detail.EnterDutyDate descending select detail;
vUserDetailsList = iEnumerableVUser.ToList();
}
3.2 注册用户信息审核模块
管理员在后台对所有的申请信息进行管理并核实注册信息,并根据审核结果处理此类信息。所有的申请者提出申请后,其状态都是待审核状态,经过后台审核后,由管理员发送一封接受或者拒绝的邮件到申请者的申请邮箱里,该邮箱就是用户登录到系统的账户,申请用户登录到自己的注册邮箱,点击激活后可以成为正式会员或者临时会员。
注册信息被审核之前,在管理员后台管理界面如图5所示:
审核后成为临时会员代码如下所示:
/// 为保证代码的保密性,我们使用字母替换源程序实现中的变量,各个字母代表的意思如代码中所示
public void ConfirmRegister(Guid id,bool pass)
{
if (pass)
{ // A表示用户信息实体,B表示成员资格管理类,C邀请邮件实体,D个人主页业务逻辑类
A account = B.Instance.GetAccount(id);
C invitationEmail = B.Instance.GetInvitationEmailByRegisterAccount(id);
if (null != invitationEmail)
{//E为个人主页上Webpart业务处理类
BasicInfo basicInfo = D.Instance.GetBasicInfoByAccount(invitationEmail.Account, "");
E.Instance.SaveRelationship(id, basicInfo.Account, FriendsStatus.Accept,"", "Passive");
E.Instance.SaveRelationship(basicInfo.Account,id,FriendsStatus.Accept,"","Active");
if (account.Email.Equals(invitationEmail.Email))
{
account.IsActive = true; B.Instance.ModifyAccount(account);
}
}
// 分配角色,F为注册用户注册码
Role role = new Role();
List
if (1 == registerRecordList.Count)
{
registerRecordList[0].CodeStatus = G.Effective;
D.Instance.ModifyRegisterRecord(registerRecordList[0]);
role = B.Instance.EnsureRole(H.Formal);
}
else { role = B.Instance.EnsureRole(H.Temporary); }
RoleAssign assign = new RoleAssign();
assign.Id = Guid.NewGuid(); assign.Account = account.Id;
assign.Role = role.Id;
B.Instance.AddRoleAssign(assign);
//如果是好友要求的则添加两个人的好友关系
B.Instance.SendValidationEmail(account); //发送验证邮件
}
else {//删除用户注册信息
……;
//发送拒绝邮件,I为会员资格管理逻辑类
I.Instance.SendRejectNotice(id, "RejectRegisterApplication");
}
}
4 结束语
本文内容主要涉及到了交友类网站的需求分析,系统架构,并对主要模块进行了分析和编码实现。该系统主要实现的功能是网站会员可以查找好友,添加好友,可以获得好友最新动态,发表个人日志,修改完善个人信息,网站管理员可以审核申请用户请求,审核后的结果可以成功发送到注册用户的注册邮箱里等,但是随着用户需求的不断增加,系统的功能还需要不断的完善。系统需要增加的功能为:会员之间的信息分享,会员好友通讯录的管理,会员之间的信息通讯。
参考文献:
[1] 杨云,王毅.ASP.NET 2.0程序开发详解[M].北京:人民邮电出版社,2007.
[2] Wang H,Yang J.Research and Application of Web Development Based on ASP.NET 2.0+Ajax[M].IEEE,2008.
[3] 郭馨君,张艳丽,王芳芳.ASP.NET AJAX入门与案例详解[M].北京:机械工业出版社,2007.
[4] 郭瑞军,郭馨君.ASP.NET 2.0 数据库开发实例精粹[M].北京:电子工业出版社,2006
[5] http://msdn.microsoft.com/zh-cn/library/s57a598e.aspx[EB/OL].