前端框架改變了時代之舊技術未必死了

 

前言:

一直以來,我覺得只要是Web開發人員,JavaScript 一定是個必修課題,隨著時代的變遷,前端框架在這幾年快速崛起,但我想會這樣快速崛起一定有它的原因跟道理,那為什麼大家會願意去學框架?,並不是為了潮流或是炫技,而是(技術或框架)最終的目的是幫你節省時間,固然學習一定有成本,保哥曾經說過,如果學習一樣技術,連續30天還沒有辦法理解與運用,那麼這樣的學習門檻未必也太高,所以前端框架已經慢慢的在降低學習門檻,可以從最一開始的Angualr演進到現在,React,以及Vue.js最後學習了Angualr 跟 React的一些特性,加上有中文的教材,所以慢慢地降低門檻後,我自己最近也在學習Vue.js,老實說真的不難,但基本的JS觀念還是必須有,以及ES5、ES6等等,所以學習起來不算費力,只要多加練習,我相信要上手不會太難

 

正題:


為什麼我的標題會寫前端框架改變了時代,是由於小弟最近學完MVC與WebAPI,加上以前工作上也是在寫ASP.NET WebForm,而最近看了一些文章後,發現不管後端到底是WebForm、MVC、WebAPI,甚至不是微軟的solution也無訪,因為前端框架本身就沒有一定要依賴在誰底下,所以不管是PHP,或是其它網頁程式語言一概適用,所以有這樣的彈性也許也是被大眾熱愛的其中一個原因吧

前端框架MVVM:

我們常常聽到MVVM,那麼MVVM到底是什麼?這邊我只做簡單的描述

Model、View、ViewModel 簡稱MVVM

而這樣切成三塊,每一塊都有自己的職責跟工作要做

View:可以把它想成就是Html的基本元素及一些input,但光有這樣一定不夠,因為尚未有任何資料,所以View還有一個重要的任務就是做Binding 與 ViewModel 雙向溝通,所以資料會是雙向的,他可以顯示在頁面上,亦可改變ViewModel 原本的資料,例如有一個 TextBox,他與 ViewModel 綁定後,ViewModel 丟了一個文字給 TextBox,此時 TextBox 如果被使用者輸入其他訊息,他可以馬上將 ViewModel 的資料做改變,這段過程我們無須寫任何程式,只需要在要綁定的元素上加上model屬性即可
ViewModel:在前端框架中ViewModel 扮演了相當中要的角色,我認為也是最重要的一個環節,ViewModel 的職責主要與前端 View 溝通,同時也是資料來源與 View 的溝通橋梁,剛剛前面提到了,ViewModel的資料哪裡來?  一般來說會是從後端資料庫,所以通常我們會透過JS的方式去呼叫到後端程式,例如WebApi,拿到這個JSON之後,我們會再將這個JSON塞入到 ViewModel 的 Data中,而有資料之後,我們就可以對畫面做渲染的動作
Model:資料來源,如WebAPI、或是MVC的Controller 回傳Json、WebForm回傳的物件等..

而最後附上我這幾天看到的文章
看完之後,我只有一個想法

前端框架改變了時代:


後端不管是不是MVC、WebForm、WebAPI都已經不是這麼重要了,因為前端很簡單,就是透過JS呼叫到後端拿到資料,然後做畫面的渲染,有了前端框架後,WebForm 不使用控制項、MVC不使用Razor View,全部都交給前端框架處理,那麼差異就不大,當然這兩個東西還是有它的差異,這邊就不贅述了

此外分享最近在MSDN部落格上看到的文章

此編主要是在講.NET Framework 4.5 開始,為了讓 Web Forms 也能擁有開發現代化網站的能力,開始專注提供下一代的開發技術與開發平台,解決龐大的ViewState,並不在依賴ViewState、網站的速度大大提高,另外藉由MVC成功的經驗,將MVC Model Binding機制移入到WebForm來,大可不必在像以前透過控制項與Data Source,然而擺脫了Data Source限制,即可將 Default.aspx 與 Default.aspx.cs 做職責分離,Default.aspx 就負責顯示頁面,Dafault.aspx.cs負責DAL(Data Access Layer)或BLL(Business Logic Layer)的工作,有了這樣的分層將來在維護上也會變得更好維護,另外WebForm也可以使用EF來做CRUD喔!!

MSDN部落格


結論:

技術沒有誰一定最好,只有最適合的使用情境,舊技術也未必死,只是看你怎麼運用跟搭配

相關參考連結:

asp.net Web開發框架 (4) - 使用Vue.js進行前端資料繫結顯示
AspNetWebFormsSpaVueBinding
在Web Forms專案上整合新技術,打造現代化網站​