1. 程式人生 > >基於.Net進行前端開發的技術棧發展路線(二)

基於.Net進行前端開發的技術棧發展路線(二)

流行 app開發 技術學習 andriod 產品 發的 sele 點擊 blog

原文:基於.Net進行前端開發的技術棧發展路線(二)

前言

上一篇《我的技能樹》文章分享了我的技能成長過程,還未完成,今天繼續跟大家分享。

01

我的技能樹

我的當前的技能樹:技術分享圖片

其中,標註為黃色旗幟的是基本掌握,標註為紅色旗幟的為使用熟練。未標註的只是了解。

上篇分享完了C#部分,下面就根據我的學習歷程的先後繼續講。

02

前端開發

技術分享圖片

在上家公司上班期間,因為公司產品選型基於Winform+Devexpress(後面簡稱Dev),所以我對Winform和Dev都非常熟悉。我把Winform所有控件全部扒了個遍,而為了熟悉Dev,我又把Dev的官網文檔全部看了遍,甚至最後我開發出了基於Dev的代碼生成工具,即根據一個已定義好的Model視圖(POCO類ViewModel),通過工具自動生成模塊的列表頁面,編輯頁面。編輯頁面上的主要特性也支持自動生成,比如下拉列表,下拉數窗等。當然後來我又迅速轉向了Web開發,所以這塊現在也放棄掉了。

HTML+JavaScript+JQuery+Bootstrap:

因為在項目實施過程中,深感Winform部署不便,而且客戶往往鐘情於Web應用,這讓我下定決心轉向Web,那是17年初。但我不想用Webform,不想用.net Mvc,這些都落後了,甚至Bootstrap也相對落後了。而要趕上技術新潮流,雖然步子應該大一點,但對於一個還不熟悉Web的人來說,也要保持對技術發展的認知連續性(這始終是我對技術學習的一個原則性觀點),所以我選擇了基於ajax的前端框架來實現PC端管理系統,這就需要學習:HTML+JavaScript+JQuery+Bootstrap。我將之前的產品基於這個框架進行了重寫。

weui+jquery+knockout:

後來,因為要開發一個基於微信公眾號的網頁App,這種App比我當前的PC端前端框架需要更靈活,更輕量的實現和更快速的性能,這又需要引入新的技術。現在業界前端三大框架,Vue,Angular,React,我看了下,要學不容易,因為他們的典型開發環境,還要基於nodejs,開發模式,開發工具都要大換,這個步子邁太大了(但後來發現,實際上並不一定需要基於nodejs,以及換開發工具)。最後我選擇了先邁一小步,選擇knockout,采用了weui+jquery+knockout的組合。

話說knockout也是微軟mvc框架推薦的前端開發工具,在VS2012生成mvc的腳手架裏,就默認包含了knockout和jquery。學習knockout使得我對mvvm的概念有了更直觀的認識,使得後來再學Angular的時候,非常順利,有一種“哦!Angular的這個和那個功能,能解決knockout的這個和那個問題的感悟”。而jquery是經典,必須得學,學習也不難。

對於JavaScript的學習,和我學C#一樣,看經典書籍《JavaScript權威指南》,這個書我在06年就看過,後來中斷了。有時間就繼續看,補課。現在還沒看完。

對於Bootstrap,雖然在用,但了解不深,屬於依樣畫葫蘆,碰到問題找百度的階段。現在新的前端框架都有自己的樣式庫,不一定選擇Bootstrap,它可能有點落後了,但我還是決定,在PC端的管理系統,會繼續使用Bootstrap,因為它也是了不起的經典,在PC端的管理系統來說也足夠用了,值得繼續深入學習和應用。

Angular+Inoic+Cordova+NodeJs:

在完成了微信公號的開發後,有了一定的時間,我開始準備強化前端的能力,開發真正基於手機的APP,我想實現相同的代碼能夠跨平臺,因此在Angular和React之間選型。最後我選擇了Angular。這也是基於我當前的技術棧的選擇,可能有兩點促成了我的選擇,一是,有人說“Angular適合做後端開發的人來學習,而React適合做前端的人來學習”。我後來學習了Angular,覺得有一定道理,因為使用Angular這種mvvm框架,實際上差不多就是以開發Winform的方式開發Web頁面,那是比較容易理解了。二是,有人說React開發時,還是要寫比較多的本地代碼(基於Andriod和IOS),這又對技術儲備提出了新的要求,雖然當時我已經能做Android開發,但講到深度理解,那還不夠。

學習Angular也走了彎路。因為Angular1.x和Angular差別極大。我研究的心態一上來,把兩者都學習了一遍,雖然花費時間,但確實是挺過癮的。可以說,Angular1.x是個設計精妙的框架,而Angular則是返璞歸真,有大成之氣。當然,要開發Angular,同時也要學習nodejs的使用和js組件化開發的新思路。

要開發App,只有Angular還不夠,怎麽調用本地功能?這就引入了Ionic,Ionic基於Angular,封裝出自己的一套控件,並集成了cordova來調用本地功能。這樣,要開發前端的應用,我選擇的技術組合是:NodeJs +Angular+Inoic+Cordova。

對於前端開發,到現在為止,我還是只學到了剛入門,實際上,在用Ionic做項目開發時,我趟了幾好個坑,掉進去爬不上來了,因此暫時放棄,用Android原生的App先實現功能。有空了會繼續嘗試。

另外,我對桌面應用的跨平臺也有興趣,經過了解,發現electron框架是個不錯的選擇,而且electron可以結合angular和ionic,使得自己的多種技能能夠綜合使用,非常不錯。

03

Java開發

技術分享圖片

Java+Velocity+Mybatis:

實際上,我本來沒想去搞Java。因為.Net,前端,Java一起搞太累了。對於一個應用來說,後端.Net,PC前端Bootstrap+JQuery,移動端Ionic,已經足夠了。但因為一個機緣,參與了朋友的一個Java項目,又把Java給撿起來了(06年前曾經做過一兩年Java開發,那時候最流行的還是JSF,不會??)。通過這個項目,對Java更加熟悉了一些,也接觸到一些新的框架比如velocity,mybatis。

Java Android:

之後,對Java技術新的需求又來了,需要給客戶開發App,從而又開始從Java Web轉向Java Android。由於項目緊張,我生生的通過“先外包,再學習”的方式,完成了對Android App開發的了解。有了一個樣板,後續我又自己開發了多個基於Android的App。

看來還講不完,後面還有數據庫方面的技術,以及對設計模式的學習和理解,放第三部分講。

覺得文章有意義的話,請動動手指,分享給朋友一起來共同學習進步。

歡迎關註本人微信公眾號,更及時的關註最新文章(每周三篇原創文章,以及多篇專題文章):

技術分享圖片

基於.Net進行前端開發的技術棧發展路線(二)