0

丞相,起風了!從ASP.NET 5的變革談起

 7 months ago
source link: https://blog.darkthread.net/blog/aspnet-5-changes/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

丞相,起風了!從ASP.NET 5的變革談起

2015-03-08 07:04 PM 32 89,735

2016-02-18補充 ASP.NET 5已更名為ASP.NET Core 1.0

2663-c5d8-o.jpg

圖片來源

羊年開工第一天,Stephen Walther在部落格發表一篇新文章:ASP.NET 5及MVC6的十大變革,雖然大部分文章所提的,我先前就陸續看過或心裡有數,但全部聚在一起還是挺震憾。如果你現在有涉及ASP.NET專案開發,不管用的是WebForm、MVC、ASHX、WebService還是WCF,這次ASP.NET 5的改變象徵ASP.NET及.NET路線上的調整,此一發展方向遲早會影響大家的專案規劃、學習方向、公司策略,甚至職涯發展,即使有些變化(甚至該說是危機)還要好幾年才會降臨,但提早掌握情勢押對寶做好準備總是好事。這篇文章以一個寫了十幾年ASP.NET的老鳥觀點,整理我覺得影響較劇,應該提早因應的重點。若用更積極的態度,大家可依據自身條件,甚至該想想是不是已到「現在不改變,將來就會後悔」的關鍵時刻?

再會了,WebForm

我相信WebForm仍是當前ASP.NET專案的主力,市佔率遠勝ASP.NET MVC,但殘酷的事實擺在眼前,MVC、HTML5才是明日之星!這幾年WebForm開發者應已隱約感受每次新版發表對WebForm的著墨愈來愈少(但多少還是有),直到這次,ASP.NET 5完全看不到對WebForm的改革創新,即便VS2015(甚至再下一版的Visaul Studio)仍可編譯維護WebForm專案,但可以預見的劇情發展是:愈來愈多的新功能只支援MVC、Web API,WebForm不再改版進步,接著,WebControl元件廠商停止推出新版強化,漸漸中止技術支援,市場愈來愈難找到熟悉WebForm的人才(就算找得到也不會是新鮮的肝,你懂的… XD),寫WebForm專案的同學會像今天還在寫ASP的同學,需要強大心理素質面對冷言冷語:「現在都流行科技新貴,你怎麼還在做菜頭粿?」

以上預言要全部實現還有點遙遠(在本公司存活超過十年仍頭好壯壯沒人敢動的ASP表示:安啦,還早得很!) 但WebForm這條路,註定會愈走愈寂寞,愈走愈冷,WebService、SVC也會是相同處境。可預期在HTML5已成主流的今天,依賴PostBack運作的WebForm,難以整合最新的前端技術,做不出「目前最流行的網頁效果」,愈來愈難贏得使用者與開發者青睞,終究得退出江湖。

如果你現在工作主力仍在WebForm,行有餘力花點時間學習了解ASP.NET MVC/Web API這些新東西,保證是不會後悔的投資。

別了,VB.NET

當年從ASP VBScript/VB6 COM轉到.NET,曾一度為該選VB.NET還是C#猶豫,如今,可正式確認我押對寶了。(即使沒押對,之後幾年也會投靠C#吧!光看網路Sample Code比例就該知道)

這些年來,寫VB.NET的人愈來愈少。早些年,電腦書還得C#/VB.NET範例程式碼並陳,甚至為VB.NET及C#各出一本。而今新出版的電腦書裡已不見VB.NET範例,在網路上找到的文章VB.NET也近乎絕跡。

ASP.NET 5已不再提供VB.NET版專案範本(至少RTM前是如此,未來會不會透過Package加入支援不得而知。參考),如果你對VB.NET跟ASP.NET 5二者的堅持都強到「Over My Dead Body」,還是可能純手工用VB.NET打造ASP.NET 5網站,並容我致上最高敬意。

我想VB.NET會跟WebForm一樣,進入使用者愈來愈少,市場變小投入研發資源跟著變少的循環,進而走入歷史,手上仍有VB.NET專案的朋友可以考慮Telerik Code Converter之類工具,擇日將VB.NET轉成C#,長痛不如短痛,跟上主流日子較輕鬆。

【2015-05-09更新】微軟於4/24宣佈,在全力用C#把跨平台ASP.NET 5拼上線後,收到眾多希望ASP.NET支援VB的呼聲,故決定ASP.NET 5將會在開發工具及跨平台執行環境上都支援VB。

AngularJS扶正

原本曾為ASP.NET 4專案先發陣容的Knockout,在這場KO vs NG較勁裡已確定敗下陣來(猶如當年ASP.NET AJAX vs JQuery的翻版,微軟終究得擁抱開發社群的主流選擇),Angular取代成為ASP.NET 5專案的先發一軍,Visual Studio 2015還提供建立AngularJS Module、Controller、Directive、Factory的項目模版,並整合了Grunt方便批次壓縮、打包Angular Script,在Visual Studio使用Angular將會享受更多便利。

另外,用Visual Studio寫Angluar程式,放著強大的TypeScript不用是暴殄天物。最近幾天有則大消息:TypeScript將正式成為Angular 2.0的開發語言(NG2.0改版幅度之大,足讓NG開發人員倒抽一口冷氣,且不支援NG1.x直接升級,基本上只能砍掉重練!但這又是另一篇故事了),想搭乘Angular 2.0列車,Visual Studio + TypeScript像張商務車票,可讓你舒適抵達目的地,好語言,不學嗎?

現在再回首,當初寫SPA專案決定由KO轉向NG是對的,未來可望繼續享受Visual Studio的強大支援。(謎之聲:尚書大人還真是機靈,在下佩服…)

擺脫Windows的束縛

過去ASP.NET跟IIS/Windows一直被緊緊綁在一起,這點在.NET開放原始碼後已完全改觀。而ASP.NET 5起,專案可選擇針對不同平台編譯,ASP.NET網站可輕易搬到Windows以外的平台(Mac、Linux甚至名片大小的樹莓派迷你電腦)執行。

基於成本考量,傳統架設大型網站主機群(Web Farm)多選擇Linux作業系統,過去ASP.NET面對這類情境就只能直接領便當。ASP.NET 5起就不同了,同樣的ASP.NET程式放在Windows、Mac或Linux都可照常執行,正式進入跨平台時代。

對於原有ASP.NET開發者,此一改變背後的挑戰除了學習ASP.NET 5新架構外,也要開始熟悉Windows以外的作業系統,學習怎麼用SSH/Telnet連上Linux下指令、查問題,如何用SCP/FTP從Windows上傳檔案到Linux主機,又有更多新東西要學囉!

結語

學習及適應需要投入力氣時間,沒有人喜歡改變,沒有人想砍掉重練,但時代趨勢誰都無法阻擋,要存活只能不斷調整因應,融入潮流。就算你厭煩一天到晚砍掉重練,氣餒到想改賣香雞排,也得想想顧客的喜好會一直改變,口味一成不變加上競爭激烈,只怕也撐不了幾年(說不定還沒WebForm撐得久 XD)。拒絕面對環境改變,不想學習新技能,難保不變成困在最後一塊浮冰上的北極熊… 共勉之。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK