日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > C#三十五 三層架構(gòu)企業(yè)應(yīng)用

C#三十五 三層架構(gòu)企業(yè)應(yīng)用

來源:程序員人生   發(fā)布時間:2016-06-01 18:02:13 閱讀次數(shù):3493次

1.1          3層架構(gòu)簡介

 

假設(shè)你在經(jīng)營1個大飯店,大體上你會請3方面的人,1方面是負(fù)責(zé)飯店服務(wù)的服務(wù)員,1方面是負(fù)責(zé)烹飪、做飯的廚師,1方面是負(fù)責(zé)飯店蔬菜、肉類、調(diào)料等的采購員。


如果你這樣做了,那末飯店管理起來,就好比較好管理(簡單來講)。比如任何1方面的員工出現(xiàn)請假或離職的情況,可以找其他的服務(wù)員、廚師或采購員代替。

在企業(yè)中這類職責(zé)分離、業(yè)務(wù)獨(dú)立的部門劃分方法對管理企業(yè)有很大的好處,一樣在程序中也需采取“職責(zé)分離、業(yè)務(wù)獨(dú)立的”的原則劃分模塊,更好的實(shí)現(xiàn)“高內(nèi)聚、低耦合”的軟件設(shè)計(jì)思想。

 

1.2為何要使用3層架構(gòu)

  

     那末我們?yōu)楹我褂梅謱娱_發(fā)呢,它有甚么獨(dú)特的優(yōu)勢呢?

.NET開發(fā)平臺為我們做開發(fā)提供了強(qiáng)大的技術(shù)支持,使我們的開發(fā)變得非常便捷,高效。通過code behind的強(qiáng)大支持,我們可以將頁面設(shè)計(jì)和代碼設(shè)計(jì)有效的分離,代碼編寫,頁面設(shè)計(jì)同時進(jìn)行。

的確,僅從功能實(shí)現(xiàn)的基礎(chǔ)來講我們已做得很好了,特別對1個簡單的利用來講,代碼量不是很多的情況下,這類1層結(jié)構(gòu)開發(fā)完全夠用了,沒有必要弄得那末復(fù)雜。但是對1個復(fù)雜的大型系統(tǒng)來講這樣的設(shè)計(jì)的缺點(diǎn)就很嚴(yán)重了。

在開發(fā)進(jìn)程中我們會不停把代碼到處復(fù)制,以實(shí)現(xiàn)1些相似的功能。一樣的代碼為何要寫那末屢次?不但使程序變得冗雜,更不利于保護(hù),1個小小的修改也許會波及很多頁面。略微不留心就會致使異常的產(chǎn)生,使程序不能正常運(yùn)行。最主要的面向?qū)ο蟮乃枷霙]有得到絲毫的體現(xiàn),打著面向?qū)ο蟮幕献訁s仍然走著面向進(jìn)程的老路。

意想到這樣的問題,我開始將程序中1些公用的處理程序?qū)懗晒卜椒ǚ庋b在類中,供其它程序調(diào)用。象1些功能型的代碼集合,數(shù)據(jù)庫操作,猶如SqlHelper那樣對數(shù)據(jù)操作進(jìn)行公道封裝,把sql語句,參數(shù)列表作為參數(shù),在數(shù)據(jù)庫操作進(jìn)程中,只要傳入相應(yīng)的參數(shù)就能夠完成特定的數(shù)據(jù)操作,這就是我1開始的數(shù)據(jù)訪問層,再不用每次操作數(shù)據(jù)庫時都寫那些重復(fù)性的數(shù)據(jù)庫操作代碼。在新的利用開發(fā)中,數(shù)據(jù)訪問層可以直接拿來用。

面向?qū)ο蟮?大特性之1的封裝性在這里得到了很好的體現(xiàn)。似乎找到了面向?qū)ο蟮母杏X,代碼量較之前有了很大的減少,而且修改的時候也比較方便。這下應(yīng)當(dāng)可以了吧?

