.NET成人礼 | 还记得20年前一起拖过的控件吗?
本文是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 控件,你为什么不用啊?” 。面对公司白买的控件,我笑出了眼泪,就像这样: