06.23 作為一個.NET開發者,怎麼看待和選擇層出不窮的新技術,新架構?

經常在一些技術社區看到這些的問題,一個.NET開發者去求職,看到應聘的公司的技術棧還是比較老的ASP.NET WEBFORM的時候,希望瞭解未來會否使用ASP.NET MVC的時候,沒有獲得肯定答覆,於是就放棄了這一份機會,以技術選企業,是否必要?

最近我在開發一個開源的微商城系統OdnShop,發佈之後,有些用戶就問,怎麼不是ASP.NET MVC的?不支持MSSQL嗎?要上.NET CORE了,諸如此類的問題。當然這些問題並沒有標準答案,從技術本質來說,技術只是用來解決業務問題的一種手段,所以技術的新舊並不是考慮的核心,但開發效率,維護成本,穩定性等等確實必須考核,因為他會影響投入,影響收益。

所以,我想就.NET程序員如何看待新技術,如何選擇新技術,提供一種我的思考,希望大家理性思考,理性討論,不要把某種框架,某種技術作為一種宗教信仰。

一,WEBFORM OR ASP.NET MVC?

WEBFORM的本意是很好的,就是希望把桌面開發的那一套拖拉控件的模式借鑑到了WEB開發,如果你開發過WINFORM就應該知道,拖拉控件實現GUI是很方便,當然了要實現很炫酷的GUI的時候,就不容易了,因為需要深入瞭解控件的原理以及GDI等技術,但是WEB就不同了,HTML+CSS可以實現很美觀的界面,只要想的到,都可以做的到,但是因為基於HTML標記語言,多了一個標記,界面就可能發生變化,而基於WEBFROM拖拉出來的控件,經常會生產出一堆的無用的標籤導致頁面效果達不到預期,為了達到預期目的,反而需要花很多時間瞭解控件的用法,甚至自己重寫控件,這樣就失去了原本的意義,開發門檻和開發效率反而沒有得到提升。所以ASP.NET MVC就很成了大家希望的新選擇了。

但是我想表達的是MVC是一種好的設計思想,但MVC並不等同與ASP.NET MVC,ASP.NET MVC只是官方提供的一種最佳實踐的框架。而且MS的技術體系,有時候往往確實前後的連貫性,想想這些年,MS推出了多少新技術,新框架,很多人花了很多時間去學習,最後可能連個像樣的DEMO都沒有做出來,那個技術,那個框架已經成為過去式了。

ASP.NET MVC只是其中一個,我的觀點是MVC依然是一種好的思想和理念,會一直存在和發展下來,但是ASP.NET MVC1到ASP.NET MVC6,未來會走向何方,只有MS才知道,所以如果你計劃做一個新項目,無論是選擇WEBFROM還是ASP.NET MVC都是可以,那種技術你擅長,你熟悉,能否快速提供給客戶一個穩定可用的解決方案,那就是一種好的技術,但是如果你計劃研發一個產品,我認為WEBFORM和ASP.NET MVC都不是很好的選擇,產品的生存週期往往比較長,而MS的技術更新換代就比較頻繁,產品總不能年年都重構,年年換框架吧,且不說需要投入大量的人力時間,還可能引入一堆的BUG。所以如何開發產品,我的觀點是既可以使用WEBFORM好的一面(比如後臺,用控件的方式,有時候開發效率非常高效的),也會借鑑MVC的優秀思想(在前端,更好的實現代碼和界面分離等),但儘量不使用太多的框架,而是自己根據產品的發展和需要,自己去實現,比如MVC,完全可以根據自己的需要,實現一種輕量級的MVC框架。

二,MSSQL OR MYSQL ?

一直以來,.NET + MSSQL基本是標配,開發.NET系統,基本都會搭配使用MSSQL,但自從用了MYSQL之後,我就很少用回MSSQL,不是說MSSQL不好,而是MSSQL太笨重,某些簡單的問題,比如分頁,MYSQL就非常容易,MSSQL早期版本還需要搞個存儲過程來實現,新版本提供了新的語法,但是又無法向下兼容,但是MYSQL在一些複雜的聯合查詢是沒有MSSQL強大的,具體特性我就不去比較了,畢竟每種數據庫各有其優缺點,作為一個普通開發者,也沒有辦法完全去吃透兩種數據庫的所有特性,以我個人使用的經驗,我覺得企業MIS選MSSQL會比較好,而互聯網產品,選MYSQL會更好一些,因為輕量,資源友好型。

三,.NET OR .NET Core ?

一直以來,MS的技術只能運行在WIN系統,自從.NET CORE的推出,完全改變了舊有的技術觀念,那麼.NET CORE是否值得選用,值得期待,我認為:值得!

首先,擁抱更加開放的技術符合時代潮流,多一種選擇,總是好事,當然了,如果你是自己開發的產品,自己用,就只跑WIN也沒啥不好!

其次,我曾經開發一個搜索產品,基於.NET開發的,我遇到很多潛在客戶來諮詢,他們的網站是使用PHP,跑在Linux上的,問能否支持Linux,如果從開發產品的角度來說,能支持多一種操作系統,意味著更多的潛在客戶。

再次,.NET CORE會不會中途就不了了之,MS的新CEO上臺後,MS的發展方向已經很清晰了,WIN的地位已經下降了,公司營收越來越依賴雲計算,這說明MS用不著把.NET綁死在WIN上,VS都有MAC版本了,MS已經越來越開放了,不是MS想通了,要開放了,而是開放了能更賺錢,能幫助企業賺錢的方向,企業會放棄,不了了之嗎?

總之,對待新技術,新框架,不要做一個宗教式的技術狂熱者,而是做一個理性的實用主義者,慎重選擇框架類技術,比如WPF,ASP.NET MVC等,積極擁抱大方向,比如.NET CORE。本文只是我個人的思考,歡迎理性討論!


分享到:


相關文章: