写点什么

ASP.NET MVC 3 拥抱动态类型

  • 2010-12-13
  • 本文字数:1019 字

    阅读完需:约 3 分钟

大约十年前,微软将全部赌注压在了 WebForms 和静态类型上。随着从零散到完整封装的不断发展,现在的每个页面几乎都可以看作是自己的程序。随后几年,业界向另一个方向不断迈进,钟爱分离优于封装、晚绑定优于早绑定这一理念。这导致了两个很有趣的问题。

第一个就是术语的问题。考虑最初的 Smalltalk MVC 模式,视图与控制器不仅紧密耦合在一起,而且通常会成对出现。微软的大部分框架都是这样的,包括经典的 VB、WinForms、WebForms、WPF 以及 Silverlight,他们都使用了代码隐藏文件来存放控制器逻辑。但目前所说的“MVC”通常指的是视图与控制器是松耦合的框架。对于 Web 框架来说更是如此,HTML 的表单提交机制允许任何视图提交到任何的控制器上。由于这篇文章主要谈论的是 Web 技术,因此我们需要使用现代化的定义。

第二个问题是“如果你是微软,该如何变换轨道而不给开发者造成太大压力”?到目前为止,这个问题的答案是:每年都发布新版本,直到开发者适应为止。ASP.NET MVC 的首个产品于去年 3 月发布。今年 3 月发布了 ASP.NET MVC 2.0。3.0 目前处于 RC 2 阶段,预计将于明年 3 月正式发布。

12 月 10 日,微软发布了ASP.NET MVC 3.0 Release Candidate 2 。RC 2 构建在微软对jQuery 的承诺之上:在默认的项目模板中引入jQuery 1.4.4、jQuery Validation 1.7 以及jQuery UI。虽然人们认为微软将重点从服务器端控件转移开来是个玩笑,但引入 jQuery UI 则表明微软这次是动真格的了。

对于那些担心可扩展性的开发者来说,现在有很多优秀的控件可以替换掉会话状态。借助于SessionState 属性,你可以告诉控制器会话状态是只读的、读写的还是可完全忽略掉的。这对于单服务器的站点来说没什么,但如果一台服务器需要从另一台服务器获取会话状态,那么这种方式就可以提供很大的帮助了。

MVC 3 包含了 Razor 视图引擎。默认情况下,该引擎会编码 HTML 输出,这样我们就能轻松地在屏幕上输出原生文本了。即便没有 HTML 注入攻击的风险,未编码的文本也能轻松防止页面的渲染。

对于众多的 C#开发者来说到底什么才是最震撼的呢,那就是 MVC 3 针对控制器和视图而拥抱了动态类型。ViewBag 属性会公开一个动态对象,开发者可以在运行期于该对象之上添加属性。一般而言,它用于从控制器向视图发送非模式数据。Scott Guthrie 提供的示例包含了状态文本(比如说当前时间)以及用于组装列表框的条目。

请感兴趣的读者参加下面的 InfoQ 小调查。

查看英文原文: ASP.NET MVC 3 Embraces Dynamic Typing

2010-12-13 21:552744
用户头像

发布了 88 篇内容, 共 266.9 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

独立开发的灵感哪儿来?

沉浸式趣谈

产品 创意 独立开发 想法

香港华茂集团发布补偿公告,携手富卫集团共谋上市新篇章

科技汇

2025PHP+MySQL婚恋交友系统源码,婚恋交友系统源码搭建优势

DUOKE七七

php MySQL uniapp

AI口语练习APP的场景测试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

2025年1月文章一览

codists

Python

京东详情 API 接口有什么应用与价值?

科普小能手

数据挖掘 数据分析 京东 API 接口 API 优先

漆包线工厂生产管理的智能化升级

万界星空科技

制造业 mes 万界星空科技mes 漆包线mes 漆包线

产品和品牌谁的优先级更高?看看 Curve 的初版界面就知道了

TechubNews

创业 产品

淘宝代购转运系统oopbuy怎么做?小白也能看懂的保姆级教程!

代码忍者

反向海淘代购系统

Spring AI 智能体通过 MCP 集成本地文件数据

阿里巴巴云原生

阿里云 云原生

火语言RPA--AI对话

火语言RPA

AI技术自闭症学生系统开发

北京木奇移动技术有限公司

AI教育 AI智能体 软件外包公司

为什么LED屏幕如此昂贵?

Dylan

技术 芯片 PCB 设备 LED

开发往事:微信千年不变的那张闪屏图片的由来

JackJiang

网络编程 即时通讯 IM

AI在心理健康领域的应用

北京木奇移动技术有限公司

AI技术 AI智能体 软件外包公司

DeepSeek 不需要解释,对 Anthropic CEO 就该贴脸开大

思码逸研发效能

大模型 AIGC DeepSeek DeepSeek v3 DeepSeek-R1

从 AI 浪潮中看 DeepSeek:对比、推动与未来展望

天津汇柏科技有限公司

AI 人工智能 DeepSeek

AI虚拟导师的开发

北京木奇移动技术有限公司

AI技术 AI智能体 软件外包公司

ASP.NET MVC 3拥抱动态类型_.NET_Jonathan Allen_InfoQ精选文章