我对新的 Razor 语法有一点经验,但对 Iron Python 没有经验。我想知道两者是否满足相同的需求?微软是否偏爱其中一个(或将会)?感谢您的想法,因为我正在玩弄学习 Iron Python 的想法,但如果 Razor 可以满足相同的需求,我可能不会。
3 回答
扩展 PaulStack 给出的答案:
Razor 是一个模板引擎(倾向于模板化 XML 样式的文档,例如 HTML 网页),它可用作 MVC 3 中的视图引擎以及 ASP.NET 网页中的默认页面语法(它是WebMatrix 堆栈)。Razor 解析器使用关于 XML 文档结构的假设以及两种受支持的编程语言(C# 和 Visual Basic)中可用的构造来最小化在代码模式和标记模式之间转换所需的转换字符的数量。
虽然它的编写重点是发出 HTML,但它已被推广以支持任意文本模板任务(尽管在某些情况下,您可能需要使用特殊的转换标记来强制在代码和文本之间切换)。
另一方面,IronPython 是一种编程语言。它不是一个模板引擎,尽管它自然可以用来编写发出文本流的代码。
如果您已经熟悉 C#(或 VB),那么我建议您尝试使用 Razor。它是语言语法的一个相当简单的扩展,允许在标记和代码之间进行非常平滑的转换。
Razor 是 ASP.NET MVC 3 的视图引擎 - 所以我相信它与 IronPython 占用的空间无关
如果我错了,那我肯定错过了什么
我参加了一个研究 IronPython 和 IronRuby 的人的演讲。他似乎表达的普遍观点是 IronPython 不像 IronRuby 或 C# 那样能够胜任构建现代 ASP.NET MVC 站点的任务。也就是说,从那时起,这可能会发生变化。
但是您在这里将苹果与橙子进行比较。IronPython 是一种成熟的动态语言。Razor 只是一种标记语言和视图引擎,用于在 ASP.NET MVC 站点中定义视图。应用程序的控制器和大部分代码仍必须使用实际语言(例如 C#、Python 等)编写。