捨棄ASP.NET Webform改學ASP.NET MVC的優缺點

 

    近幾年來ASP.NET Webform的工作愈來愈少,都已經被ASP.NET MVC取代了,而且現在又出來ASP.NET Core,ASP.NET MVC也逐漸被取代,但現在還是很多MVC的工作,未來會愈來愈少。

   今天就來談談ASP.NET Webform和ASP.NET MVC的比較,有哪些優點和缺點?

   ASP.NET Webform會被淘汰,一個很大的原因就是效能差,ASP.NET Webform在使用者送出資料後,畫面上文字方塊仍然能夠保留文字,這是因為是透過Postback機制,以及ViewState的Hidden標籤來記取資料,這樣子當資料愈來愈多的時候,資料量愈來愈龐大就會影響到效能。

   頁面的生命週期複雜也是ASP.NET Webform一個很大的問題,當做按下按鈕送出的動作時,就會產生Page.Load、Button.Click、Page.PreRender及其他相關事件,如果說有使用MasterPage或是按鈕放在自訂控制項時,情況就會變得非常複雜且混亂,到底是MasterPage的Load先執行,還是Content中的Load先執行?

   使用ASP.NET MVC可以解決ASP.NET以上的這些問題,但是程式設計師會面臨到新的問題。

   一個很大的問題就是使用上的不習慣,如果已經習慣寫ASP.NET Webform的工程師要學ASP.NET MVC,在剛開始的時候就會發現原本工具箱中的控制項都消失了,這些控制項確實讓程式設計師用起來很方便,但是卻是效能的一大殺手。讓人覺得最不習慣的我想應該會是ASP.NET MVC沒有GridView、DataSource這類的資料庫元件,過去使用GridView、FormView、SQLDataSource這些元件寫ASP.NET Webform網頁非常簡單,使用精靈很多事情都幫你自動完成,連使用者介面都可以調整,這過程不必寫一行程式,但是在ASP.NET MVC這些資料庫元件都沒有了,很多事情就必須要寫程式完成,也因為這個原因,程式設計師在寫ASP.NET MVC網頁時要更了解HTML、CSS、Javascript,講到這個其實我過去工作時就有程式設計師跟我說SQLDataSource不好用,那其實會害死人,他說你都用SQLDataSource不寫程式,那如果要自己改資料表的使用者介面要怎麼改?所以不要用SQLDataSource做。其實應該這樣講,ASP.NET Webform還是有它的好處,你要做一個小網站,想要趕快完成,之後也不會做太大調整,那麼使用ASP.NET Webform並且用他的這些資料庫元件GridView、SqlDataSource確實很方便,但如果之後要做調整那就不行了。

    ASP.NET Webform的網頁撰寫起來很快速方便,但是會有效能不好的問題,所以才會逐漸被淘汰,但是如果做簡單的小專案的話還是可以選擇使用ASP.NET Webform,複雜的大專案使用ASP.NET Webform就容易跑很慢,就必須要用ASP.NET MVC,長遠來講還是使用ASP.NET MVC比較好。

   以上是我對ASP.NET Webform和ASP.NET MVC差異的理解,希望對大家會有幫助。

 

 

 

 

想要更了解ASP.NET Webform和ASP.NET MVC的不同,可以看看下面這篇文章,我的這篇文章就是從下面的文章中摘要來的

觀念的轉變Web Form到ASP.NET MVC之路

arrow
arrow
    全站熱搜

    波羅、希夏普2020 發表在 痞客邦 留言(0) 人氣()