写点什么

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

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

关注

评论

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

请求管理 | 洞态 IAST 在好大夫 SDL 中的最佳实践

火线安全

信息安全 SDL DevSecOps

Hive SQL语句的正确执行顺序

五分钟学大数据

1月月更

CWE视图层级关系解析:节点关系查询

华为云开发者联盟

软件开发 cwe 软件缺陷 CWE视图层级关系 节点关系

DDD独立类模式你用到了吗

神帅

DDD 独立类模式

TCP长连接实践与挑战

字节跳动终端技术

字节跳动 TCP 后端 HTTP 连接池

重新学架构之微信业务与学生管理系统

陈华英

「架构实战营」

深度评测丨GaussDB(for Redis)大Key操作的影响

华为云开发者联盟

redis 运维 GaussDB(for Redis) 大Key KV查询

领域划分的规则是什么

神帅

DDD 领域划分规则

三峡集团研究院:基于物联网的大规模储能系统能量管理和智能运维平台数据接入方案

EMQ映云科技

物联网 mqtt 碳中和 边云协同 新能源

云厂商第一家,腾讯安全获国家级信息安全服务资质“双认证”!

腾讯安全云鼎实验室

云安全 安全服务

Hive底层数据存储格式详解

五分钟学大数据

hive 1月月更

从 Gitee 到极狐GitLab 的迁移指南

极狐GitLab

迁移 gitee 极狐GitLab

做了这么多年架构师,我终于理解了什么是架构设计

博文视点Broadview

多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!

华为云开发者联盟

安全 多方计算 数据保护 华为云tics服务 差分隐私算法

V7.1:新字段“嵌入”,实现自定义元素交互

明道云

小程序开发中使用 JS

Speedoooo

拍乐云发布互动白板2.0,首创超高清文档演示和滚动浏览

拍乐云Pano

WebRTC RTC opengl

专访深职院XR专家 | 实时云渲染赋能虚拟仿真实训,打造5G+XR智慧教育平台

3DCAT实时渲染

教育 XR VR/AR 云渲染 元宇宙

模块一作业

Geek_ec866b

架构实战营

投票开始 | 和你一起见证龙蜥社区年度优秀开发者的诞生

OpenAnolis小助手

开源 开发者 活动 社群 比赛

3DCAT首届行业生态交流会|瑞云科技技术总监赵志杰:实时渲染助力元宇宙应用触手可及

3DCAT实时渲染

云计算 公有云 云渲染 元宇宙

品高股份加入,龙蜥社区迎来又一家云计算厂商

OpenAnolis小助手

Linux 开源

鸿蒙轻内核源码分析:虚拟文件系统VFS

华为云开发者联盟

鸿蒙 文件系统 鸿蒙轻内核源码 虚拟文件系统VFS 虚拟文件系统

微信的业务架构&学生管理系统架构设计

随欣所遇

架构实战营

凡泰极客荣获2021 InfoQ“最佳技术产品营销奖”

FinClip

InfoQ

企业管理中用户数据同步机制解决思路

全象云低代码

低代码 数据同步 用户数据 后端技术

企业微信业务架构分析

Geek_1b4338

#架构实战营

如何知道自己是否适合做产品经理?

石云升

产品经理 1月月更

2022年1月国产数据库排行榜:TiDB霸榜两年势头不减,openGauss与OceanBase分数大涨

墨天轮

数据库 opengauss TiDB 国产数据库

把复杂交给我们,把简单还给你丨TiVP 让 SQL 执行计划可视化

PingCAP

网易Go语言通用开发框架-Ngo开源啦

月读

golang Go 语言 开源治理 开源中国

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