日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

图解understand分析一个asp.net办公系统源码

發(fā)布時間:2025/4/14 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图解understand分析一个asp.net办公系统源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源碼下載;

http://pan.baidu.com/s/1o7OEMc6

321.rar

?

總結結構;業(yè)務層,數據庫訪問工廠,實體層,數據庫訪問接口,sqlserver數據庫訪問層,展現層(oaPro);

?

業(yè)務層;主要是對各個表的操作;

?

通訊錄業(yè)務類;主要是增刪改查;

?

通訊錄業(yè)務類代碼情況;

?

資產管理業(yè)務類;增刪改查;

?

資產管理業(yè)務類代碼情況;

?

文件業(yè)務類;增刪改查;

?

文件業(yè)務類代碼情況;

?

業(yè)務層其他類類似;

?

數據庫訪問工廠層;

?

返回訪問各個表的接口對象;

數據緩存類;

?

實例化一個接口對象的代碼如下;

?

/// <summary>/// 通過反射機制,實例化addresslist接口對象/// </summary>///<returns>addresslist接口對象/returns>public static IaddresslistDAL addresslistDALInstance(){string CacheKey = DALFactory._path + ".addresslistDAL";object objType = DALFactory.GetInstance(CacheKey);return (IaddresslistDAL)objType;}


GetInstance方法代碼如下;

?

?

/// <summary>/// 通過反射機制,實例化接口對象/// </summary>/// <param name="CacheKey">接口對象名稱(鍵)</param>///<returns>接口對象/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;}


用接口對象名稱創(chuàng)建實例并返回;同時緩存接口對象名稱和創(chuàng)建的實例;

?

數據緩存類設置和獲取緩存代碼如下;

?

/// <summary>/// 獲得緩存對象/// </summary>/// <param name="CacheKey">鍵</param>/// <returns>緩存對象</returns>public static object GetCache(string CacheKey){System.Web.Caching.Cache objCache = HttpRuntime.Cache;return objCache[CacheKey];}/// <summary>/// 設置緩存對象/// </summary>/// <param name="CacheKey">鍵</param>/// <param name="objObject">要被緩存的對象</param>public static void SetCache(string CacheKey, object objObject){System.Web.Caching.Cache objCache = HttpRuntime.Cache;objCache.Insert(CacheKey, objObject);}


是通過System.Web.Caching.Cache類來實現;

?

?

實體層;與數據庫結構對應;

?

部門表department
id,部門名稱

權限表popedom
id,權限

操作表operate
id 用戶id(外鍵),權限id(外鍵)

用戶表users
id,用戶名,用戶密碼,所在部門id(外鍵),檔案(員工)Id(外鍵),狀態(tài),最后登陸ip,登陸時間,登陸次數,email(密碼綁定),
所在群id(外鍵)

文件類別表filetype
id,文件類別名稱

文件表file
id,文件名,文件類別Id(外鍵),所屬部門Id(外鍵),發(fā)送人ID,接收人ID(外鍵),是否共享,備注,是否回執(zhí),
讀否,閱讀次數,發(fā)布時間,狀態(tài)

文件回復表filerevert
id,回復內容,文件id(外鍵),回復人ID(外鍵),回復時間

消息表message
id,標題,內容,接受人id(外鍵),發(fā)送人id,群組id(外鍵),發(fā)布時間,是否回執(zhí)

群組表group
id,群名

公文表document
id,部門id(外鍵),群id(外鍵),接收人id(外鍵),標題,附件,下載次數,閱讀次數,點擊次數,發(fā)布時間,發(fā)布人id

通知表sendword
id,標題,內容,部門id(外鍵),發(fā)布人id(外鍵),發(fā)布時間,瀏覽次數,狀態(tài)

新聞表news
id,標題,內容,部門id(外鍵),發(fā)布人id(外鍵),發(fā)布時間,狀態(tài)

論壇表bbs
id,標題,內容,頭像,作者,發(fā)布時間,部門id(外鍵),回復次數,查看次數

論壇回復表bbsrevert
id,論壇id(外鍵),回復內容,回復時間,回復人(外鍵)

工作日志表worklog
id,標題,內容,發(fā)送人id(外鍵),發(fā)送時間,狀態(tài),點擊次數,批閱人id,批閱內容,批閱時間

