写点什么

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

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

关注

评论

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

狼人杀背后的秘密,实时语音你不知道的那些事

anyRTC开发者

音视频 WebRTC 语音 RTC 安卓

Flink在窗口上应用函数-6-9

小知识点

scala 大数据 flink

通过GUI界面更改 Ubuntu 20 LTS apt 源为阿里云

jiangling500

ubuntu 阿里云 apt

为产业AI去障:联想的边缘突破

脑极体

架构师训练营第二周课后作业

天涯若海

极客大学架构师训练营

真香!天天996进不去阿里?看5年苦逼程序猿怎么逆袭阿里P7

小Q

Java 学习 架构 面试 程序猿

天呐!价值2980元Java成神面试题竟在Github开源了

996小迁

Java 学习 架构 面试

分析和解决JAVA 内存泄露的实战例子

AI乔治

Java 架构 JVM 内存泄露

极客大学 - 架构师训练营 第六周

9527

直播带货大战在即:账号交易灰产猖獗

石头IT视角

在阿里内部,做Java到金字塔顶端的人平时都如何学习源码?

小Q

Java 学习 架构 面试 程序猿

Netty源码解析 -- 零拷贝机制与ByteBuf

binecy

Netty 源码剖析

快速掌握并发编程---线程池的原理和实战

田维常

程序员

极客大学 - 架构师训练营 第六周作业

9527

gRPC服务注册发现及负载均衡的实现方案与源码解析

网管

负载均衡 gRPC etcd 服务注册与发现 Go 语言

企业级RPC框架zRPC

万俊峰Kevin

RPC microser Go 语言

架构师训练营作业:第五周

m

小白学算法:买卖股票的最佳时机!

王磊

Java 算法

码农会锁,synchronized 对象头结构(mark-word、Klass Pointer)、指针压缩、锁竞争,源码解毒、深度分析!

小傅哥

小傅哥 虚拟机 synchronized mark-word Klass Pointer

当 TiDB 与 Flink 相结合:高效、易用的实时数仓

Apache Flink

flink #TiDB

《Maven实战》.pdf

田维常

程序员

ConcurrentHashMap核心原理,彻底给整明白了

AI乔治

Java 架构 分布式 线程

阿里内部首发1000页涨薪面试宝典:Spring+SpringMVC+MyBatis框架整合开发实战

Java架构追梦

Java 源码 架构 面试 SSM框架

甲方日常 40

句子

工作 随笔杂谈 日常

web worker的介绍和使用

程序那些事

多线程 Web Worker 异步模型 异步编程 web技术

第6周作业

饭桶

面试官:面对千万级、亿级流量怎么处理?

艾小仙

Java 缓存 分布式 高并发 中间件

频繁操作本地缓存导致YGC耗时过长

AI乔治

Java 架构 JVM GC

第6周学习总结

饭桶

数字“异化”生存

脑极体

零基础IM开发入门(三):什么是IM系统的可靠性?

JackJiang

网络编程 即时通讯 IM

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