游客发表
打开一个政府信息公开页面,网站网址栏里赫然是网站 xxgk.xxx.gov.cn/Item/1234.aspx。这串字符在2024年的网站浏览器里显得有点突兀,像翻出一部还在用物理键盘的网站诺基亚。ASPX 没死,网站只是网站退到了聚光灯照不到的地方。
ASPX 是网站微软 ASP.NET WebForms 技术的页面扩展名。2002年随 .NET Framework 1.0 一起发布,网站那会儿 Java Servlet 还在用 web.xml 配一堆映射,网站PHP 刚摸到4.0的网站门槛。微软的网站算盘很直接:把 WinForms 那套拖控件、写事件的网站开发模式搬到 Web 上。程序员拖一个 Button,网站双击,网站写 Button1_Click,网站回发(PostBack)机制自动处理状态。对当时从 VB6 转过来的开发者来说,这几乎是零学习成本。
我2008年接手过一个区级教育局的学籍管理系统,纯 WebForms。GridView 控件绑数据源,分页排序导出 Excel 全靠属性面板勾选。代码量少得离谱,但 ViewState 字段膨胀到 200KB 以上。一个页面的 HTML 里嵌着半本《红楼梦》长度的 base64 乱码,每次请求都背着这坨东西来回跑。那时候 ADSL 上行只有 512Kbps,家长查个成绩要等七八秒。用户体验?不存在的,能跑就行。
WebForms 的致命伤在于抽象泄漏。它试图让你忘记 HTTP 是无状态的,但 HTTP 偏要提醒你它才是老大。ViewState 是补丁,Session 是补丁,UpdatePanel 是补丁上再打补丁。UpdatePanel 搞局部刷新,结果还是把整个页面的生命周期跑一遍,服务端累得半死,客户端收到一堆无用的 ViewState 增量。2010年之后,jQuery 直接发 AJAX 请求拿 JSON,干净利落,谁还受得了 ScriptManager 那一套。
但 ASPX 在特定场景里活得挺好。内网系统、后台管理、报表平台——这些不需要 SEO,不追求首屏速度,用户就那几十号人。我去年帮一个朋友看他的仓库管理系统,ASPX 写的,跑在 IIS 上,十年没大改。数据库是 SQL Server 2005,服务器是 Windows Server 2008 R2。他说能用就行,重写?预算呢?迁移风险谁担?这很现实。技术债有时候不是债,是固定资产。
微软自己早就转向了。ASP.NET MVC 2009年发布,切断 ViewState 和 PostBack 的脐带。再后来 .NET Core 跨平台,Blazor 用 WebAssembly 把 C# 塞进浏览器。ASPX 被留在 .NET Framework 的旧世界里,像一栋不再翻新的老楼,水电还能用,但没人愿意搬进去。
有意思的是,有些 ASPX 页面还在被搜索引擎爬。静态化之后的 URL 结尾是 .aspx,内容其实是纯 HTML。服务器端重写规则把 /news/2024/1234.aspx 映射到数据库查询,输出缓存。这种用法下,ASPX 就是个伪装成动态页面的静态文件,跟技术选型已经没关系了。
如果你现在要开新项目,别碰 WebForms。但如果你维护着老系统,别急着推翻。先看看流量、看看团队、看看预算。ASPX 还能跑,IIS 还在更新,Visual Studio 2022 依然能打开 .aspx 文件。技术没有绝对的对错,只有合不合适。那些还在生产环境里跳动着的 .aspx 页面,就是这句话最好的注脚。
友情链接