写点什么

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:552769
用户头像

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

关注

评论

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

产品视角看推荐算法

峰池

人工智能 算法 产品经理 推荐算法

618你的系统顶住了么?系统发生重大灾难难道只能“删库跑路”?

punkboy

用接口隔离原则优化 Cache 类的设计

朱月俊

第二次作业

朱月俊

做一个有原则的码农可好?

Dawn

极客大学架构师训练营

架构师训练营 - 第二周架构师实现自己架构的主要手段

zcj

极客大学架构师训练营

第二周作业

武鹏

架构师训练营二期作业

老姜

千万不能让程序员给娃娃取名字

码农神说

程序员

第二次作业总结

朱月俊

依赖倒置和案例

王锟

架构师训练营-第二章-依赖倒置原则&接口隔离原则

而立

极客大学架构师训练营

ARTS打卡Week 04

teoking

ios LeetCode ARTS 打卡计划

第二周学习总结

武鹏

老大吩咐的可重入分布式锁,终于完美的实现了!!!

楼下小黑哥

Java redis 分布式锁

架构师训练营第二章总结

叮叮董董

这也太拧巴了吧?结局意想不到

非著名程序员

程序员 程序人生 提升认知

品软件架构原则模式之美

老姜

依赖倒置原则

极客李

“麻烦”的处理流程

zhoo299

随笔杂谈

一个包子铺看懂 I/O 模型演变

小眼睛聊技术

Java 程序员 架构 后端 nio

数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……

墨天轮

数据库

哪些框架是遵循依赖倒置原则的?

朱月俊

小师妹学JVM之:GC的垃圾回收算法

程序那些事

JVM 小师妹 JIT GC 签约计划第二季

给行动找个理由

Neco.W

行动派 决策

为什么坐车会晕车呢

石云升

生活,随想 日常思考 晕车

架构师训练营第2周学习总结

Season

极客大学架构师训练营

什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

朱月俊

架构师训练营第二章课后作业

叮叮董董

架构师训练营第二周

小树林

基本的面向对象原则(Basic OO principles)

旭东(Frank)

编程思维 极客大学架构师训练营

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