AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

多家合作伙伴与华为终端云服务签约 全面合作共建鸿蒙服务分发新生态

最新动态

华为阅读看好“短故事”新赛道 签约知乎盐言故事开启轻阅读

最新动态

HDC2023|余承东:元服务将卡片式体验带给消费者,加速鸿蒙生态的繁荣

最新动态

Go 介绍

小万哥

Go golang 编程语言 跨平台 后端开发

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

西柚子

金奖方案 | 一专多能、傲视寰宇,南大通用GBase8c数据库牛在哪里 #openGauss

daydayup

openGauss赋能企业核心场景应用 | 华为全联接大会2022专题回顾

daydayup

openGauss内核分析(二.一):简单查询的执行

daydayup

ChatGenTitle:使用百万arXiv论文信息在LLaMA模型上进行微调的论文题目生成模型

汀丶人工智能

人工智能 自然语言处理 LLM模型

贝业新兄弟:企业级应用在供应链物流领域的实践

明道云

数据库迁移系列】从MySQL到openGauss的数据库对象迁移实践

daydayup

openGauss —— 智能优化器之基数估计

daydayup

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域

股市老人

从价值的角度看,为何 POSE 通证值得长期看好

股市老人

只凭阿里大牛珍藏的并发编程笔记,我拿下了30K offer!

小小怪下士

Java 编程 程序员 并发编程 高并发

文心一言 VS 讯飞星火 VS chatgpt (71)-- 算法导论7.1 1题

福大大架构师每日一题

福大大架构师每日一题

如何做好服务API的性能压力测试

唯美

性能 服务

JDK中「SPI」原理分析

Java 架构 jdk spi

鸿蒙生态星河璀璨 | 老程序员让HarmonyOS创新从“心”开始

最新动态

openGauss内核分析(二.二):简单查询的执行

daydayup

openGauss内核荣获中国首个国际CC EAL4+级别认证

daydayup

openGauss数据库从3.0.0升级到3.1.0操作实践

daydayup

从价值的角度看,为何 POSE 通证值得长期看好

西柚子

openGauss的SQL引擎在3.1.0版本中做了哪些优化?

daydayup

服务端apk打包教程

越长大越悲伤

Java 服务端打apk包

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