国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

多層結(jié)構(gòu)來開發(fā)ASP.NET程序

2024-07-10 12:57:30
字體:
供稿:網(wǎng)友
注冊會員,創(chuàng)建你的web開發(fā)資料庫,最近我們用asp.net開發(fā)了一個企業(yè)內(nèi)部的軟件開發(fā)管理系統(tǒng),這也是我們第一次用asp.net,用的語言是c#。下面我著重講一下我們系統(tǒng)的架構(gòu),懇請大家指點。

先講講系統(tǒng)開發(fā)的背景。系統(tǒng)不大,開發(fā)的目的也是用來管理我們公司的軟件開發(fā)流程,同時達(dá)到學(xué)習(xí).net的目的。既然是公司自己的系統(tǒng),同時還帶有學(xué)習(xí)的目的,所以在系統(tǒng)的架構(gòu)上,我們也力求結(jié)構(gòu)完整和清晰,而把性能等其他放在第二位考慮。存在很多不完善的地方也是在所難免的,大家?guī)е械难酃鈦砜创秃昧耍海?br>
系統(tǒng)分為4層,分別為(web)表示層、(facade)業(yè)務(wù)外觀層、(rules)業(yè)務(wù)邏輯層和(data)數(shù)據(jù)層。每層分別屬于自己的project。另外還有一個用于處理共通業(yè)務(wù)的project。他們之間互相的調(diào)用關(guān)系如下所示:
web --> facade --> rules --> data --> db

下面分別來講講每層的作用和特點:
data層叫數(shù)據(jù)層,它負(fù)責(zé)數(shù)據(jù)的提取和轉(zhuǎn)換。data層繼承自datatable。在它上面建立了一個數(shù)據(jù)庫的映射關(guān)系,也就是說,數(shù)據(jù)庫的每一個字段在這里都有一個常量和它關(guān)聯(lián)。它封裝好了select,insert和update方法。你可以像操作datatable那樣來操作它,比如取值前先調(diào)用select方法,然后再用odata.getvalue(i,數(shù)據(jù)庫字段的別名)就可以取得值了。插入和更新操作前先用odata.getvalue(i,數(shù)據(jù)庫字段的別名,value)設(shè)置值,然后再調(diào)用insert或者update方法。通過這層,就把數(shù)據(jù)庫的定義和上層業(yè)務(wù)邏輯分離開了。

data上面是rules層。rules層叫規(guī)則層,那它主要做什么呢?其實很簡單,data層相當(dāng)于是數(shù)據(jù)庫的一個記錄集,它可能包括了很多條記錄。而rules這一層則把包含多條記錄的data對象拆分成多個rules對象,通過提供屬性的方式給facade層調(diào)用。在這一層上,根據(jù)業(yè)務(wù)規(guī)則做一些處理和檢查操作。上一層就可以通過調(diào)用rules對象不同的屬性來獲取相應(yīng)的處理后的值。

facade層叫業(yè)務(wù)外觀層,它在rules層的上一層。它主要負(fù)責(zé)一些業(yè)務(wù)的外觀處理,組織多個rules對象和為web層提供顯示準(zhǔn)備等。

最上層就是web表示層了。它負(fù)責(zé)處理頁面上的一些check和顯示的制御等等。

以上結(jié)構(gòu)也是參考了微軟的duwamish 7.0。并且每層的命名完全是按照微軟的命名來的。在具體實施的過程中,根據(jù)上面的設(shè)計,data和rules層已經(jīng)很有規(guī)律了,而且數(shù)據(jù)庫的定義是通過我們公司的另外一個系統(tǒng)來管理的,數(shù)據(jù)庫表和列的定義都可以很方便的得到,于是我們制作了一個自動生成data層和rules層的小工具,這個小工具能自動生成data層和rules層的類,你要做的僅僅是根據(jù)你的業(yè)務(wù)來充實rules層的類和處理facade和web層了,這樣就大大地減輕了我們的負(fù)擔(dān)。

系統(tǒng)現(xiàn)在已經(jīng)編碼測試完成正準(zhǔn)備投入試用。由于是在企業(yè)內(nèi)部網(wǎng)上使用,也沒感覺慢:)。但是性能不好是肯定的了,接下來就是要想辦法如何來提高性能了。

在開發(fā)的過程中,自己也總是不斷的拿它來跟jsp比較。個人asp.net還是很不錯的,它可以讓你象桌面程序開發(fā)那樣來開發(fā)web程序,微軟也提供了很豐富的控件,但是很多控件感覺有點像雞肋,好像用起來挺方便,但是卻有各方面的缺陷不是很實用。另外vs.net這套開發(fā)工具還有很多bug,由于是在進(jìn)行的時候(我們用的是2003版)。不過據(jù)說vs.net 2005在2003的基礎(chǔ)上改良了很多,很值得期待。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 滕州市| 调兵山市| 巫山县| 桃园县| 邵阳县| 噶尔县| 高雄县| 高邮市| 昌邑市| 徐汇区| 揭阳市| 霞浦县| 哈尔滨市| 南城县| 乌拉特前旗| 沁水县| 阜南县| 民勤县| 汉阴县| 株洲县| 尤溪县| 邯郸县| 阳江市| 杭锦旗| 榕江县| 吴桥县| 常宁市| 辽中县| 潞西市| 乐都县| 竹北市| 鄂温| 天长市| 西畴县| 竹山县| 曲沃县| 都昌县| 隆德县| 定西市| 分宜县| 巩义市|