試問1下,如果有1天數(shù)據(jù)庫供應(yīng)商產(chǎn)生了變化,由于數(shù)據(jù)量的增加,數(shù)據(jù)庫access變成了sql server?這下麻煩大了,原來的數(shù)據(jù)訪問層失效了,數(shù)據(jù)操作對象產(chǎn)生了變化,且頁面中觸及數(shù)據(jù)對象的地方也要進(jìn)行修改,由于原來可能會使用OleDbDataReader對象將數(shù)據(jù)傳遞給顯示頁面,現(xiàn)在都得換成SqlDataReader對象,sql和access支持的數(shù)據(jù)類型也不1致,在顯示數(shù)據(jù)時進(jìn)行的數(shù)據(jù)轉(zhuǎn)換可能也要進(jìn)行修改。由sql向access的轉(zhuǎn)換所做的修改會更多。

還有1種情況,由于某種需要,我們要把Web情勢的項(xiàng)目改造成windows利用,這時候牽涉的修改有多大呢?如果在你的aspx.cs中放了很多處理代碼,或還有1部份代碼存在于aspx中呢windows利用中可沒有aspx阿,是否是全部系統(tǒng)需要重新來做了?這都是設(shè)計(jì)不公道惹的禍。

   

1.3          3層架構(gòu)的構(gòu)成

 

我們通常說的3層架構(gòu)包括表示層、業(yè)務(wù)層和數(shù)據(jù)層3層,對利用系統(tǒng)來講,表示層和用戶交互并顯示數(shù)據(jù),業(yè)務(wù)層負(fù)責(zé)訪問數(shù)據(jù)層并向表示層提交數(shù)據(jù),數(shù)據(jù)層負(fù)責(zé)數(shù)據(jù)的存儲。下面來詳細(xì)論述3層架構(gòu)的含義及其組成:

n       表示層

它主要是指與用戶交互的界面,它接收用戶的輸入,但其實(shí)不包括任何實(shí)際的業(yè)務(wù)處理,它只是簡單地講數(shù)據(jù)轉(zhuǎn)交給業(yè)務(wù)層,同時負(fù)責(zé)展現(xiàn)業(yè)務(wù)層傳遞過來的數(shù)據(jù),當(dāng)后臺業(yè)務(wù)邏輯更新時,表示層就會顯示這些更新。表示層提供利用程序的用戶界面(UI),通常包括Windows窗體、Asp.NetWeb窗體。

n       業(yè)務(wù)層

它代表了利用程序的核心功能,負(fù)責(zé)處理數(shù)據(jù)層的數(shù)據(jù),實(shí)現(xiàn)業(yè)務(wù)邏輯,用于實(shí)現(xiàn)某種規(guī)則的業(yè)務(wù)處理以匹配特定公司的需要。例如,肯定某個指定客戶是不是被批準(zhǔn)進(jìn)行某項(xiàng)借貸活動的業(yè)務(wù)規(guī)則可以封裝在小型解決方案的客戶業(yè)務(wù)組件中。對大型解決方案,所有與借貸有關(guān)的業(yè)務(wù)邏輯可能都封裝在單獨(dú)的1個借貸組件中。

n       數(shù)據(jù)層

數(shù)據(jù)訪問層:有時候也稱為是持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫的訪問,可以訪問數(shù)據(jù)庫系統(tǒng)、2進(jìn)制文件、文本文檔或是XML文檔。簡單的說法就是實(shí)現(xiàn)對數(shù)據(jù)表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那末就會包括對象和數(shù)據(jù)表之間的mapping,和對象實(shí)體的持久化。

 

將3層架構(gòu)與飯店的各個人員層相比較的圖以下:

 

3層結(jié)構(gòu)的優(yōu)點(diǎn)

1)從開發(fā)角度和利用角度來看,3層架構(gòu)比雙層或單層結(jié)構(gòu)都有更大的優(yōu)勢。3層結(jié)構(gòu)合適群體開發(fā),每人可以有不同的分工,協(xié)同工作使效力倍增。開發(fā)雙層或單層利用時,每一個開發(fā)人員都應(yīng)對系統(tǒng)有較深的理解,能力要求很高,開發(fā)3層利用時,則可以結(jié)合多方面的人材,只需少數(shù)人對系統(tǒng)全面了解,從1定程度工下降了開發(fā)的難度

