图解understand分析一个asp.net办公系统源码
源碼下載;
http://pan.baidu.com/s/1o7OEMc6
321.rar
?
總結(jié)結(jié)構(gòu);業(yè)務(wù)層,數(shù)據(jù)庫(kù)訪問工廠,實(shí)體層,數(shù)據(jù)庫(kù)訪問接口,sqlserver數(shù)據(jù)庫(kù)訪問層,展現(xiàn)層(oaPro);
?
業(yè)務(wù)層;主要是對(duì)各個(gè)表的操作;
?
通訊錄業(yè)務(wù)類;主要是增刪改查;
?
通訊錄業(yè)務(wù)類代碼情況;
?
資產(chǎn)管理業(yè)務(wù)類;增刪改查;
?
資產(chǎn)管理業(yè)務(wù)類代碼情況;
?
文件業(yè)務(wù)類;增刪改查;
?
文件業(yè)務(wù)類代碼情況;
?
業(yè)務(wù)層其他類類似;
?
數(shù)據(jù)庫(kù)訪問工廠層;
?
返回訪問各個(gè)表的接口對(duì)象;
數(shù)據(jù)緩存類;
?
實(shí)例化一個(gè)接口對(duì)象的代碼如下;
?
/// <summary>/// 通過反射機(jī)制,實(shí)例化addresslist接口對(duì)象/// </summary>///<returns>addresslist接口對(duì)象/returns>public static IaddresslistDAL addresslistDALInstance(){string CacheKey = DALFactory._path + ".addresslistDAL";object objType = DALFactory.GetInstance(CacheKey);return (IaddresslistDAL)objType;}
GetInstance方法代碼如下;
?
?
/// <summary>/// 通過反射機(jī)制,實(shí)例化接口對(duì)象/// </summary>/// <param name="CacheKey">接口對(duì)象名稱(鍵)</param>///<returns>接口對(duì)象/returns>private static object GetInstance(string CacheKey){object objType = DataCache.GetCache(CacheKey);if (objType == null){try{objType = Assembly.Load(DALFactory._path).CreateInstance(CacheKey);DataCache.SetCache(CacheKey, objType);}catch (Exception ex){throw ex;}}return objType;}
用接口對(duì)象名稱創(chuàng)建實(shí)例并返回;同時(shí)緩存接口對(duì)象名稱和創(chuàng)建的實(shí)例;
?
數(shù)據(jù)緩存類設(shè)置和獲取緩存代碼如下;
?
/// <summary>/// 獲得緩存對(duì)象/// </summary>/// <param name="CacheKey">鍵</param>/// <returns>緩存對(duì)象</returns>public static object GetCache(string CacheKey){System.Web.Caching.Cache objCache = HttpRuntime.Cache;return objCache[CacheKey];}/// <summary>/// 設(shè)置緩存對(duì)象/// </summary>/// <param name="CacheKey">鍵</param>/// <param name="objObject">要被緩存的對(duì)象</param>public static void SetCache(string CacheKey, object objObject){System.Web.Caching.Cache objCache = HttpRuntime.Cache;objCache.Insert(CacheKey, objObject);}
是通過System.Web.Caching.Cache類來實(shí)現(xiàn);
?
?
實(shí)體層;與數(shù)據(jù)庫(kù)結(jié)構(gòu)對(duì)應(yīng);
?
部門表department
id,部門名稱
權(quán)限表popedom
id,權(quán)限
操作表operate
id 用戶id(外鍵),權(quán)限id(外鍵)
用戶表users
id,用戶名,用戶密碼,所在部門id(外鍵),檔案(員工)Id(外鍵),狀態(tài),最后登陸ip,登陸時(shí)間,登陸次數(shù),email(密碼綁定),
所在群id(外鍵)
文件類別表filetype
id,文件類別名稱
文件表file
id,文件名,文件類別Id(外鍵),所屬部門Id(外鍵),發(fā)送人ID,接收人ID(外鍵),是否共享,備注,是否回執(zhí),
讀否,閱讀次數(shù),發(fā)布時(shí)間,狀態(tài)
文件回復(fù)表filerevert
id,回復(fù)內(nèi)容,文件id(外鍵),回復(fù)人ID(外鍵),回復(fù)時(shí)間
消息表message
id,標(biāo)題,內(nèi)容,接受人id(外鍵),發(fā)送人id,群組id(外鍵),發(fā)布時(shí)間,是否回執(zhí)
群組表group
id,群名
公文表document
id,部門id(外鍵),群id(外鍵),接收人id(外鍵),標(biāo)題,附件,下載次數(shù),閱讀次數(shù),點(diǎn)擊次數(shù),發(fā)布時(shí)間,發(fā)布人id
通知表sendword
id,標(biāo)題,內(nèi)容,部門id(外鍵),發(fā)布人id(外鍵),發(fā)布時(shí)間,瀏覽次數(shù),狀態(tài)
新聞表news
id,標(biāo)題,內(nèi)容,部門id(外鍵),發(fā)布人id(外鍵),發(fā)布時(shí)間,狀態(tài)
論壇表bbs
id,標(biāo)題,內(nèi)容,頭像,作者,發(fā)布時(shí)間,部門id(外鍵),回復(fù)次數(shù),查看次數(shù)
論壇回復(fù)表bbsrevert
id,論壇id(外鍵),回復(fù)內(nèi)容,回復(fù)時(shí)間,回復(fù)人(外鍵)
工作日志表worklog
id,標(biāo)題,內(nèi)容,發(fā)送人id(外鍵),發(fā)送時(shí)間,狀態(tài),點(diǎn)擊次數(shù),批閱人id,批閱內(nèi)容,批閱時(shí)間
日程計(jì)劃表timeorder
id,日程日期,標(biāo)題,內(nèi)容,發(fā)送人id(外鍵),發(fā)送日期,狀態(tài),是否批閱,批閱人id ,批閱內(nèi)容,批閱時(shí)間
總結(jié)類型表sumuptype
id,類型
工作總結(jié)表worksumup
id,總結(jié)類型id(0年總結(jié),2月總結(jié))(外鍵),總結(jié)年份,總結(jié)月份,常規(guī)工作,下一步工作計(jì)劃,建議,總結(jié)時(shí)間,狀態(tài),總結(jié)人id(外鍵)
審批表examine
id,申請(qǐng)事由,詳細(xì)說明,備注,申請(qǐng)人(外鍵),申請(qǐng)時(shí)間,狀態(tài),審批(接收)人,審批意見,審批時(shí)間,部門id(外鍵),
籍貫表native
id,籍貫
戶口所在地表province
id,省名
政治面貌表visage
id,政治面貌
民族表nation
id,民族
學(xué)歷表learn
id,學(xué)歷
檔案表employee
id,檔案編號(hào),姓名,曾用名,性別,出生日期,婚姻狀況,籍貫id(外鍵n_id),民族id(外鍵na_id),戶口所在地表id(外鍵),身高,體重,政治面貌id(外鍵),
身份證號(hào),健康狀況,血型,目前電話,手機(jī),電子郵件,畢業(yè)院校,專業(yè),學(xué)歷id(外鍵),畢業(yè)日期,學(xué)位,外語(yǔ)語(yǔ)種,外語(yǔ)水平,
獲得證書(外語(yǔ)),計(jì)算機(jī)水平:獲得證書(電腦):計(jì)算機(jī)擅長(zhǎng):普通話水平:家庭地址:郵編:現(xiàn)住址:家庭電話:
住址郵編:家庭情況:檔案存放地:職稱,何時(shí)參加工作:何時(shí)到本單位工作:累計(jì)工齡:本單位工齡:所在部門id(外鍵) ,職務(wù):
備 注:錄入人id:錄入時(shí)間:照片
考勤表attendance
id,日期,上午時(shí)間,下午時(shí)間,姓名id(用戶表外鍵),部門id(外鍵)
資產(chǎn)管理表assetmanage
id,資產(chǎn)名稱: ?編號(hào): ?計(jì)量單位: ?數(shù)量: ?規(guī)格型號(hào): ? 出廠編號(hào): ?技術(shù)證書號(hào): ?購(gòu)買價(jià)格: ?安裝費(fèi): ?折舊: ?凈值: ?
生產(chǎn)單位: ?生產(chǎn)年月: ?交付使用日期: ?預(yù)計(jì)使用年限: ?請(qǐng)購(gòu)人或部門: ?保管人或部門: ?用途: ?使用部門id(外鍵): ?使用地點(diǎn): ?
使用狀態(tài): ?錄入人id: ?備注: 錄入時(shí)間,是否報(bào)廢
通訊錄表addresslist
id,姓名id(外鍵):部門id(外鍵): 職 務(wù):手 機(jī):小靈通:辦公電話:分 機(jī):傳 真: Email:Q Q,Msn:地 址:備 注:?
一個(gè)實(shí)體類的結(jié)構(gòu)如下;
?
數(shù)據(jù)庫(kù)訪問接口層;主要是定義訪問表的接口;
?
論壇表訪問接口;定義了以下類型方法的接口;
文件表訪問接口;
?
數(shù)據(jù)庫(kù)訪問層;針對(duì)各個(gè)表的具體訪問;
?
訪問bbs表,有如下方法;
?
繼承自接口并具體實(shí)現(xiàn);一共有如下類型的方法;
?
添加方法;有兩種;普通插入和帶事務(wù)的插入;
?
更新方法,兩種,普通和帶事務(wù);
?
刪除方法,根據(jù)id,根據(jù)實(shí)體對(duì)象,帶和不帶事務(wù);
?
select方法;根據(jù)行返回實(shí)體,根據(jù)數(shù)據(jù)閱讀者返回實(shí)體,根據(jù)id返回實(shí)體,根據(jù)id、子表、父表返回實(shí)體;
?
論壇表的父表是部門表;論壇表的子表是論壇回復(fù)表;
?
查詢方法;返回全部記錄,是否與父/子表關(guān)聯(lián)的情況下返回全部記錄,根據(jù)查詢條件返回記錄,等;
?
其他查詢方法;
?
根據(jù)sql命令返回記錄;
?
展現(xiàn)層;內(nèi)容很多;
?
再將展現(xiàn)層用understand單獨(dú)建一個(gè)項(xiàng)目;過濾器要手動(dòng)添加*.aspx,否則此類文件不會(huì)被加入;
?
?
打開一個(gè)aspx文件看下,支持不友好,不折疊代碼,也無任何分析;
?
看一個(gè)展現(xiàn)層的具體代碼;刪除公文的操作;
?
COM.OA.Entity.users loginuser = Session["loginuser"] as COM.OA.Entity.users;if (loginuser == null){Response.Write("<script language='javascript'>parent.document.location.href='../login.aspx'</script>");}else{//取傳遞的參數(shù)docidint docid = Int32.Parse(this.Request.QueryString["docid"].ToString());int flag = documentBLL.Delete(docid);if (flag == 0){this.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('公文刪除失敗!!');</script>");}this.Response.Write(string.Format(GetRedirect.WINALERT, "公文刪除成功!"));this.Response.Write(string.Format(GetRedirect.REDIRECT, "gw_sendnote.aspx"));}}
首先判斷是否登錄,未登錄跳到登錄頁(yè);
?
傳遞id,調(diào)用公文業(yè)務(wù)層的刪除方法刪除公文;
刪除失敗彈出對(duì)話框提示;成功在頁(yè)面上提示;
此項(xiàng)目前端主要是純asp.net;未用其他前端組件;除了一個(gè)叫FreeTextBox的組件;
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的图解understand分析一个asp.net办公系统源码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javap使用实例图解
- 下一篇: Spring.NET 学习总结