阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

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

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

关注

评论

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

万字长文解密数据异构最佳实践(含完整代码实现)!!

冰河

MySQL 数据库 canal 数据同步 数据异构

【高并发】开篇:线程与多线程

冰河

Java 并发编程 多线程 高并发 异步编程

2022第十五届北京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

iOS开发-百度一面总结

iOSer

ios 面试 iOS面试 ios开发 百度面试

百度智能云人脸采集SDK通过CFCA权威安全测评

百度开发者中心

安全 sdk

接口文档工具yapi的安装

小鲍侃java

11月日更

华为云·核心伙伴开发者训练营——产业云专场在东莞松山湖圆满落幕

华为云开发者联盟

华为云 鲁班会

看完这篇SpringBoot让我在阿里成功涨薪40%,感谢

Java 编程 程序员 程序人生 springboot

极客时间【架构实战营】第二期 模块七作业

Geek_91606e

架构实战营

百度智能云与雅量商业智能携手,加速零售行业智能化升级

百度开发者中心

百度智能云 零售行业

ReplacingMergeTree:实现Clickhouse数据更新

华为云开发者联盟

数据 事务 Clickhouse 数据更新 OLAP数据库

linux lsquic 编译

webrtc developer

Node.js 17 新特征简介

devpoint

node.js Promise 11月日更

恒源云(GPUSHARE)_CAN: 借助数据分布提升分类性能

恒源云

深度学习

四种 AI 技术方案,教你拥有自己的 Avatar 形象

阿里云CloudImagine

人工智能 阿里云 计算机视觉 视频云 元宇宙

腾讯安全姬生利:云原生环境下的“密码即服务”

腾讯安全云鼎实验室

云原生 加密

Github上线仅六天,收获Star超55K+,这套笔记能拿下90%以上面试

Java redis spring 程序员 架构

行业白皮书发布!百度智慧城市助力城市“双碳”目标达成

百度开发者中心

人工智能 智慧城市

《个保法》施行 | App 隐私合规检测双十一尝鲜仅需99元

蚂蚁集团移动开发平台 mPaaS

隐私保护 移动开发 监管合规

顶会VLDB‘22论文解读:CAE-ENSEMBLE算法

华为云开发者联盟

算法 时间序列 华为云数据库 深度神经网络

你需要知道的 19 个 console 实用调试技巧

CRMEB

CSS JavaScript DOM console crmeb

网课录屏用什么软件好?Camtasia极简操作,课程重点一目了然

淋雨

Camtaisa

常用的Nmap脚本及使用实例

喀拉峻

网络安全 信息安全 渗透测试 脚本 nmap

GitHub远程免密连接详解,还顺手解决了RPC失败HTTP413

老表

GitHub RPC HTTP 11月日更

百度鸿鹄芯片落地首款量产车吉利博越X 智能车机体验惊艳成都车展

百度开发者中心

百度 车联网 鸿鹄芯片

百度Apollo参编首批汽车信息安全国家标准,跻身车联网信息安全第一梯队

百度开发者中心

Apollo

TDengine在浙商银行微服务监控中的实践

TDengine

tdengine 后端 时序数据库

阿里云视频云,用技术普惠打造平民化“虚拟人”

阿里云CloudImagine

人工智能 阿里云 视频云 数字人 虚拟人

GitHub点击量破百万访问,不愧是被称阿里神作的JDK源码笔记

Sakura

Java 源码 架构 jdk 面试

《黑客之道》kali Linux之NMAP高级使用技巧和漏洞扫描发现

学神来啦

Linux 渗透 kali nmap

“智慧粮仓”守卫中国饭碗

ThingJS数字孪生引擎

大前端 物联网 可视化

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