反思MVC中的模型

2011 年 6 月 12 日

J​on Galloway 正在进行一项关于动态化 ASP.NET 的 MVC 3 框架的研究,该研究基于将编译器作为服务的思想。与此同时,Karsten Januszewski 也在寻求反序列化 JSON 的方案,以此来达到替代静态模型的目的。

通过 Mono 编译器以服务形式实现的动态模型

虽然和微软提供的编译器即服务的方案还有两个版本的距离(注:C#的最新版本为 5.0,Mono 默认编译器基于 3.x 版本特性实现),Jon Galloway 已经着手在最新的 Mono 编译服务的基础上开始了他的研究。Mono 编译器的积极发展,同时也为继承C# 5 的异步语言结构奠定了基础。

Mono.CSharp.Evaluator 是一个基础类。通过调用其中的 Run 方法可以处理任何传入的 String 对象。另外还有 Evaluate 方法,该方法同样接受一个 String 类型的参数,随后会处理并返回传入表达式的运算结果。从这点上看,和动态语言运行时或是古老的 VBScript 中提供的 API 很相似。

将 JsonObjects 作为一个模型

Karsten Januszewski 的研究则采用了截然不同的机制。他先利用 WCF 的 JSON 类,从服务层得到 JSON 格式的字符串。然后再将字符串转化为 JSON 对象,这样就形成了一个基本的模型。这样做的缺点就是没有任何业务逻辑的表示:模型完全由纯粹的数据构成。

同其他 MVC 用户一样,Karsten 在研究中也遇到了一些常见的问题和精妙的解决方案。简单来讲,LINQ 生成的匿名类型与 MVC 中使用的 RuntimeBinder 类型不兼容。也可归纳为“匿名类型与动态类型的不兼容”。幸运的是现在已经找到了解决方案。方法很简单,只需用一个 JsonObject 实例来替换掉 LINQ 表达式中的匿名类型即可。

​查看英文原文: Models in MVC

2011 年 6 月 12 日 21:003595
用户头像

发布了 156 篇内容, 共 41.3 次阅读, 收获喜欢 2 次。

关注

评论

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

Hash 一致性虚拟节点算法

李锦

第五周命题作业

冯凯

实现一致性 hash 算法

戴维斯

极客大学架构师训练营

Week05总结

熊威

架构师训练营 - 学习总结 - 第五讲

吕浩

第五周作业

王鑫龙

极客大学架构师训练营

第五周:作业一

carol

一致性Hash算法

第五周作业 小结

姜 某某

架构师训练营第 05 周——总结

李伟

架构师训练营第五周命题作业

whiter

极客大学架构师训练营

week5 home work

东哥

一致性哈希

week05 学习总结

李锦

一周信创舆情观察(6.29~7.5)

统小信uos

工业互联网 舆情 数据安全

啃碎并发(五):Java线程安全特性与问题

猿灯塔

实现一致性hash算法

LEAF

架构师训练营 - 命题作业 第 5 周

铁血杰克

第五周学习总结

潜默闻雨

第五周学习总结

冯凯

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

铁血杰克

一致性 hash 算法

changtai

极客大学架构师训练营

架构师训练营-week5-作业

晓-Michelle

极客大学架构师训练营

第五周:总结

carol

架构师训练营第5周命题作业

hifly

测试 极客大学架构师训练营 一致性哈希

第5周命题作业-实现一致性HASH

Dawn

MySQL分区表最佳实践

Simon

MySQL 数据库

一致性哈希算法

dony.zhang

一致性哈希

图解:什么是“图”?

淡蓝色

Java 数据结构 算法

图解:如何理解与实现散列表

淡蓝色

Java 数据结构 算法

第五周作业 一致性hash算法

魔曦

极客大学架构师训练营

第五周学习总结

刘卓

Week05作业

熊威

反思MVC中的模型-InfoQ