李 航,許春艷
長春職業(yè)技術(shù)學(xué)院,吉林長春 130033
基于ASP.NET Web用戶控件站點(diǎn)流量統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)
李 航,許春艷
長春職業(yè)技術(shù)學(xué)院,吉林長春 130033
通過采用ASP.NET技術(shù)下的Web用戶控件可以簡化表示層的頁面復(fù)雜度,讓程序員可以專心設(shè)計(jì)流量系統(tǒng)的業(yè)務(wù)邏輯而不必在代碼維護(hù)方面花費(fèi)太多的精力。本文對站點(diǎn)流量統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)進(jìn)行了論述。
表示層;業(yè)務(wù)邏輯;站點(diǎn)流量;Web用戶控件;ascx
隨著互聯(lián)網(wǎng)技術(shù)的逐漸普及,中國網(wǎng)民的數(shù)量正在以迅猛的增長,如何招攬更多的點(diǎn)擊率,獲取更多訪問量,如何及時(shí)調(diào)整網(wǎng)站內(nèi)容已經(jīng)成為了廣大網(wǎng)站管理者目前最為關(guān)心的問題。
由此產(chǎn)生的各種輕量級的站點(diǎn)流量統(tǒng)計(jì)系統(tǒng)也開始應(yīng)運(yùn)而生,本文主要探討目前應(yīng)用范圍比較廣的基于ASP.NET Web用戶控件的站點(diǎn)流量統(tǒng)計(jì)系統(tǒng)(以下簡稱流量系統(tǒng))的設(shè)計(jì)思路。
就目前而言流量系統(tǒng)一般要具備快速統(tǒng)計(jì)站點(diǎn)流量、欄目流量、IP流量等信息。而如果單純地將以上功能的代碼直接編輯在表示層的頁面中,通常會(huì)造成代碼混亂、不易維護(hù)等問題。這里可以采用ASP.NET技術(shù)下的Web用戶控件來簡化表示層的頁面復(fù)雜度。讓程序員可以專心設(shè)計(jì)流量系統(tǒng)的業(yè)務(wù)邏輯而不必在代碼維護(hù)方面花費(fèi)太多的精力。
Web用戶控件與 ASP.NET 窗體有以下區(qū)別:
1)Web用戶控件的文件擴(kuò)展名為 .ascx;
2)Web用戶控件中沒有 @ Page 指令,而是包含 @ Control 指令,該指令對配置及其他屬性進(jìn)行定義;
3)Web用戶控件不能作為獨(dú)立文件運(yùn)行。而必須像處理任何控件一樣,將它們添加到 ASP.NET 窗體頁中;
4)Web用戶控件中沒有 html、body 或 form 元素。這些元素必須位于宿主頁中。
可以在用戶控件上使用與在 ASP.NET 網(wǎng)頁上所用相同的HTML 元素(html、body 或 form 元素除外)和 Web 控件。例如,如果要?jiǎng)?chuàng)建一個(gè)將用作工具欄的用戶控件,則可以將一系列Button Web 服務(wù)器控件放在該控件上,并創(chuàng)建這些按鈕的事件處理程序
在流量系統(tǒng)中通常會(huì)提供給用戶一個(gè)系統(tǒng)的實(shí)時(shí)時(shí)間提示,同樣這個(gè)功能可以將這些代碼封裝到一個(gè)Web用戶控件中,當(dāng)需要顯示系統(tǒng)時(shí)間時(shí),只要拖動(dòng)這個(gè)Web用戶控件的文件到具體頁面的設(shè)計(jì)視圖下就可以了。
例1:在所需網(wǎng)站根目錄下添加一個(gè)Web用戶控件,命名為DisplayTime.ascx,在其源視圖下添加如下代碼:
例2:設(shè)計(jì)顯示當(dāng)月訪問量的Web用戶控件DisplayMonthCount.ascx
在網(wǎng)站根目錄下添加新項(xiàng)Web用戶控件:“DisplayMonthCount.ascx”并在其源視圖下添加如下代碼:
進(jìn)入DisplayMonthCount.ascx.cs頁面,添加如下代碼,其中using DAL.traffic;為引入剛剛建立的DataBase.cs數(shù)據(jù)庫操作類所在的命名空間。通過創(chuàng)建DataTime對象獲取當(dāng)前月份,并將當(dāng)前月份作為檢索Func表的條件獲取滿足該月份的記錄總算,即select count(*) from func where month(loadtime)=month,其中count(*)為自動(dòng)求和函數(shù)。值得注意的是當(dāng)前訪問表Func的方式為通過構(gòu)建SQL語句在數(shù)據(jù)庫意外的環(huán)境下操作,因此需要對數(shù)據(jù)庫查詢語句進(jìn)行字符串式的封裝構(gòu)建,因此就有了定義一個(gè)String類型的數(shù)據(jù)庫查詢字符串str的定義,在此讀者應(yīng)重點(diǎn)留意帶有查詢條件(參數(shù))的查詢字符串String str=@"select count(*) from func where month(loadtime)="+month;的構(gòu)建特點(diǎn)。最后將查詢結(jié)果以一個(gè)DataReader數(shù)據(jù)集的方式返回,并字符串的方式賦值給標(biāo)簽控件Label1的Text值
例3:設(shè)計(jì)顯示當(dāng)日訪問量Web用戶控件getDayCount.ascx
在網(wǎng)站根目錄下添加新項(xiàng)Web用戶控件“getDayCount.ascx”在其源視圖下添加如下代碼:
進(jìn)入DisplayMonthCount.ascx.cs頁面添加如下代碼, 當(dāng)日訪問量設(shè)計(jì)思路與顯示當(dāng)月訪問量設(shè)計(jì)思路相同,只是篩選表Func記錄的條件改成了當(dāng)前日期即DataTime.Now.Day
[1]鄭耀東.ASP.NET從入門到實(shí)踐[M].北京:清華大學(xué)出版社,2009,9.
[2]劉亮亮,潘中強(qiáng).精通ASP.NET 2.0數(shù)據(jù)綁定技術(shù)[M].北京:人民郵電出版社.
TP393
A
1674-6708(2010)18-0127-02
李航,助教,現(xiàn)就職于長春職業(yè)技術(shù)學(xué)院,從事軟件技術(shù)專業(yè)教學(xué)工作