大家好,我是刚子。
前几天有个兄弟留言:“C#还有前途吗?我看信创好像把它排除在外了,是不是以后搞.NET就没饭吃了?”
说实话,收到这条消息的时候,我心里也挺不是滋味的。今天我就把这事儿掰开揉碎了聊聊。
先说说这事是怎么来的
这事儿最早闹起来是在2024年。上海市卫健委发了一份《上海市卫生健康“信息技术应用创新”白皮书》,在这个白皮书里,把C#/.NET直接归为“A组件”,用红色标识,代表最高风险等级,意思是需要被逐步淘汰的技术。
白皮书对上海市各级公立医院的IT系统建设具有直接的政策导向作用,简单说就是:以后上海的公立医院搞信息化项目,用C#/.NET做的不建议采购,最好换掉。
这一下可就炸锅了。要知道,全国医院里多少HIS、LIS、PACS、EMR核心系统都是基于.NET开发的。这个文件一出,搞医疗信息化的.NET厂商直接慌了。
为什么.NET会被归为“A组件”?
我研究了一下A组件的定义标准,白皮书判定A组件主要看三条:源代码不可获取(不符合开源定义)、核心技术控制权不归国内、存在供应链安全风险。
说白了,在政策制定者的认知里,C#/.NET还是那个微软闭源的Windows专属技术。
但这个判断,其实已经严重过时了。C#早在2014年就开源了,.NET Core从2016年开始就是开源跨平台技术,现在.NET 8更是完全开源、由中立的.NET基金会治理,跑在麒麟、统信这些国产操作系统上完全没问题。而且.NET已经正式支持龙芯LoongArch64架构,龙芯、飞腾、鲲鹏等国产CPU都发布了.NET 8官方适配包。
技术圈里流传着一句话:“在信创领域中使用.NET已经没有技术障碍。” 有个兄弟直接晒了他们公司的项目:十几个.NET Core项目,跑在麒麟服务器上,数据库用的是达梦。
说白了,这事的本质是政策判断严重滞后于技术演进。
政策为什么要这么定?
这事儿你得站在政策制定者的角度想想。
信创的核心目标是“自主可控”,是要在关键领域用国产技术替代国外技术,避免被“卡脖子”。你猜政策的底线是什么?2022年国资委下发的79号文件,硬性要求2027年底前完成央国企信创改造。
时间紧、任务重,决策者不可能挨个去研究每个技术的实际情况。最简单的办法就是“一刀切”——凡是核心技术掌握在外国公司手里的,先排除掉,宁可错杀也不放过。
.NET虽然开源了,但说到底微软还是美国公司。在政策制定者眼里,万一哪天中美关系恶化到微软被禁止向中国提供技术支持,这些系统怎么办?这个风险,谁都不敢承担。
那.NET程序员该怎么办?没出路了吗?
兄弟,别慌。这事儿没那么严重。
第一,信创≠全国。 上海卫健委的文件只在上海公立医疗系统有约束力,全国还有很多领域、很多企业,并没有强制要求。民企、外企、非关键基础设施领域,该用啥还用啥。C#在游戏开发(Unity)、工业自动化、ERP等领域依然是主力。
第二,.NET技术本身是“清白”的。 前面说了,.NET 8已经完全开源跨平台,国产CPU和操作系统都有官方适配包。很多公司已经在用.NET Core跑信创项目,技术上完全可行。整个.NET社区也在积极推动生态国产化,比如NCC、盛派开发者社区等都在做开源生态建设。
第三,政策是会变的。 这次事件发生后,.NET社区的技术专家、开发者集体发声,指出白皮书对C#/.NET的认定存在明显技术错误。虽然截至2026年3月,官方还没有公开修正,但这种事情经过多轮讨论后,相信后续政策会更科学。
刚子给你掏心窝子的建议
如果你正在用.NET,或者打算学.NET,我给你三条建议:
1. 别只盯着WinForms和WPF。 这些技术确实对Windows依赖太强,信创环境不好搞。多学学ASP.NET Core做后端,或者Avalonia做跨平台桌面,这些在Linux上跑得好好的。甚至可以考虑MAUI、Blazor这些新技术方向。
2. 懂业务比懂语言重要。 你是一个能解决问题的人,不是C#的“人形挂件”。一个优秀的开发者,最核心的竞争力永远是解决问题的能力,而不是掌握了一门特定的编程语言。
3. 保持技术敏感度。 看看Java、Go、Python都在干啥,万一哪天需要转型,别措手不及。
最后说句实在话
C#和.NET有没有前途?有。
信创市场确实在收窄.NET的生存空间,但全球范围内.NET依然是主流技术栈之一。而且.NET生态正在加速国产化适配,这反而是个机会——能搞懂.NET在信创环境下怎么落地的人,将来会非常抢手。
别听风就是雨,该学学,该写写。技术人最值钱的从来不是你会哪门语言,而是你能不能用它解决问题。
如果你觉得这篇文章帮你搞明白了这事儿,点个赞、转给还在焦虑的兄弟。
我是刚子,一个还在写.NET的老程序员。咱们下回见!
