.net frame 还值得学吗?我劝你别急着下结论

admin

前两天,一个刚入行的读者给我留言:“哥,我在招聘网站上还看到不少 .NET Framework 的岗位,可我报的课全在讲 .NET 8。.NET Framework 是不是已经凉了?我还需要学吗?”说实话,这个问题最近我被问了好几次,它表面上是在问一门技术,背后其实是在问:我该把有限的时间押在哪里?作为一个经常写技术、也经常跟一线开发者吃饭聊天的自媒体作者,我不想给你一个“非黑即白”的答案,因为 .NET Framework 这个话题,真不是一句“过时了”就能打发的。

先说我身边一个很具体的人,老周,老周在一家做建材的公司做信息化主管,公司不大,但业务跑了十几年,他手里那套 ERP 和进销存系统,是 .NET Framework 4.8 写的,前端还有一堆 Web Forms 页面,数据库是 SQL Server,服务器是 Windows Server,前年老板说想“技术升级”,老周兴冲冲做了个迁移方案,结果算完账沉默了:页面要重写,第三方控件要换,老接口要重新测,业务部门还不能停一天,最后老板拍板:新做的报表和移动端查询,用 ASP.NET Core 单独开一个旁路系统,老系统继续维护,能不动先不动,老周后来跟我喝酒时说了一句特别真实的话:“网上都说 Framework 要淘汰,可我们公司几十号人的工资,还靠它跑着。”

这就是我想说的第一个生活实例:存量系统不是PPT上的名词,它背后是流程、数据、人员和成本,很多公司不是不知道新技术好,而是迁移这件事要算经济账。.NET Framework 不是“,但它是“,他不需要把老系统吹成宝贝,但他必须懂它,至少要能看懂依赖、能排查 IIS 上的问题、能处理那些历史遗留的配置,你说这算不算价值?当然算。

再说一个相反的实例,我表弟去年从培训班出来,学的是 C# 和 ASP.NET Core,他面试时遇到一家公司,岗位写着“.NET 开发”,去了才发现主要是维护一个 .NET Framework 的老项目,日常工作是改报表、调存储过程、修一些十年前的页面,他干了三个月就有点焦虑,问我是不是入错行了,我问他:“你们公司有没有新项目?”他说有,但新项目也用老模板,因为“老大说快”,我直接告诉他:如果一家公司所有新项目都还默认 .NET Framework,而且没有任何现代 .NET 的实践,那你就要警惕了,不是说维护老系统丢人,而是你刚开始职业生涯,最好别把“只会维护老模板”当成唯一能力,后来他跳去了一家做 SaaS 的小公司,用 .NET 8 做 API,虽然累,但至少知道现在的主流工程化长什么样。

我自己也接过一个小活,亲戚开的小工厂想做一个订单查询工具,需求不复杂:几个表、几个权限、手机能看,我第一反应就是 ASP.NET Core + SQLite,部署轻,跨平台,后期维护也方便,我没有选 .NET Framework,因为这是新项目,没有任何历史包袱,没必要为了“怀旧”给自己加限制,这个例子也很说明问题:.NET Framework 的价值不在“新”,而在“旧系统的连续性”,你拿它开新坑,除非有明确的兼容性要求,否则我不推荐。

所以我的个人观点很明确:.NET Framework 不值得当成“未来主线”去押注,但它绝对值得作为“存量维护技能”去了解。 这两句话不矛盾,第一,如果你现在要学一门 .NET 技术来找工作、做新项目,主线应该是现代 .NET,也就是 .NET 8、.NET 9 这一代,ASP.NET Core、Entity Framework Core、依赖注入、中间件、容器化、跨平台部署,这些才是现在招聘和工程实践里的高频词,第二,如果你进了公司,发现有一堆 .NET Framework 项目,别慌,也别嫌弃,你要能看懂它、维护它、评估它,甚至能给老板讲清楚“为什么现在不能一把梭迁移”,这不是倒退,这是工程现实。

我还想提醒一句:别把“学 .NET Framework”理解成“背 Web Forms 控件”,真正有价值的是理解那些历史系统为什么长这样:为什么有 Global.asax,为什么依赖 System.Web,为什么配置写在 web.config,为什么部署离不开 IIS,你理解这些,不是为了浪漫化老技术,而是为了在迁移时知道坑在哪,很多迁移项目失败,不是新技术不行,而是团队低估了老系统里的隐式依赖,你越懂老系统,越能做出靠谱的迁移方案。

最后给正在纠结的朋友一个实在建议:把 .NET Framework 当成“维护技能包”,把现代 .NET 当成“发展主线”,如果你时间有限,先学现代 .NET,再花一点时间了解 Framework 的常见问题;如果你已经在维护老系统,别自卑,但要有意识地给新功能找现代 .NET 的出口,比如旁路 API、独立报表服务、逐步替换,技术选择不是站队,是管理资产和负债。.NET Framework 不是洪水猛兽,也不是传家宝,看清它的位置,你就不焦虑了。

目录[+]