《ASP.NET辦公自動(dòng)化系統開(kāi)發(fā)實(shí)例導航》筆記一Posted on 2005-11-02 22:42
wddavid 閱讀(584)
評論(3) 編輯 收藏收藏至365Key 所屬分類(lèi):
.NET一本厚厚的書(shū),由于只是講一個(gè)系統,比較詳細,所以拿過(guò)來(lái)看看,不過(guò)也發(fā)現此系統的N多問(wèn)題,不過(guò)我們應該取其精華,去齊糟粕嘛。
這本書(shū)主要是講一個(gè).NET的B/S OA系統,整體來(lái)說(shuō)大部分還是運用了.NET思想,少部分有點(diǎn)問(wèn)題,但是不影響其整體優(yōu)秀的思想。其中可以學(xué)到大量的編程技巧。
這里先看到第一部分:前兩章。
框架設計心得:
1.對于復雜的系統,我們可以分模塊;可以分為多級模塊,大模塊包含小模塊。在數據表的具體表現就是把所有的小模塊放在一起,每個(gè)模塊會(huì )有自己的一些屬性。比如此系統的模塊基本信息表:
字段名 描述
pkid 主鍵(自動(dòng)增加)
tabid 一級ID
indexid 二級ID
name 模塊名稱(chēng)
description 模塊描述
url 模塊頁(yè)面路徑
2.權限的問(wèn)題也變得比較重要。首先,每個(gè)用戶(hù)必須屬于某個(gè)“角色”,而每個(gè)角色對于每個(gè)模塊又會(huì )有相應的代碼。這是一種處理權限的標準思路,也就是說(shuō),分為用戶(hù)表(包含每個(gè)用戶(hù)的所屬角色)、角色模塊權限表。這樣,便可以處理復雜的權限關(guān)系。
3.這個(gè)系統分為了四個(gè)層:通用層、數據層、邏輯層、表示層(Web)。設置通用層是比較必要的,可以放置許多需要調用的函數(比如判斷某項是否為空)。
4.最好能把一系列相關(guān)的信息歸并成類(lèi)。比如數據層或邏輯層有一個(gè)日志操作類(lèi),專(zhuān)門(mén)用于對日志寫(xiě)入和讀取等等操作。這樣,可以用幾個(gè)方法來(lái)實(shí)現。但是,一個(gè)操作分為很多項,比如操作人ID,姓名,操作時(shí)間等等。這些信息是否也可以歸并為一類(lèi)呢?可以,所以我們可以在通用層中建立一個(gè)類(lèi),這個(gè)類(lèi)主要是用成員屬性來(lái)歸并信息,這樣可以加強結構化。(其實(shí)這種類(lèi)本身就和結構差不多,也不需要方法等復雜操作)
5.可以充分利用存儲結構中的返回參數來(lái)返回值(即param output)。調用他的方法很簡(jiǎn)單,首先和一般參數一樣,定義一個(gè)參數,聲明類(lèi)型為output,然后執行該Command后,直接取出該Param的值即可。如:
SqlParameter parameterEmpID = new SqlParameter("@empid", SqlDbType.Int, 4);
parameterEmpID.Direction = ParameterDirection.Output; //對輸出參數的處理很簡(jiǎn)單,指明為輸出參數即可.運行命令后就可以直接取它的值param.Value.
myCommand.Parameters.Add(parameterEmpID);
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
string result = parameterEmpID.Value;
//上面的result即為我們所要求的返回參數值
6.頁(yè)面基類(lèi)。這是ASP.NET面向對象思想的核心應用,如果一個(gè).NET B/S系統沒(méi)有使用基類(lèi)根本就不算是.NET程序。所有模塊的WEB頁(yè)面都要繼承基類(lèi)PageBase,它提供WEB頁(yè)面所需要的基本信息和相關(guān)服務(wù),比如登錄用戶(hù)信息、用戶(hù)訪(fǎng)問(wèn)權限、操作日志、頁(yè)面錯誤處理。這樣的好處很明顯,每個(gè)繼承了此基類(lèi)的頁(yè)面可以直接調用這些信息,比如可以簡(jiǎn)單的實(shí)現當前頁(yè)面位置信息,權限管理等等。同時(shí),也加強了靈活性,如果要增減頁(yè)面特性,只需要在PageBase里修改,所有頁(yè)面都會(huì )相應增減特性。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。