WEB技術之四層架構

2021-04-12 19:17:09 字數 2188 閱讀 9643

如果你的系統是大型的軟體開發,那你就要做好更多層的分解,但是原則和理論上,我認為,不用分得太細。我們都知道,mvc模式把系統,分成model、view、controller。這樣的分法是把表示層同邏輯層分開,也就是說把頁面設計師同軟體設計師分開。系統分析師再把各個功能寫成介面,軟體設計師就可以通過業務邏輯來寫程式。

我所說的四層架構的分法,就是想把軟體設計師工作量降下來,減少重複性的**,提高開發速度,使軟體有相當好的可維護、易擴充套件,這種四層架構對多人開發同軟體來說,可以有個清晰的思路。我把系統分成表示層(ui)、業務邏輯層(bussiness)、資料訪問層(dataaccess)、資料實體層(dataenity)。如果你還考慮到資料庫設計的話,就是五層架構。我的出發點是從軟體設計師角度,所以說是四層。其中,最好把所有的儲存過程和sql語句都寫在資料庫裡,可以便於資料庫的改變的修改和維護,同時也可以減少程式中的不穩定性。接下來,就是講到如果更合理、更有效地把複雜的系統分析成多層,以達到系統的結構清晰、提高速度。

表示層主要就是做好合理的、適合客戶的頁面,這主要是美工的工作,程式設計師只需把對應的資料傳過去就行了。當然,這就是你對asp.net控制項的熟悉程度了。也是對微軟技術學習中慢慢積累起來的。如果客戶有需求你做電子商務,那你就要考慮用到web server,還要用到xml。從系統分析來說,表示層就是輸入操作與輸出操作的平台,你要把要輸入的資料轉換到下面一層及業務邏輯層(bussiness)要可以運算元據,和把下層業務邏輯層(bussiness)傳出的資料,轉成客戶想要的效果,格式有很多種:是office的格式(.doc/.exel等),還是圖形影象,還是報表等及其它格式。對web技術來說,我們要把頁面設計的一些元素統一管理,可以建立乙個圖書館(lib):放入(images)、指令碼放入(js)、css。其中還有上傳、附件 可以新建乙個資料夾(loadfilder)。做成這些程式設計外的準備以方便設計階段的有上清晰的認識。

資料訪問層(dataaccess)是.net的核心技術的運用,當從這層的表面意思,你應該知道,這是對資料進行底層和原始資料的操作,要把提高開發速度與質量就是做好資料訪問層的分析的優化。當然,業務邏輯層的業務邏輯分析很重要的,我現在討論的資料訪問層只對sql server資料庫的操作,不討論對其他資料庫的操作。對資料庫操作,要做到事務處理及異常捕獲,及各種不種資料庫之間聯絡。比如:對單錶的操作、對聯絡表的操作,對不同資料庫間的操作,從sql語句來說,就是做好insert、select、update、delete的應用,對資料庫的操作就是可以返回不同的資料型別,可是dataset、 datatable、datareader、bool等,在.net架構裡,可以把這一層基類寫詳細、寫完善,把它生成dll檔案。只要通過元件的引用就可以現實資料訪問的功能,所以你寫好了,就可以把資料訪問層的寫**量的時間省下來。資料訪問層主要是能對資料進行四種常用操作,也就是資料讀入輸出的作用,可以用sql語句,也可以用引數如:datatable的變通方法。程式設計的開發,就是從資料庫設計開始,這足以說明資料庫設計的關鍵。

現在來談談業務邏輯層(bussiness),我在學習其他的多層架構時,在想這多層架構嘛,只要乙個就夠了,只要能提高開發速度,達到可易維護性、可擴充套件,就行了。有一種架構,把頁面寫類庫完全分開,這就是用到codebehind技術,在開源的時代,我個人認為這種**才是最好實現隱藏性把頁面與程式的徹底的分開,使系統有很大的擴充套件空間,這種方案有待下次討論,這裡先做個標記。此層關係系統是否可用的關鍵層,越是關鍵就越覺得模式的重要性,一種做法是:同資料訪問層相對應,把概要設計分出的角色類新增方法、屬性、事件、索引、介面。真正**的實現部分就在這裡,這是乙個智慧型的地方。可是沒有人注意到這一點,只認為這一些的**無非是對資料訪問層的一種重用。第二種做法是:定義介面把它的**實現部分包裝起來。在這種做法中,可以用到多種設計模式。

有的人把通用的基類及通用的函式到通用層,或是把通用的基類寫到各個層類。這是種不可取的方法。如果有乙個框架層(framework),這一層做什麼用的呢?就是要通用的類庫集中在這層。也是乙個通用的基類,可以把一些常用的基類換在這層。也可以動態引用動態類庫。對軟體技術開發來說,對已有技術的一種引用是一種聰明的做法、也最有效的做法。

分層分得太多可能會增加軟體的複雜程度。如果是小型性軟體,要的就是簡單與易用,沒有必要分太多,對於擴充套件性的問題,可以運用框架層來解決。

你終愛演算法嗎?你會對程式結構追求一種完美嗎?我們的目標就是要把程式開發變成一種智慧型的淨土,而不是傷心地,我們要追求的是一種藝術美,不是一種痛苦。痛恨那些把程式天堂變成地獄的魔鬼。

WEB技術之四層架構

如果你的系統是大型的軟體開發,那你就要做好更多層的分解,但是原則和理論上,我認為,不用分得太細。我們都知道,mvc模式把系統,分成model view controller。這樣的分法是把表示層同邏輯層分開,也就是說把頁面設計師同軟體設計師分開。系統分析師再把各個功能寫成介面,軟體設計師就可以通過業...

Web技術四層結構

如果你的系統是大型的軟體開發,那你就要做好更多層的分解,但是原則和理論上,我認為,不用分得太細。我們都知道,mvc模式把系統,分成model view controller。這樣的分法是把表示層同邏輯層分開,也就是說把頁面設計師同軟體設計師分開。系統分析師再把各個功能寫成介面,軟體設計師就可以通過業...

web前端之CSS技術(四)

12.網頁布局總結 13.元素的顯示與隱藏 續web前端之css技術 一 續web前端之css技術 二 續web前端之css技術 三 浮動可以讓多個塊級盒子一行沒有縫隙排列顯示,經常用於橫向排列盒子。定位則是可以讓盒子自由的在某個盒子內移動位置或者固定螢幕中某個位置,並且可以壓住其他盒子。定位 將盒...