2)3層架構(gòu)可以更好的支持散布式計(jì)算環(huán)境。邏輯層的利用程序可以有多個機(jī)器上運(yùn)行,充分利用網(wǎng)絡(luò)的計(jì)算功能。散布式計(jì)算的潛力巨大,遠(yuǎn)比升級CPU有效。美國人曾利用分式計(jì)算解密,幾個月就破解了據(jù)稱永久都破不了的密碼

3)也是3層架構(gòu)的最大優(yōu)點(diǎn)是它的安全性。用戶端只能通過邏輯層來訪問數(shù)據(jù)層,減少了入口點(diǎn),把很多危險的系統(tǒng)功能都屏蔽了

 

3層結(jié)構(gòu)的缺點(diǎn)
“金無足赤,人無完人”,分層式結(jié)構(gòu)也不可避免具有1些缺點(diǎn):
1、下降了系統(tǒng)的性能。這是不言而喻的。如果不采取分層式結(jié)構(gòu),很多業(yè)務(wù)可以直接造訪數(shù)據(jù)庫,以此獲得相應(yīng)的數(shù)據(jù),如今卻必須通過中間層來完成。
2、有時會致使級聯(lián)的修改。這類修改特別體現(xiàn)在自上而下的方向。如果在表示層中需要增加1個功能,為保證其設(shè)計(jì)符合分層式結(jié)構(gòu),可能需要在相應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼。

 

3層架構(gòu)的搭建




2.2點(diǎn)擊新建項(xiàng)》,選擇,利用程序配置文件

2.3打開app.config文件后,寫以下代碼:







/*在此先弱化了,業(yè)務(wù)邏輯層*/

第6步:表示層




這樣,全部完全、簡單的3層框架登錄已基本完成。

請沒有完成的同學(xué)依照此步驟,務(wù)必做完。體驗(yàn)3層框架之間類的調(diào)用與關(guān)系。

 

/*針對3層當(dāng)中的各個“相干責(zé)任類”,添加斷點(diǎn),進(jìn)行測試,看看參數(shù)傳遞效果。*/

 

下面同學(xué)們,連接項(xiàng)目組長的數(shù)據(jù)庫服務(wù)器

 



打開TCP/IP和其他服務(wù)





小結(jié):

n       3層結(jié)構(gòu)與兩層結(jié)構(gòu)的區(qū)分是甚么?

n       為何要實(shí)現(xiàn)分層?各層的作用是甚么?

n       3層結(jié)構(gòu)中各層之間相互依賴是如何實(shí)現(xiàn)的?

 

 

作業(yè):

   自己根據(jù)之前坐的賓館管理系統(tǒng)、汽車銷售系統(tǒng)等C/S系統(tǒng),根據(jù)3層架構(gòu)的思想,重新搭建新的框架。



生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久久久免费软件 | 亚洲午夜在线观看 | 久草在线免费福利 | 久久久久久久久久久久久九 | 国产第一页在线 | 国产精品美女久久 | 亚洲欧美视频一区 | 免费av一区二区三区 | 成人动漫一区二区三区 | 欧美视频网站 | 亚洲成人精品一区 | 麻豆一二三区 | 99精品成人| 成人日韩视频 | 日韩一区二区三区精品视频 | 欧美中文字幕一区二区三区亚洲 | 久久国产精品久久w女人spa | 欧美日韩精品一区二区在线播放 | 欧美国产在线视频 | 欧美另类视频 | 亚洲最大毛片 | 欧美日韩免费 | 国产高清视频一区二区 | 91精品国产乱码久久久久久久久 | 日韩欧美精品一区二区三区 | 精品亚洲精品 | 国产精品精品久久久 | 91深夜福利 | 国产原创精品视频 | 日韩一道本 | 欧美三级免费看 | 欧美一区二区三区四区视频 | 欧美日韩成人一区 | 国产欧美综合一区二区三区 | 精品成人av一区二区在线播放 | 欧美久操网| 国产黄色片在线观看 | 精品国产乱码久久久久久牛牛 | 亚洲第一福利视频 | 欧美日产国产成人免费图片 | 成人免费网站在线观看 |