日程計劃表timeorder
id,日程日期,標題,內容,發(fā)送人id(外鍵),發(fā)送日期,狀態(tài),是否批閱,批閱人id ,批閱內容,批閱時間

總結類型表sumuptype
id,類型

工作總結表worksumup
id,總結類型id(0年總結,2月總結)(外鍵),總結年份,總結月份,常規(guī)工作,下一步工作計劃,建議,總結時間,狀態(tài),總結人id(外鍵)

審批表examine
id,申請事由,詳細說明,備注,申請人(外鍵),申請時間,狀態(tài),審批(接收)人,審批意見,審批時間,部門id(外鍵),

籍貫表native
id,籍貫

戶口所在地表province
id,省名

政治面貌表visage
id,政治面貌

民族表nation
id,民族

學歷表learn
id,學歷

檔案表employee
id,檔案編號,姓名,曾用名,性別,出生日期,婚姻狀況,籍貫id(外鍵n_id),民族id(外鍵na_id),戶口所在地表id(外鍵),身高,體重,政治面貌id(外鍵),
身份證號,健康狀況,血型,目前電話,手機,電子郵件,畢業(yè)院校,專業(yè),學歷id(外鍵),畢業(yè)日期,學位,外語語種,外語水平,
獲得證書(外語),計算機水平:獲得證書(電腦):計算機擅長:普通話水平:家庭地址:郵編:現住址:家庭電話:
住址郵編:家庭情況:檔案存放地:職稱,何時參加工作:何時到本單位工作:累計工齡:本單位工齡:所在部門id(外鍵) ,職務:
備 注:錄入人id:錄入時間:照片

考勤表attendance
id,日期,上午時間,下午時間,姓名id(用戶表外鍵),部門id(外鍵)

資產管理表assetmanage
id,資產名稱: ?編號: ?計量單位: ?數量: ?規(guī)格型號: ? 出廠編號: ?技術證書號: ?購買價格: ?安裝費: ?折舊: ?凈值: ?
生產單位: ?生產年月: ?交付使用日期: ?預計使用年限: ?請購人或部門: ?保管人或部門: ?用途: ?使用部門id(外鍵): ?使用地點: ?
使用狀態(tài): ?錄入人id: ?備注: 錄入時間,是否報廢

通訊錄表addresslist
id,姓名id(外鍵):部門id(外鍵): 職 務:手 機:小靈通:辦公電話:分 機:傳 真: Email:Q Q,Msn:地 址:備 注:?

一個實體類的結構如下;

?

數據庫訪問接口層;主要是定義訪問表的接口;

?

論壇表訪問接口;定義了以下類型方法的接口;

文件表訪問接口;

?

數據庫訪問層;針對各個表的具體訪問;

?

訪問bbs表,有如下方法;

?

繼承自接口并具體實現;一共有如下類型的方法;

?

添加方法;有兩種;普通插入和帶事務的插入;

?

更新方法,兩種,普通和帶事務;

?

刪除方法,根據id,根據實體對象,帶和不帶事務;

?

select方法;根據行返回實體,根據數據閱讀者返回實體,根據id返回實體,根據id、子表、父表返回實體;

?

論壇表的父表是部門表;論壇表的子表是論壇回復表;

?

查詢方法;返回全部記錄,是否與父/子表關聯的情況下返回全部記錄,根據查詢條件返回記錄,等;

?

其他查詢方法;

?

根據sql命令返回記錄;

?

展現層;內容很多;

?

再將展現層用understand單獨建一個項目;過濾器要手動添加*.aspx,否則此類文件不會被加入;

?

?

打開一個aspx文件看下,支持不友好,不折疊代碼,也無任何分析;

?

看一個展現層的具體代碼;刪除公文的操作;

?

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{//取傳遞的參數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"));}}


首先判斷是否登錄,未登錄跳到登錄頁;

?

傳遞id,調用公文業(yè)務層的刪除方法刪除公文;

刪除失敗彈出對話框提示;成功在頁面上提示;

此項目前端主要是純asp.net;未用其他前端組件;除了一個叫FreeTextBox的組件;

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的图解understand分析一个asp.net办公系统源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。