MVC與WinForm的優(yōu)勢(shì)?。?/h1>
1 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
MVC縱向切割了開(kāi)發(fā)過(guò)程中的代碼,從服務(wù)器到瀏覽器層層分離,層次之間耦合度很低,因?yàn)樗琼樦讓拥拈_(kāi)發(fā)脈絡(luò)進(jìn)行封裝,所以有利于開(kāi)發(fā)者對(duì)整個(gè)程序過(guò)程流轉(zhuǎn)的理解。但是MVC有一個(gè)非常大的缺點(diǎn),這個(gè)缺點(diǎn)是和整個(gè)軟件發(fā)展思路相背離的,那就是它無(wú)法封裝、無(wú)法封裝所以無(wú)法被重用。有誰(shuí)看到過(guò)mvc下面的組件?有的只是一個(gè)個(gè)現(xiàn)成的案例,然后拿來(lái)修改。因?yàn)橐粋€(gè)組件肯定牽涉到控制和顯示,但是mvc的開(kāi)發(fā)這兩個(gè)層次是分離的。MVC只適合輕量級(jí)的開(kāi)發(fā),桌面開(kāi)發(fā)是極少用到mvc模式的。然而web開(kāi)發(fā)恰恰就是輕量級(jí),至今所有的web開(kāi)發(fā)都是輕量級(jí)的,因?yàn)榫W(wǎng)絡(luò)硬件條件的限制,不需要也無(wú)法做到非常復(fù)雜的邏輯。這也是MVC非常非常適合web開(kāi)發(fā)的原因。 WebForm是微軟前面一套web開(kāi)發(fā)的機(jī)制。它橫向切割了代碼,控制和顯示是封裝在一起的。它從開(kāi)發(fā)者思維邏輯上而不是實(shí)際情況上對(duì)代碼進(jìn)行封裝,開(kāi)發(fā)webform容易上手的原因也就在此了,但這個(gè)不利于開(kāi)發(fā)者對(duì)底層程序流轉(zhuǎn)機(jī)制的理解。WebForm中view和controller是放在一起的,WebForm一出現(xiàn)后,隨之而來(lái)的是大量的組件誕生,這是mvc模式下看不到的。微軟的經(jīng)驗(yàn)之一是硬件發(fā)展很迅速。代碼的封裝是靠犧牲運(yùn)行效率來(lái)提高開(kāi)發(fā)效率,犧牲的運(yùn)行效率通過(guò)提高硬件性能來(lái)解決。但微軟在webform上犯了經(jīng)驗(yàn)主義的錯(cuò)誤,這個(gè)經(jīng)驗(yàn)不適合網(wǎng)絡(luò)硬件,網(wǎng)絡(luò)硬件要考慮兼容性而且是國(guó)家的基礎(chǔ)設(shè)施,更新的靈活性遠(yuǎn)比單機(jī)要差。大量的組件因?yàn)橛布钠款i無(wú)法給WebForm帶來(lái)什么優(yōu)勢(shì)。在發(fā)展了幾年webform后,微軟覺(jué)得這樣下去不行,等到網(wǎng)絡(luò)硬件發(fā)展起來(lái)不知道到猴年馬月了,所以就抄了一下成熟的mvc,通過(guò)Entity Framework做數(shù)據(jù)庫(kù)和對(duì)象的映射,很明顯,它是為了充當(dāng)mvc中那個(gè)Model。通過(guò)mvc來(lái)控制和展示。 webform生產(chǎn)關(guān)系是比mvc先進(jìn)的,但是它不適合現(xiàn)在的網(wǎng)絡(luò)設(shè)施生產(chǎn)力,如果要適合說(shuō)不定要10年后。webform和mvc很好的印證了生產(chǎn)關(guān)系必須適合生產(chǎn)力,即使強(qiáng)大如微軟也無(wú)法改變客觀規(guī)律。
- 1 回答
- 0 關(guān)注
- 1062 瀏覽
添加回答
舉報(bào)