写点什么

随访:Razor 与 F#和其他语言

  • 2011-01-04
  • 本文字数:699 字

    阅读完需:约 2 分钟

上个月,Vladimir Kelman 提出这样一个问题:可否将 F#与新的 Razor 视图引擎搭配使用。在咨询过 Scott Guthrie 和 Marcin Dobosz 后,我们知道这是可行的,前提是你需要自己构建所有必要的插件才行。

第一个挑战就是语法。与老式的 ASP 风格的视图引擎不同,视图与内联代码之间的界限变得相当薄,很多语言从语法上就无法实现。根据 Scott Guthrie 所述:“从概念上来说,Razor 是支持 F#的(这意味着语法上是没问题的)”。接下来,他提到了与 Marcin Dobosz 的对话,后者解释了一些必要条件。

在 Razor 端(System.Web.Razor.dll),你需要实现自己的类,让其继承自 CodeParser、RazorCodeGenerator 和 RazorCodeLanguage(还有其他必要的辅助类),然后使用 RazorCodeLanguage.Language 注册文件扩展。我们并没有提供实现自己的语言的任何指南,因此你需要查看源代码看看 CSharp 或 VB 相关的类是如何做的。 在 MVC 端(只有在支持 @model 时才需要这步),你需要继承自 MvcWebPageRazorHost 并返回具体的 MVC 解析器和生成器,他们需要继承自基本的解析器和生成器。这时还需要查看 System.Web.Mvc.Razor 命名空间中的类的源代码。你还可以在基本的解析器和生成器中实现它,这样所有一切都只能用在 MVC 项目中了。

当然了,这些只不过是让 Razor 能够处理新语言所需做的最少的工作。如果你想要编写解析器和生成器,那么你可能还想创建 Visual Studio 所需的项目、条目以及 T4 模板以提供更好的用户体验。

ASP.NET MVC 3 2010 年 10 月 Beta 版的源代码位于 Codeplex 上,基于“ Microsoft Source License for ASP.NET Pre-Release Components ”。

查看英文原文: Follow-up: Razor with F# and Other Languages

2011-01-04 07:591429
用户头像

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

关注

评论

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

联动链金-魔方支付体系整理

图说丨京东《技术重构社会供应链——未来科技趋势白皮书》

京东科技开发者

京东 智能供应链

Spring Boot 中集成ActiveMQ

武哥聊编程

Java springboot SpringBoot 2 28天写作 Activemq

Elasticsearch document 的 _source 元数据

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

如何理解新技术带来的新资产类别?

CECBC

区块链

第一周

Richard

基于机器学习的逻辑回归模型

无誉

深度解读设备的“万能语言”鸿蒙系统的分布式软总线能力

华为云开发者联盟

鸿蒙 操作系统 智能设备 HarmonyOS 分布式软总线

一文带你搞懂从动态代理实现到Spring AOP

华为云开发者联盟

spring jdk 容器 aop 动态代理

2020年终总结:回顾、反思、期待

书旅

年终总结

mq消费幂等总结

A

MQ 幂等性 db

MDF智能合约APP开发|MDF智能合约软件系统开发

系统开发

HPC on Volcano:容器在气象行业HPC高性能计算场景的应用

华为云原生团队

大数据 容器 云原生 k8s 分布式计算

悟透前端 | ECMAScript 6的Map映射

devpoint

json 大前端 map ES6

2021面试脚本!夜读互联网Java开发27大专题,终入P7

比伯

Java 程序员 面试 计算机 技术宅

数字货币呼之欲出,但这些套路须警惕!

CECBC

数字货币

Linux:为什么性能工具需要 BPF 技术

博文视点Broadview

数据结构与算法 - 哈夫曼树

ios 数据结构与算法

腾讯T3大佬亲自教你!一起刷完了这份1307页的安卓面试宝典吧,吐血整理

欢喜学安卓

android 程序员 面试 移动开发

数字钱包系统软件开发|数字钱包APP开发

系统开发

基于用户画像/AB测试的产品定价

无誉

点位盘,点位盘开发,点位盘合约交易。

v16629866266

美团图数据库平台建设及业务实践

NebulaGraph

图数据库

程序员的简历,要注意以下几点

田维常

简历

Redis中哈希分布不均匀该怎么办

Java 数据库 编程 程序员 面试

Nine Ring九环智能合约软件开发|Nine Ring九环智能合约APP系统开发

系统开发

数据库运维家中常备:上限约400MB/s,比COPY等工具还好用的数据利器

华为云开发者联盟

数据 GaussDB 数据迁移 gds FDW

2021年数字货币时代加速到来

CECBC

数字人民币

软件测试--cookie学习

测试人生路

软件测试

如何成为一名优秀的技术Leader?

架构精进之路

成长笔记 七日更 28天写作

爱了爱了!带着问题深入学习Handler,吊打面试官系列!

欢喜学安卓

android 程序员 面试 移动开发

随访:Razor与F#和其他语言_.NET_Jonathan Allen_InfoQ精选文章