摘要:隨著計算機網絡的日益普及,人們通過網絡獲得信息的方式變得越來越重要?;贏SP.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 引言
交友類網站的出現,給人們擴大自己的交友圈提供了很大的方便。人們通過互聯網不僅擁有了自己的朋友圈,而且節省了參加社交活動所花費的時間和精力?,F在國內外諸多交友類網站雖然能夠滿足人們交友的需求,但這些網站大都沒有保證用戶信息的保密性,比如任何瀏覽到這些網站的網友都可以對本網站的用戶信息進行瀏覽,對其信息進行評論。這種做法使得這些網站的注冊用戶的網絡安全性降低。如何自動過濾來自非自己好友的評論,如何保證自己信息的隱密性將是眾多用戶考慮的問題。
本文所論述的交友類網站正是基于用戶需求所設計的。它與其它交友網站的不同之處在于:非本網站會員無法瀏覽網站會員的信息,臨時會員只能得到該網站的一些基本功能,比如僅可以瀏覽其它會員的資料,可以管理個人信息,個人主頁,發表個人日志,查看好友邀請記錄,管理相冊,但是不允許向其它會員提出添加好友請求,不允許對其它會員信息發表留言等。臨時會員必須向網站管理員交納一定的費用升級為正式會員,才可享有網站的所有服務。另一方面,非網站會員無法使用該網站,可以保證該網站用戶信息的保密性。
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 (1 != 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].