🚀 2026:让.NET再次伟大
2026年,应该考虑一个战略决策------将.NET SDK纳入操作系统,这将对整个开发生态产生深远影响。
💡 开篇:单文件运行打开的新世界
.NET 10在多方面有显著进展,单文件运行的支持为新的使用场景打开了可能性。一个.cs文件就是一个完整的程序,这为开发范式的转变提供了基础。
单文件运行带来的实际应用场景:
- Web服务零部署 - 编写
preview.cs,十行代码用ASP.NET Core加载静态文件目录,无需安装http-server - AI Agent快速迭代 - 使用
Microsoft Agent Framework,几十行代码直接与大模型对话,只需一个.cs文件 - 告别脚本文件 - 用.cs替换ps1/bash脚本和CICD脚本,不用学习多种脚本语法,只需一个.cs文件
- 跨端开发 - 单文件直接运行桌面应用、Web应用、控制台工具,无需打包发布
- 远程诊断 - AI生成诊断代码发送给客户直接运行,无需安装应用,对SaaS远程支持意义重大
- 极速分享 - 通过任何渠道分享代码片段,接收者无需安装应用即可运行
核心价值: 一个.cs文件 = 一个完整的、类型安全的、高性能的.NET程序。部分场景不再需要复杂工具链、CICD、Docker------只需一个.cs文件。
🔍 遇到的障碍
单文件很好很强大,但它有一个前提条件:需要安装 .NET 10 SDK,这是最后一堵墙,需要被打破。
现状困境: 用户需要先安装.NET SDK才能运行.cs文件,这个前置条件立即提高了门槛。
解决方案: 让.NET SDK成为操作系统的一部分------从Windows开始,然后推广到主流Linux发行版。
🎯 战略价值一:认知刷新
当Windows或主流Linux发行版自带.NET SDK时,新的开发者和用户的认知将会逐渐改变。
集成.NET SDK,Windows就拥有了统一的、功能完备的开发工具链 和 .NET 运行环境,有了这个优势,它将成为上手编写程序最便捷的操作系统。也是运行.NET应用的首选平台。
回顾一下,很多年前,Linux一些发行版就预装了Python和PHP等环境,这极大推动了这些语言的流行,开发者在这些系统上,无需额外安装环境,就能直接上手编写和运行脚本,它们被认为是对开发者友好的操作系统。
不同于老旧和封闭的.NET Framework,现代.NET已被广大开发者认可,将.NET SDK直接带到操作系统中,不仅不会引起反感,反而会被视为对开发者友好的举措,它的单文件运行更加强大,更有发挥的空间。
战略价值二: 统一工具链标准
在开发行业,工具链是绕不开的话题。.NET在这方面堪称典范。当操作系统自带一套标准工具链时,开发者和用户都将受益匪浅。同时也会推动其他生态进行反思和改进。
来看看最火爆的两个生态:
Python生态:
依赖管理:pip → venv/virtualenv → Poetry/Pipenv → requirements.txt/Pipfile
构建工具:setuptools → wheel → flit → poetry → hatch
测试框架:unittest → pytest → nose → hypothesis
代码检查:pylint → flake8 → black → isort → mypy
部署工具:gunicorn → uwsgi → docker
Python开发者需要学习和维护7-8种不同工具,每个项目配置各异。
Node.js生态:
包管理:npm → yarn → pnpm(互不兼容的lock文件)
构建工具:webpack → Rollup → Parcel → Vite → Turbopack
测试框架:Jest → Mocha → Vitest → Playwright
运行环境:node → deno → bun
Node.js开发者面对版本地狱和工具频繁更替。
而.NET Core 从1.0到10.0,一个dotnet命令统一一切:
bash
dotnet new # 项目创建
dotnet build # 编译
dotnet test # 单元测试
dotnet run # 运行
dotnet publish # 发布(含AOT编译、容器化)
dotnet tool # 工具管理
dotnet add package # 依赖管理
dotnet format # 代码格式化
dotnet diagnostics # 性能诊断
dotnet ef # 数据库迁移
!IMPORTANT
当其他生态炒作用Rust重构工具链的性能提升时,.NET从第一版起就用一个
dotnet命令解决了所有问题。哦对了,.NET不需要版本管理工具,多版本可同时安装且互不干扰。
Windows自带.NET SDK的影响
- 降低门槛 - 所有.NET生态文档可去除"先安装SDK"的前置条件,更加友好。
- 开发者优先 - 无论是开发者,还是发布者,都会优先考虑系统本身就支持的环境,而不需要让用户额外安装和配置运行环境。
- AI工具崛起 - 各种
CLI工具,也会开始考虑使用.NET作为首选开发语言,因为用户不需要额外安装运行时环境。 - 系统工具升级 - Windows非核心工具可用.NET开发,自带跨平台特性,告别WebView2
无论是对开发者还是用户,这都是一个极大提升开发体验和用户体验的变革。
🌐 战略价值三:生态影响
软件分发的范式转变
当前模式的痛点:
- 传统应用 - 安装包、注册表污染、卸载残留
- 包管理工具 - npm、pip、apt各自为政,生态割裂
- 容器技术 - 解决了依赖但增加了复杂性和资源开销
系统级.NET SDK带来的新可能:
- NuGet作为应用分发 -
dotnet tool成为应用安装器 - 代码即应用 - 一个.cs文件或代码片段即可分发和运行
- Aspire加持 - 一个.cs文件运行整套复杂微服务应用
未来生态格局
当运用得当时,将形成这样的生态:
- C# → 学习和工作的首选语言
- GitHub → 最大的源代码托管平台
- NuGet → 最大的工具分发平台
- Windows → 最大的应用和服务平台
!IMPORTANT
能用C#编写的应用,最终都应使用C#编写;能用.NET运行的程序,最终都会使用.NET运行。
.NET在AI领域的竞争力
当前AI开发生态高度依赖Python,用户端工具常选择Node.js,企业级开发由于巨大的惯性逐渐转向Java。然而,.NET在AI开发领域拥有被低估的竞争优势:
| 优势维度 | 具体价值 |
|---|---|
| 性能 | 相比Python和Node.js有明显优势 |
| 类型安全 | 大型AI项目中显著减少运行时错误 |
| 文档处理 | 丰富的PDF、Word、Excel类库支持 |
| Aspire | 简化服务配置,内置遥测支持(AI应用基本需求) |
| 单文件运行 | 可嵌入工作流,如在skills场景直接运行.cs处理逻辑 |
| Azure | Azure对.NET SDK的第一方支持 |
如果.NET SDK成为操作系统组件,这些优势将更易被开发者发现和利用,推动.NET在AI开发领域的采用。
🚀 实现路径:让愿景成真
让微软,尤其是Windows团队认识到这一战略机遇
社区发声:
- GitHub - 在dotnet相关仓库发表相关讨论和Issue.
- 社交媒体 - 在X、Youtube等平台上,发布或转发相关观点,并通知微软/Dotnet/Windows官方账号
- 技术社区 - 参与微软论坛、.NET Foundation邮件列表、Discord社区讨论
内容创作:
- 写博客、录视频推广这个愿景
- 结合本文内容和自己的观点,创作更多相关内容
- 形成更大影响力,推动决策落地
!IMPORTANT
Windows不预装.NET,这就像是Windows不预装Edge浏览器,Android不预装Chrome浏览器一样让人费解,纯属是自费武功!
不作为的借口
我已经预料到一些人找出各种理由反对这个想法,找出各种借口,说出各种政治正确的理由,如:
- "这会增加Windows的体积":正好清除一些没用的老旧的系统组件,腾出空间给.NET SDK。
- "用户不需要也不关心.NET SDK":这是因果倒置。先不说你能代表多少用户,你先提供了,再谈用户需要不需要,关心不关心。
- ".NET Core是开源跨平台的,为什么要捆绑在Windows上":这种说法都不值一驳,因为跨平台跟你预装在Windows上并不冲突。早在十几年前,Linux就预装php/python等工具,这些工具的流行深受预装的影响。这种说法完全是不希望.NET成功的借口。那就同时预装在主流Linux发行版上好了。
- "要考虑版本兼容性,以及多版本共存和更新问题":但凡用过.NET Core SDK的人都知道,这些都不是问题,.NET Core天生支持多版本共存,且版本管理非常简单,Windows能维护.NET Framework,搞不了.NET Core?
多了解真正用户的声音,少听一些只会讲政治正确的非目标用户,多一些实际行动,真正做一些有益于生态发展的事情。
!TIP
你可以借助本篇文章内容,结合自己的观点,创作更多相关内容,推广这个愿景。