從.NET到Node.js談前后端分離實踐

jopen 9年前發布 | 72K 次閱讀 Node.js Node.js 開發

一、最初的【無分離】實踐

11年末的時候,用winForm開發程序,拖拖控件,點點按鈕,連接數據庫,做一些基本的管理系統;Java的JSP還能包攬一切,服務器端拼接模板, 頂多使用servlet做一些業務邏輯,做到后端的MVC。那時候,帶了一個學校的創新團隊,做一些項目,但是基本上是一個人前端后一起搞,現在想想,真 是【雜亂無章】,后端MVC還好,倒是前端,基本上只能做一些簡單效果,施展的空間不大,幸好,也基本能完成項目。

我稱之為【無分離】實踐,如果是像一個人搞,開發速度倒是挺快的。

前后端無分離實踐,從.NET winForm說起,當然你要說winForm沒有服務端啊,這個我后面會提到ASP.NET的分離實踐以及對winFrom的思考,或者說是【端 & 服務】的思考:

 從.NET到Node.js談前后端分離實踐

在這個過程中,經歷的是將后端業務理解的更清楚。為什么這里展示的是WinForm呢,而不是ASP.NET呢,主要原因有兩個:一個是后面將要突出【端 & 服務】,這里將桌面程序稱之為PC Client;第二個原因是后面基于ASP.NET的實踐基本上做到了前后端分離。

用Java EE開發過一個數據的分析系統,是web端的,期間第一版本基本上沒有前后端分離,具體的表現如下。

 從.NET到Node.js談前后端分離實踐

二、開始嘗試前后端分離(基于WCF的前后端分離實踐)

12年底的時候,跟著博士參加比賽,首次真正的去嘗試前后端分離,想想以前寫的程序和可維護性真是菜的不行。比賽要的是一個產品,而不是關心你選擇的平 臺。因為組內就我一個學過JAVA和開發過項目,大多是學的.NET,為了平衡,于是選擇了.NET。這次對前后端分離是最深刻的,整個后端的架構開始新 的嘗試。那時候到處都在提服務共享,于是,我到處查找資料,后來在博士的指導下看到了Restful設計。于是最終的選擇方案是.NET WCF REST + MongoDB構建服務端;前端是HTML + CSS + JS + Jquery(那時候的前端還沒有用MVC);服務器時IIS。

我們的項目名稱是"基于XXXX的服務",后來,成果也不錯,拿了不錯的成績。覺得WCF的實踐還是蠻爽的,后來在師兄公司實習也做了一點WCF的服務。具體的實踐如下圖:

 從.NET到Node.js談前后端分離實踐

整個項目就不細說,主要是說分離的實踐,貼上當時開發的作品截圖(左:服務平臺; 右:微旅行推薦應用,都是比賽科研項目):

 從.NET到Node.js談前后端分離實踐  從.NET到Node.js談前后端分離實踐

思考:winForm為什么不采用這種方式呢?

本質上,我認為桌面程序是PC Client,也是客戶端的一種,那么就可以采用的WCF提供服務的方式;因此,如果項目很大,一部分專注服務開發,一部分專注Client開發(包括PC && Web),那樣服務就可以共享,client可以各種各樣。

三、最興奮的實踐(使用Node.js做服務中間層)

參加工作到今,我所在的團隊在Node.js上的實踐應該有2-3年吧,至少我來之前,就有用在產品的研發中。Node.js在服務端的性能卓越, 尤其是擅長IO。就昨天還跟Android平臺部的同事聊天,他說Node.js給APP增添了活力和提高了整個APP的體驗。當然,參加了 node.js開發的幾款產品,對這種方式體會更加深刻。

Node.js作為中間服務的優勢,如下圖所示(嘿嘿:公司產品就不貼圖了,這里代表的是我個人的觀點)。

 從.NET到Node.js談前后端分離實踐

四、總結

(1)把【服務平臺化】,多端調用,無論是PC Client, pc web, webAPP, APP(android && ios)...

(2)專注前后端分離實踐,發揮客戶端的性能和功能,例會pc web的MVC.

(3)大膽使用node.js作為服務中間層,發揮基于事件和異步IO的性能優勢,至少,寫的一些服務的壓測結果還是挺好的(當然這是node的功勞了)。


——前端工程如此浩大,孜孜不倦,孜孜不倦(專注前端&Node.js)

來自:http://www.cnblogs.com/vczero/p/BE_FE.html
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!