先說明一下我使用的命名空間的想法,我是把前后臺共同的類的命名就空間命名成了 CjjerBase ,只是前臺的 CJJERGUESTBOOK,后臺的是 BookAdminSpace ,基本達到表意,使用不同的命名空間還是考慮到.net加載信息的優(yōu)化性,不再贅言。
設(shè)計與數(shù)據(jù)庫交互的基類: conn類
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
設(shè)計類的時候,一般的說來,能使用現(xiàn)成的最好,重用思想 ,沒有的話繼承最好,實在沒有的話自己設(shè)計,一般option explicit , option strict 都是打開的,利于程序有話,然后編譯,設(shè)計了此類以后再任何頁面請不要再跨此類使用數(shù)據(jù)庫,這是出于OO思想(當(dāng)換使用數(shù)據(jù)庫的時候,只需要修改conn類即可)。
類設(shè)計的時候拋出異常的,對于非產(chǎn)品級別的(調(diào)試的,其實是永遠的,我認為有2個版本,用戶的和程序員的,這里指后者),直接調(diào)用
try conn.open() catch objerror as Exception HttpContext.Current.Response.Write("<font color =red>Conn類異常:</font>" & objerror.Message & ":" & objerror.source) Exit sub End try
這樣的形式就可以了。
我在這里還使用了一個驗證碼的一個基類,就是那個驗證碼,我也單獨設(shè)計了一個類:
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
坦白的說,確實不怎么樣的類,此類只有一個共享方法:
Img::CheckImg (optional imgcheckid as string = "imgcheck", _ optional imgwidth as integer = 65,optional imgheight as integer = 25 , _ optional strsize as integer = 4 ,optional fonttype as string = "arial" , _ optional Fontdaxiao as integer =16,optional rgb1 as integer = 187 , _ optional rgb2 as integer = 251,optional rgb3 as integer = 255)
optional 的意思就是參數(shù)可選。
參數(shù)名稱都是表意的,您可以理解的。
第三個就是一個UBB代碼的,我也是設(shè)計了一個類:CjjerBase: bbCode:
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
其中做了一個幾個最基本的轉(zhuǎn)換,讀者可以調(diào)用任何數(shù)據(jù)格式加載到UBB中的,其中核心的是:
Dim objregex as Regex Dim expressdata , replacedata as ArrayList '這里可以加載你的ubb轉(zhuǎn)換的正則算式 Dim e_ex as IEnumerator = expressdata.GetEnumerator Dim e_re as IEnumerator = replacedata.GetEnumerator Dim new_str as string = GetHtmlcode( str ) do while e_ex.movenext() and e_re.movenext() objregex = new Regex( e_ex.Current,RegexOptions.IgnoreCase ) new_str = objregex.replace(new_str,e_re.Current ) loop
return new_str
注意,這里我一般只使用共享方法:
shared public Function GetBbcode(byref str as string ) as string
其中傳入的參數(shù)是引用,這樣速度更快,因為一般的說來,需要轉(zhuǎn)化的字符串較長,這點還是重要的。
出處:藍色理想
責(zé)任編輯:moby
上一頁 程序之規(guī)劃篇 下一頁 用戶控件設(shè)計
◎進入論壇網(wǎng)絡(luò)編程版塊參加討論
|