写点什么

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

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

关注

评论

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

阿里独家「操作系统和计算机网络」,GitHub标星超百万

做梦都在改BUG

Java 程序员 计算机网络 操作系统

火山引擎DataLeap推出全链路智能监控报警平台

字节跳动数据平台

数据中台 SLA 数据监控 企业号 4 月 PK 榜

程序员如何打破需求魔咒:为什么人越招越多,活越干越累?

小红书技术REDtech

算法 活动回顾

Web前端组件库OpenTiny项目如何使用?

英勇无比的消炎药

开源 前端 OpenTiny UI组件库

Kubernetes 多集群网络方案系列 1 -- Submariner 介绍

Se7en

首次解密小红书“种草”机制:大规模深度学习系统技术是如何应用的

小红书技术REDtech

深度学习 机制策略 活动回顾

openGemini 1.0版本,带来哪些新特性和性能提升?

华为云开源

数据库 时序数据库 sql

号外!多个企业数智化领先实践将亮相2023用友BIP技术大会

用友BIP

技术大会 用友iuap 升级企业数智化底座 央国企数智化转型

不同云平台之间的纳管用什么工具好?有推荐的吗?

行云管家

云计算 云平台

Codepipeline 跨账号访问 Codecommit

亚马逊云科技 (Amazon Web Services)

LED显示屏品质如何控制

Dylan

品牌 LED显示屏 全彩LED显示屏

复旦邱锡鹏教授:语言模型即服务的五类应用手段,你了解多少

小红书技术REDtech

深度学习 nlp

轻松几秒提升视频清晰度:Perfectly Clear Video Mac版

真大的脸盆

Mac 视频处理 视频增强 Mac 软件 视频画质

厦门等级保护测评机构地址在哪里?咨询电话多少?

行云管家

等级测评 厦门

NFT游戏开发交易系统搭建方案

薇電13242772558

NFT

Nautilus Chain 上首个 DEX PoseiSwap 通证经济学模型解析

股市老人

Maya 2024中文特别版 适用于Apple M和 intel/win系统

理理

maya破解版 maya2024

低代码是什么意思

优秀

低代码

mysql invalid conn排查

蓝胖子的编程梦

MySQL 性能 线上故障 超时 连接池

深度剖析Redis九种数据结构实现原理

做梦都在改BUG

Java 数据库 redis 缓存

一次排查某某云上的redis读超时经历

蓝胖子的编程梦

redis 性能 线上事故 线上故障 超时

从零学习SDK(5)SDK文档的学习和参考

MobTech袤博科技

Spring Cloud微服务网关Zuul过滤链和整合OAuth2+JWT入门实战

做梦都在改BUG

Java Spring Cloud OAuth2 JWT Zuul

一次goroutine 泄漏排查案例

蓝胖子的编程梦

golang 性能 协程 pprof 线上故障

一次系统延迟性优化案例

蓝胖子的编程梦

golang 性能 延迟 线上事故 线上故障

三维设计新帮手|Blender怎么入门?

Finovy Cloud

blender 3D软件

Mac电脑照片编辑修图软件精选 每一款各有千秋!

理理

Mac软件 图片编辑 抠图软件 苹果软件资源

一站式指标平台 Kyligence Zen 功能详解

Kyligence

数据分析 指标平台

交大翟广涛教授:眼见不实,怎样评价媒体体验质量

小红书技术REDtech

深度学习

AI时代,看用友iuap如何推动数智商业创新

用友BIP

AI 技术大会 数智底座 升级企业数智底座

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