基于.NET平台的分层架构实战(一)——综述
通過瀏覽博客園的文章發(fā)現(xiàn),很多朋友對分層架構(gòu)特別感興趣,剛好我剛做完的畢業(yè)設(shè)計就是專門研究.NET平臺上分層架構(gòu)的(題目叫“基于.NET平臺的分層架構(gòu)與設(shè)計模式應(yīng)用研究”)。通過做這篇論文,我對分層架構(gòu)有了一定的了解,所以,就萌發(fā)了想寫一個文章系列,詳述一下分層架構(gòu)。然而,論文的理論性太強(qiáng),不適合在網(wǎng)上發(fā)布,尤其不適合初學(xué)者理解,所以,我想在這個文章系列中,少講理論,而是通過做一個完整的案例來討論分層架構(gòu)的基本方法,這樣會直觀很多。希望在這個文章系列的寫作過程中,能和朋友們一起學(xué)習(xí),一起進(jìn)步。
為了讓朋友們把主要精力放在理解分層架構(gòu)而不是案例本身,我準(zhǔn)備選擇一個相對簡單的留言本系統(tǒng)作為Demo,這個系統(tǒng)的名字就叫做NGuestBook。
初步計劃將這個文章系列分為以下幾篇:
1.綜述
2.系統(tǒng)需求分析及數(shù)據(jù)庫設(shè)計
3.架構(gòu)概要設(shè)計
4.實體類的實現(xiàn)
5.接口的設(shè)計與實現(xiàn)
6.依賴注入及IoC的設(shè)計與實現(xiàn)
7.數(shù)據(jù)訪問層的第一種實現(xiàn)——Access+動態(tài)生成SQL語言
8.數(shù)據(jù)訪問層的第二種實現(xiàn)——SQLServer+存儲過程
9.數(shù)據(jù)訪問層的第三種實現(xiàn)——基于NBear框架的ORM實現(xiàn)
10.業(yè)務(wù)邏輯層的實現(xiàn)
11.表示層的實現(xiàn)
當(dāng)然,以上只是初步計劃,在寫文章的過程中可能會根據(jù)具體情況適當(dāng)調(diào)整,但是內(nèi)容大體就是這些。
這個文章系列不會對所用到的技術(shù)進(jìn)行詳細(xì)講解,具體請參考相關(guān)文獻(xiàn),閱讀文章前最好能對以下技術(shù)有一個了解:
1.C#語言
2.ASP.NET
3.設(shè)計模式
4.關(guān)系數(shù)據(jù)庫基礎(chǔ)知識
5.軟件架構(gòu)基本原則與軟件工程基礎(chǔ)知識
6.基于NBear框架的ORM技術(shù)
7.JavaScript,Ajax
8.ASP.NET AJAX框架(特別是客戶端編程)
9.HTML,CSS,標(biāo)準(zhǔn)化布局
另外,本文章系列是基于.NET framework2.0框架平臺進(jìn)行討論,3.5平臺的新特性(如LINQ、ASP.NET MVC等)不會討論,IDE使用Visual Studio 2005,數(shù)據(jù)庫會用到SQLServer2005 Express和Access2003。
?
用Nfx類庫建立三層應(yīng)用?
http://forum.entlib.net.cn/showtopic-1363.aspx
--引用--------------------------------------------------
個人知識管理: 沒有做過幾個成功的大型項目,還是少寫這方面的內(nèi)容為好。分層這東西,技術(shù)要很全面,SOA、COM+、數(shù)據(jù)庫、負(fù)載平衡....至少要研究Sharepoint、Reporting等等后再說
第一次給人撥泠水
--------------------------------------------------------
同意這種觀點
?
--引用--------------------------------------------------?
李中華: 數(shù)據(jù)庫設(shè)計應(yīng)該屬于詳細(xì)設(shè)計的最后一部分或者在詳細(xì)設(shè)計之后的一個設(shè)計。?
不應(yīng)該在架構(gòu)概要設(shè)計之前。?
數(shù)據(jù)庫的在這個系統(tǒng)中的主要功能就是存儲,存儲的內(nèi)容應(yīng)該是用戶的數(shù)據(jù),除了用戶的數(shù)據(jù),還可能會存儲一些系統(tǒng)配置方面的數(shù)據(jù)。?
在設(shè)計中,根據(jù)需求,首先要分析與設(shè)計的就是UI層,它直間面對用戶,用戶的需求,很大部分會體系在UI層上。一個不合理的UI,很有可能導(dǎo)致你的業(yè)務(wù)層也不合理。當(dāng)明確UI層后,再進(jìn)行業(yè)務(wù)層的設(shè)計,尋找邊界類、控制類、實體類,這里很可能會迭代設(shè)計你的UI層,這次的迭代設(shè)計,不需要詳細(xì)到你的類有哪些具體的字段,但可以有一兩個主要字段,當(dāng)然,必須擁有主要的方法,詳細(xì)的字段,應(yīng)該是詳細(xì)設(shè)計的工作。業(yè)務(wù)層里,你還要設(shè)計業(yè)務(wù)流程。這里只是設(shè)計,不談實現(xiàn),也不要去實現(xiàn),但可以寫一些偽代碼。業(yè)務(wù)層設(shè)計好后,再來設(shè)計數(shù)據(jù)層。數(shù)據(jù)層的數(shù)據(jù)模型可以根據(jù)業(yè)務(wù)層中的實體類來設(shè)計,但他們不一定要一一對應(yīng)。概要設(shè)計完成了,接下來就是細(xì)化,進(jìn)行詳細(xì)設(shè)計。?
--------------------------------------------------------?
恩,同意您的看法。數(shù)據(jù)庫的設(shè)計應(yīng)該放在概要設(shè)計之后。這里文章的寫作順序并不代表實際的設(shè)計順序,在這個文章系列中,由于Demo非常簡單,所以實際上不存在真正的需求分析和數(shù)據(jù)庫設(shè)計,這里所謂的“數(shù)據(jù)庫設(shè)計”只是一個簡單實體、關(guān)系和數(shù)據(jù)表介紹,讓讀者對Demo有個大體的認(rèn)識。?
這個文章系列中,只是討論空間建構(gòu),并沒有涉及開發(fā)順序問題,所以文章順序并不代表開發(fā)順序,呵呵。?
另外,你這段描述對我非常有啟發(fā),也很有學(xué)習(xí)價值,謝謝!!!
?
轉(zhuǎn)自:https://www.cnblogs.com/leoo2sk/archive/2008/06/16/1223312.html
?
總結(jié)
以上是生活随笔為你收集整理的基于.NET平台的分层架构实战(一)——综述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果也开始搞“花呗”了:先用后付在国外火
- 下一篇: asp.net ajax控件工具集 Au