本文是MVP Ediwang寫的回憶一個80後的拖控制項的感悟,與君共勉:每一代人都有記憶里的味道。煤球爐、黑白電視機是屬於父母的記憶。而“拖控制項”式編程,啟蒙了無數像我這樣的80後(嗯,89也算80後)。 ...
本文是MVP Ediwang寫的回憶一個80後的拖控制項的感悟,與君共勉:
每一代人都有記憶里的味道。煤球爐、黑白電視機是屬於父母的記憶。而“拖控制項”式編程,啟蒙了無數像我這樣的80後(嗯,89也算80後)。
經典舊世
2000 年那個時候,上海這樣的城市裡也不是每家每戶都有電腦,我家也沒有電腦。我在學校經常聽幾位家裡條件不錯的同學說他們玩電腦的事情。CIH、千年蟲等名詞讓我對電腦有著非常強烈的好奇心。而我第一次體驗到電腦,是在我母親單位的機房裡。它是一臺卧式機箱、15寸 CRT 凸面屏顯示器的 Windows 95 電腦。
當時的微軟對我來說就是神的存在。因為我認識電腦到使用電腦的一切幾乎都離不開這家偉大的公司,它就像上帝一樣開天闢地,創造萬物:Windows、Office、IE這些當年幾乎是唯一的主流產品。而微軟的創始人之一比爾·蓋茨也成了我的偶像。還記得當年,上海有個PC專題的電視頻道,有一天該頻道播放了比爾蓋茨關於.NET戰略的演講,啥也不懂的我,居然坐在電視機前完整看完了節目。當時的我並不知道,.NET將會徹底改變我的人生軌跡。
圖:《人民網》報道 .NET 戰略
可能對於現在的年輕一代程式員來說,並不知道“拖控制項”是什麼意思。在我小時候,當年最流行的編程啟蒙語言並不是Python和那滿地的少兒培訓班,而是Visual Basic 6.0。VB6之所以被稱為”toy language”,就是因為它提供了圖形界面的可視化設計器,只要拖拽控制項(如按鈕、文本框)到視窗上,就可以通過事件驅動的模型來編程,極易上手。
而我在VB6上沒拖多久控制項,就不小心誤入了 .NET 的世界,起因是小時候不懂,為了更新編程環境,不小心購買了一張 Visual Studio .NET 的盜版光碟,裝完了發現,這個VB怎麼和以前的不太一樣啊,從此走上了不歸路……
圖:Visual Studio .NET on Windows 2000
圖:Visual Basic .NET 代碼
控制項的遠征
無數程式員就這樣拖出了一個時代。工業、醫療、零售、製造、物流等行業至今仍然隨處可見 .NET 拖出來的Windows Form、WPF甚至ASP.NET WebForm系統。Visual Studio強大的工具支持,以及拖控制項事件編程模型,雖然讓生產力發揮到了極致,但也成了不少人對.NET固有的印象:“你這種用.NET的,拖拖控制項,小學生都會!”
拖控制項生態,也養活了諸如DevExpress、Telerik、葡萄城等隊友。這些三方廠商提供了比微軟.NET Framework內置控制項更強大的免費或收費的控制項庫,配合Visual Studio使用,開發效率簡直恐怖。
控制項王之怒
但正常的 .NET程式員都知道,控制項只不過是 GUI 應用的一種形式而已。ASP.NET MVC、Web API、Signal R等框架根本拖不了控制項。根深蒂固的 “.NET就是拖控制項” 的思想,也鬧出過笑話。記得8年前,微軟剛推出 ASP.NET MVC 3 框架不久,我所在的公司就接到了一個 MVC 的新項目,由於整個部門200多人只有我研究過MVC,公司就派我去給客戶做個POC。我第一天就被高級研發經理訓斥了:“公司為了這個項目花錢買了 DevExpress 的 ASP.NET 控制項,你為什麼不用啊?” 。面對公司白買的控制項,我笑出了眼淚,就像這樣: