HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

5. helm charts 基础入门

ghostwritten

Kubernetes Helm

npm install过程中遇到typings deprecated的warning该怎么处理

华为云开发者联盟

typescript 前端 npm typings.json

汽车行业云,如何管“多云”?

BoCloud博云

案例 汽车 云管理平台

2. helm 简介

ghostwritten

Kubernetes Helm

JavaWeb期末复习

爱好编程进阶

Java 程序员 后端开发

Java多线程知识点总结(思维导图+源码笔记

爱好编程进阶

Java 程序员 后端开发

helm charts 内置函数

ghostwritten

Kubernetes Helm

对代码不感冒, 我应该怎么办?

源字节1号

程序员人生 后端开发

巴延兴:从主导多个SIG组到OpenHarmony “代码贡献之星”,我是如何做到的?

OpenHarmony开发者

OpenHarmony sig

Java多线程基础(二)

爱好编程进阶

程序员 后端开发

大数据培训Flink整合ElasticSearch

@零度

大数据 flink elasticsearch

Caddy VS Nginx,谁领风骚

码农大熊

api 网关 盘古开发框架 Caddy

java中调用js代码

爱好编程进阶

Java 程序员 后端开发

web技术支持| 从视频元素流式传输到视频元素

anyRTC开发者

前端 Web 音视频 WebRTC 视频通话

helm 3.8 命令指南

ghostwritten

Kubernetes Helm

java三大特性之多态的认识,以及多态的实际应用(一

爱好编程进阶

Java 程序员 后端开发

Java全栈开发---Java ERP系统开发:商业ERP(五

爱好编程进阶

程序员 后端开发

Java基础概念干货(字符、标识符

爱好编程进阶

Java 程序员 后端开发

java SpringMVC Filter登录拦截器

爱好编程进阶

Java 程序员 后端开发

Java内存区域和内存模型

爱好编程进阶

Java 程序员 后端开发

【Python】题集 of ③

謓泽

5月月更

helm v2 公共源大全

ghostwritten

Kubernetes Helm

Java JVM知识汇总

爱好编程进阶

Java 程序员 后端开发

Java中抽象

爱好编程进阶

Java 程序员 后端开发

Java~异常Exception和异常习题“用户登录

爱好编程进阶

Java 程序员 后端开发

AIRIOT物联网低代码平台如何配置db-driver驱动?

AIRIOT

低代码开发 驱动配置

贡献者任务第三期精彩来袭!

第四范式开发者社区

人工智能 机器学习 数据库 开源 贡献者

1. helm 目录

ghostwritten

Helm #Kubernetes#

4. helm 3.8.0 入门

ghostwritten

Kubernetes Helm

异构资源交付效率提升50%,这家头部券商是如何做到的?

BoCloud博云

证券 案例 云管理平台

Java Swing大神必经之路7:Swing 的任务线程与 EDT 事件分发队列模型

爱好编程进阶

程序员 后端开发

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