铁Python与Razor
我对新的Razor语法有一点了解,但对Iron Python没有经验。我想知道这两者是否能满足相同的需求?微软是否更喜欢其中一个(或者将来会更喜欢)?我很想听听你的看法,因为我在考虑学习Iron Python,但如果Razor也能满足我的需求,那我可能就不学了。
3 个回答
我参加了一个关于IronPython和IronRuby的讲座,讲者似乎表达了一个观点:IronPython在构建现代的ASP.NET MVC网站方面,能力不如IronRuby或C#。不过,这个情况可能已经有所变化。
不过,你在比较不同的东西。IronPython是一种功能齐全的动态语言,而Razor只是一个标记语言和视图引擎,用于定义ASP.NET MVC网站中的视图。应用程序的大部分代码和控制器仍然需要用真正的编程语言来编写,比如C#、Python等。
Razor是ASP.NET MVC 3中的一种视图引擎,所以我认为它和IronPython占用的空间没有关系。
如果我错了,那我肯定是漏掉了什么。
为了更好地理解PaulStack的回答,我们来详细说说:
Razor是一种模板引擎,主要用于生成像HTML网页这样的文档。它在MVC 3中作为视图引擎使用,同时也是ASP.NET Web Pages的默认页面语法(WebMatrix的一部分)。Razor解析器会根据XML文档的结构和支持的两种编程语言(C#和Visual Basic)来减少在代码模式和标记模式之间切换时需要的特殊字符数量。
虽然Razor主要是为了生成HTML而设计的,但它也可以用来处理其他文本模板的任务(不过在某些情况下,你可能需要使用特殊的过渡符号来强制在代码和文本之间切换)。
另一方面,IronPython是一种编程语言。它不是模板引擎,但自然可以用来编写生成文本流的代码。
如果你已经对C#(或VB)比较熟悉,我建议你试试Razor。它是对语言语法的一种简单扩展,可以让你在标记和代码之间非常顺畅地切换。