標籤:
首先祝大家新年快樂。萬事如意。
開發網站程式也有一些年頭了,從最初的靜態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網站的價值不僅僅是提供寫作平台,而是如何通過大資料手段,提煉資料中的內容,分類,整理,自動摘要和歸檔。
如果做不到這一點,即使以後介面再漂亮,也是一個除了使用者和文章,什麼都沒有的網站。
思考:用開發移動app的觀念來開發網站