首先祝大家新年快樂。萬事如意。
開發網站程序也有一些年頭了,從最初的靜態HTML+ JS,到后來的WebForm,然后過渡到現在的MVC。
由於最近做一些技術調研,也接觸了很多移動開發,iOS和Android的東西也知道點,會做一些簡單的app。
做移動app做多了,再回頭看網站開發,我開始懷疑,我們到底需不需要ASP.NET MVC這樣的框架?
網站的本質就是 HTML + CSS +JS + HTTP(TCP/IP)協議 + 可以響應HTTP協議的服務器。
移動app的本質是 移動UI + HTTP(TCP/IP)協議 + 可以響應HTTP協議的服務器。
其實,他們沒有多少本質區別,所以,現在各種 Hybird App 大行其道。
我們經常說,前后端分離,真正操作的時候,或多或少都會違反這個原則。
在真正做好一個前后端分離的系統,其實可以強迫這個系統現實 移動app和網站共享的功能。
如果一開始的目標就是移動網站共享內容,則設計的時候,就是圍繞REST的API開始的,而不是前后端雜糅的Razor的設計。
對於一些老的程序員,習慣MVC的人來說,必然會有些反感,畢竟傳統的做法,開發效率非常高,一個小型的網站,可以用小時來計算開發時間。
如果改用新的方法,頁面和服務器只是通過AJAX來通訊,則非常考驗前端的水平。
AngularJS 或者 ReactJS這樣的框架雖然不是必須的,但是如果可以的話,在深入理解的前提下,可以使用。
WebPack,Gulp,Nodejs這些東西,也會隨着AngularJS,ReactJS的引入而進入工作范圍之內。
這樣做的結果就是 MVC里面,
V完全在前端,這個毫無疑問
數據庫關聯的業務邏輯M完全在服務器端(購物車計算總價格,復核,扣款),前端也會處理一些簡單的業務邏輯(購物車計算總價格,只是初步計算,不作為服務器處理憑證),
C的話,基本上變得極其薄了,被Angular或者React和他們的衍生品取代了。或者說,C的話,變成了前端的C和后端的C。
MVC的核心功能:路由,數據和表單綁定,數據驗證
數據驗證,TypeScript(強數據類型),ES6(完整正則功能)都可以處理了。原本MVC也是靠JS+特性標簽做到數據表單驗證的。
現在的前端也開始慢慢引入強數據類型的概念了。React框架的prop也是支持強類型的。
數據驗證,Razor基本上可以完全被前端框架取代了,(當然,微軟在模板上曖昧的態度也值得吐槽一下,Razor之后又推出智能標簽(MVC6),原本覺得模板應該像后端,現在覺得模板應該像前端)
路由倒是一個我不熟悉的領域,不發表意見。
將來的網站開發,在大數據和越來越成熟的各種服務的幫助下,可能核心價值會發生很大的變化。
以前我們需要做一個登陸,注冊的頁面,現在可以直接用微信,QQ,微博進行注冊和登陸了,這些功能可以簡化了。
像博客園這樣的網站,UGC,各種現成的UGC可以直接拿來使用,各領域的內容管理系統,內容的數據挖掘,內容分析,UGC到知識庫的整理將變成UGC網站的核心價值。
一個UGC網站的價值不僅僅是提供寫作平台,而是如何通過大數據手段,提煉數據中的內容,分類,整理,自動摘要和歸檔。
如果做不到這一點,即使以后界面再漂亮,也是一個除了用戶和文章,什么都沒有的網站。