Stella 知識庫 認識論壇的結構

2021-09-05 13:58:31 字數 1544 閱讀 8189

-- 系列文章與stella forum v2.0搭配使用效果更好 -- 將解決方案在vs開啟後,您會看到一長串的專案,這些專案的具體解釋可以看論壇的架構圖。肯定有人第一眼就暈了,呵呵,不要緊,慢慢來。

您的第一反應應該是開啟web這個專案,然後檢視具體的頁面,比如default.aspx,該頁面的重要**如下

整個論壇的結構基本上都是這樣子的,頁面的內容都放在container控制項中,該頁面在裡面放了三個控制項,infosum用來顯示統計資料, forumindex顯示各個板塊的資訊, links則是友情連線。

沒錯,所有的頁面都是由控制項組成。具體的操作都在控制項裡面。

然後我們開啟webcomponents專案,找到infosum控制項,以這個為例子來說明一下這些控制項的執行機制。

下面是該控制項裡的重要**,我只取了一段

public infosum()

protected system.web.ui.webcontrols.label topicsum;

protected override void initskin(system.web.ui.control skin)

從我的注釋應該可以看出這個控制項的內部機制:動態載入使用者控制項,然後初始化這個使用者控制項。這樣做的原因是為了達到更換**的目的。

需要注意的是,所有的這些控制項都繼承自baseskin,關於這個準備另寫文章說明。您現在只需要知道控制項的內部機制的大體就可以。

上面還有乙個很重要的地方,就是業務層的呼叫。一般對業務層的呼叫都是在控制項內完成。

系統是典型的三層架構的,所以對底層的呼叫就是很自然的事情。

三層架構的系統是怎麼執行的?這個問題一開始可能會很難理解。我的建議是您可以使用vs提供的單步除錯的機制來熟悉基本的過程。比如在 model.forumdata fd=business.cached.getforumdata();這裡設定乙個斷點,然後使用單步除錯一行**一行**的看程式流的走向。對本系統 來說大致是這樣的

web->webcomponents->business->factory->spldal

我正在考慮要不要畫乙個流程圖一起達到包裡。問題的關鍵在於,有的時候我自己都看不懂那些線條和方框的意思。

來看business.cached.getforumdata()的實現加深一下理解

呼叫了business.forum取資料 來看

public model.forumdata getforumdata()

根據我們的設定,dalfactory.getforum()返回的是spldal.forum,內部的實現為

public model.forumdata getforumdata()

return null; }

這裡得到資料後,再一層層的返回,直到最後給web使用。

Stella 知識庫 模型類的設計

系列文章與stella forum v2.0搭配使用效果更好 這裡的模型類,在有些地方也叫 業務實體 等名字,一句話,是一些代表了軟體世界需求的剝離了行為的類。沒有了行為,這些類自然就是一些資料的集合,而他們的作用,自然也是傳遞資料。在分層的架構中,使用模型類來傳遞資料更加的有意義。說了這麼多,下面...

Stella 知識庫 保護你的web程式

覺得這篇寫得還不錯,於是就掛到主頁來,希望諸高手指教 系列文章與stella forum v2.0搭配使用效果更好 就我現在掌握的知識並結合sf2來分析一下如何保護web應用程式 1.限制使用者的活動 2.伺服器端的驗證 3.安全 1.限制使用者的活動 這是最基本的做法,永遠不要相信使用者的輸入 是...

知識的表示與知識庫

知識表示是人工智慧課程三大基礎 知識表示 知識推理以及知識應用 之一。在解決實際問題中,通常需要用到多種不同的表示方法,因為每種資料結構都有其優缺點,沒有哪種資料結構擁有多種功能,因此需要對知識根據具體應用而採用不同的知識表示方法。狀態空間法 為描述某類不同事物之間的差別,以符號表示其狀態,通過算符...