写点什么

随访: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:591373
用户头像

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

关注

评论

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

软件测试/人工智能|教你如何更高效地使用AI对话工具

霍格沃兹测试开发学社

解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者

熬夜磕代码、

亚马逊云科技

为什么我认为开源低代码平台不可靠?

代码生成器研究

开源 程序员 互联网 低代码

朝夕光年「红砖」搭建平台架构设计和应用落地

字节跳动技术范儿

流程图是什么?一文弄懂流程图 - 定义 | 流程图符号 | 流程图如何制作

彭宏豪95

流程图 在线白板 画图工具 效率软件 流程图绘制

一些有趣的迹象:“前端已死”难道要成真了?

伤感汤姆布利柏

程序员 Vue 前端

Databend 源码阅读: Storage 概况和 Read Partitions

Databend

锂离子电池充电管理芯片应用

芯动大师

C++ IDE:最适合 C++ 初学者的 IDE 是什么?

ide 初学者 C++

SQL(Structured Query Language)简介和常见 SQL 命令示例

小万哥

MySQL 数据库 sql 程序员 后端

亚马逊云 EC2 的网络详解

孤虹

亚马逊云 EC2

亚马逊云EC2的监控

孤虹

亚马逊云 EC2

为什么Facebook运营需使用IP代理?有哪些美国IP代理好用?

Geek_bf375d

当代企业的数字安全,能“脆皮”到什么程度?

白洞计划

AI

腾讯云的云上容灾实践

腾讯云混沌演练平台

容灾

为什么现在的低代码平台大多被抵制?

代码生成器研究

编程 程序员 低代码 代码

学习Python过程中容易遇到的问题及其解决办法

Geek_7d9e0b

#python

外贸必看|Kakao账号如何注册使用?如何实现Kakao多开?

Geek_bf375d

大会技术“硬核”资讯来啦!点击预约 IoTDB 现场一对一调优咨询服务

Apache IoTDB

软件测试/人工智能|一文告诉你ChatGPT原理与架构

霍格沃兹测试开发学社

软件测试/人工智能|利用ChatGPT进行项目需求分析

霍格沃兹测试开发学社

LeetCode题解:2. 两数相加,递归,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

后端除了增删改查还有什么?

秃头小帅oi

物联专栏丨物联网技术的挑战与趋势

inBuilder低代码平台

物联网

ClickHouse联合创始人、前Google副总裁Yury到访杭州玖章算术公司,双方建立生态合作

NineData

Clickhouse 数据复制 合作伙伴 SQL开发 NineData

2023如何搭建优质独享美国IP?美国静态住宅代理IP哪里有?

Geek_bf375d

软件开发提效工具——低代码(Low-Code)

互联网工科生

低代码 数字化

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