写点什么

MS MVC 框架漩涡中的 MonoRail 未来

2007 年 11 月 22 日

上个星期,Hamilton 向微软 MVC 团队通报了 Castle 团队从现实应用中获得的所有复杂和不直观的需求,并告知他们如何处理这些事情。另外他还开发了一些集成案例,作为对 MS MVC 可扩展性和插拔性的概念验证。

我现在可以做到: - 创建对 IParameterBinder 的初始支持

  • 创建 NVelocity 视图工厂(View Factory)
  • 支持 REST(支持基于接收头 [accept header] 的 url 语义和渲染)
  • 支持和 Castle 的 DataBinder 和 ActiveRecordDataBinder 的协同工作

我想要实现但还未能做到的功能:

  • 重用 MonoRail 的 helpers:主要因为他们和 MonoRail 绑定的太紧了
  • 创建 Brail 视图工厂:和上面同样的原因
  • 创建一个试图工厂选择器:影响现有的测试性

目前 Hamilton 对 MS MVC 框架的做法非常满意,但是他建议社区对在年底要发布的 CTP 版本不要抱太大的期望:

那是因为你将要看到的是一个非常小的框架,要真正发挥作用还有许多工作要做,据 MS MVC 团队说这一 CTP 版本主要是为了获得反馈,不过,我相信接下来的版本会非常棒!

对于 Castle MonoRail 的未来,Hamilton 说他们要等到 MS MVC 框架的最终版和功能集确定之后才能决定:

我真的非常期望 MS MVC 团队能试着支持 MonoRail 现在所支持的所有的东西,但是我不确定他们打算这样做。MonoRail 2.0 最终结果如何取决于 MS MVC 框架的实现。如果最终的 MS MVC 非常棒,并且提供了很多功能,我会考虑放弃 MonoRail 2.0。如果 MS MVC 最终版不是那么完美,缺少了必须实现的功能,那么 MonoRail 2.0 可以复用 MS MVC 的基础架构,以提供一些有价值的扩展。

Eleutian Technology 公司的工程总监 Aaron Jensen 同意 Hamilton 的观点,并建议说

我想要看到的是 MonoRail 能变得真的像 Rails。我想看到一些在 MS MVC 之上的实现,它们更加遵循“惯例胜于配置”的理念——包括生成器以及更多的功能。我期望它能更进一步,成为.NET 社区所期望的一个真正的 C# Web 平台。
但是 Aaron、 Adam Esterline 和其他一些人也指出了 MonoRail对 routing 功能支持的不足

Routing——在 RoR 和 MS MVC 中它们视 Routing 为一等公民。而在 MonoRail 中却好像是一个附加之物。为什么 Routing 这个顶级类如此重要呢?

  • DRY(别重复自己)——Routing 引擎和 URL 生成的紧密绑定允许 URL 进行轻松和安全的重构;
  • 测试——在 MonoRail 中测试 Route 需要端对端(End-to-End)的测试,如果 Route 是顶级对象,那么就可以对它们做隔离测试。

Hamilton 对 Routing 的问题已经进行了关注,他开发了一个新的MonoRail Routing 引擎,相关的代码可以在MonoRail SVN 上下载。

Ben Scheirman 在他的一篇博客中讨论了微软技术和开源技术的话题,总结说“System.Web.MVC 将拥有的观众数是MonoRail 所无法达到的,因为很多企业巨头们已经着了微软的道,无论微软的技术是好是坏,他们都会去做,而且有许多顾问公司很坚决地工作在这个领域!”

查看英文原文: The Future of MonoRail in the Wake of MS MVC

2007 年 11 月 22 日 23:271374

评论

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

MySQL数据库开发中的6个“避免”

田维常

MySQL

快速掌握并发编程---synchronized篇(下)

田维常

并发编程

数字货币钱包系统开发公司,区块链多币种钱包

135深圳3055源中瑞8032

架构师训练营第六周总结

邓昀垚

极客大学架构师训练营

快速掌握并发编程---细说ReentrantLock和AQS

田维常

后端开发

OPPO安全重磅出击 剑指安全与隐私保护

OPPO安全

安全 隐私保护 个人隐私安全 OPPO安全

深圳区块链支付系统开发公司,USDT支付系统优势

135深圳3055源中瑞8032

2020年9月公有云性能评测:UCloud、腾讯云屈居二三名,冠军竟然是它?

BonreeAPM

云计算 公有云 评测 排行榜

快速掌握并发编程---线程阻塞与唤醒

田维常

并发编程

快速掌握并发编程---深入学习Condition

田维常

并发编程

2020年区块链行业十大趋势

CECBC区块链专委会

区块链 技术人才

架构师训练营第 1 期 第 6 周作业

李循律

极客大学架构师训练营

快速掌握并发编程---Thread常用方法

田维常

后端开发

快速掌握并发编程---Semaphore原理和实战

田维常

并发编程

真爽!蚂蚁金服大牛整理SpringBoot+Cloud离线版

996小迁

架构 面试 springboot SpringCloud

广东数字货币交易所开发公司,场外OTC交易所搭建

135深圳3055源中瑞8032

科大讯飞翻译系统变身“随身翻译官” 助力粤港澳大湾区一体化建设

Talk A.I.

央行数字货币亮相 吹皱一池春水

CECBC区块链专委会

数字货币 银行

快速掌握并发编程---基础篇

田维常

并发编程

快速掌握并发编程---ArrayBlockingQueue 底层原理和实战

田维常

并发编程

LeetCode题解:90. 子集 II,递归+for循环+回溯,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

快速掌握并发编程---深入了解volatile

田维常

后端开发

快速掌握并发编程---CountDownLatch原理和实战

田维常

并发编程

容器、Docker、虚拟机,别再傻傻分不清

华为云开发者社区

容器 虚拟化

低代码开发平台的敏捷之力

力软.net/java开发平台

敏捷开发 低代码

快速掌握并发编程---synchronized篇(上)

田维常

并发编程

大企程序员亲身经历告诉你,CRM系统,自己的才是最好的

Philips

敏捷开发

架构师训练营第六周作业

邓昀垚

极客大学架构师训练营

积极参与数字货币等国际规则制定,塑造新的竞争优势

CECBC区块链专委会

疫情 经济

企业CRM未来发展趋势展望

Learun

敏捷开发

十八般武艺玩转GaussDB(DWS)性能调优(三):好味道表定义

华为云开发者社区

数据 分布式存储

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

MS MVC框架漩涡中的MonoRail未来-InfoQ