閱讀Scott Guthrie的博客文章,瞭解有關ASP.NET MVC的新Razor視圖引擎並閱讀此question比較可用視圖引擎。ASP.NET MVC剃刀視圖引擎
Razor似乎解決了默認視圖引擎的大部分問題。作爲開發人員,哪些功能差異會使您成爲一個引人注目的選擇?缺乏哪些功能會阻止您使用它?
閱讀Scott Guthrie的博客文章,瞭解有關ASP.NET MVC的新Razor視圖引擎並閱讀此question比較可用視圖引擎。ASP.NET MVC剃刀視圖引擎
Razor似乎解決了默認視圖引擎的大部分問題。作爲開發人員,哪些功能差異會使您成爲一個引人注目的選擇?缺乏哪些功能會阻止您使用它?
除了標記語言之外,還有很多可以查看引擎的東西。我會懷念幾星火特點:
我喜歡循環/ IFS更星火語法 - 混合HTML < >和C#{}括號看起來並不太好 - 但是這純屬個人意見。
剃刀也有非常有前途的功能,例如,內聯模板。鑑於Spark的創造者被微軟聘用,我認爲Razor有很好的寫作能力,非常有用,並且支持很好的視圖引擎。當然,我不會用Razor重寫數百個Spark視圖(雖然我用Spark重寫了幾十個WebForms視圖)。但我一定會認真看待剃刀 - 我只是從你的問題中發現了這一點,謝謝 - 我現在看到的看起來很有希望。當然,它不與WebForms競爭(任何視圖引擎都優於WebForms),但如果您還沒有投入太多的視覺引擎,它對於新的ASP.NET MVC項目來說看起來是個不錯的選擇。
re:'autogenerated variables' - 你可以使用John Skeet非常聰明的'SmartEnumerable'類來實現這個與剃刀/網頁表單:http://www.yoda.arachsys.com/csharp/miscutil/usage/smartenumerable.html – 2010-12-31 11:46:46
很顯然我還沒有在實踐中對它進行過評估,但事實上它比ASPX引擎更具挑戰性,是誘導開關最引人注目的特徵。我只希望它能更好地自動格式化。事實上,它將得到Intellisense的支持並與MVC一起交付,這使其成爲啓動新項目的自然選擇。在我進行切換之前,我會在一個小型項目上公平地採取行動。僅僅通過閱讀文章,我沒有看到任何我無法做到的事情,我現在正在用ASPX引擎做。
更新:我一直在使用Razor一年多,並且永遠不會回到ASPX引擎。語法看起來非常自然和富有表現力。
你有沒有考慮過使用Spark?有關Spark提供的其他功能列表,請參閱queen3的答案。 – Ryan 2010-07-04 23:34:17
不幸的是,Spark智能感知支持並不是很好(特別是在VS2010中),這對許多開發者來說可能是一個阻礙。但支持正在開發,所以希望事情會得到改善。 – queen3 2010-07-05 10:07:21
我覺得如果你需要Intellisense,你覺得你太複雜了。當然,我的視圖的90%內容看起來像'!{Html.EditTemplateFor(x => x.Quantity)}',所以我只需要知道一些關鍵的幫助器方法和我的視圖模型的屬性。我認爲Intellisense的缺乏實際上幫助我將事情簡單化。 – Ryan 2010-07-09 14:02:57
除了更乾淨的外觀,佈局部分的靈活性看起來非常好,並且聲明式HTML幫助程序看起來非常有用。到目前爲止,沒有看到使用它的任何缺點,但當然必須在實踐中嘗試一下。
單元測試:新的視圖引擎 實施將支持 能力進行單元測試的看法(不 需要一個控制器或網絡服務器, 並且可以在任何單元測試 項目主辦 - 沒有特殊的應用 - 需要域 )。
最後!!!簡直不敢相信微軟用了將近8年的時間才終於推出了支持這一功能的視圖引擎。
剃刀使用方括號,也就是foreach
的東西。 Spark在此使用XML標記。
因此,Spark完全支持每個XML處理器對視圖文件的解析和分析。
Mabye這不是一件大事,但顯示了一致性和可擴展性。
這就是我喜歡的部分火花... – 2010-11-15 07:42:35
對我來說有三個令人信服的理由:
編譯 - 剃刀視圖可以被編譯成一個DLL。最後,我們在.NET Web項目中獲得了適當的可重用性。我可以有一個業務對象,知道如何顯示自己,而不會將該代碼作爲.ascx文件在Web項目的某個部分中浮動。
可測性 - 因爲它被編譯爲一個類,所以我可以編寫一個單元測試並拋出對象的模擬實例,以查看HTML是否正確。
智能感知和簡潔的語法都不錯,但不是最重要的部分。
你有更多的信息在'彙編'在你的項目符號點?鏈接,也許?提前致謝。 – Buildstarted 2010-07-27 15:55:28
是的,在ScottGu的關於Razor的博客文章的評論中提到了對類庫的支持計劃: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx# 7553475 Quote: 「re:介紹」Razor「 - 一個新的ASP視圖引擎。NET 2010年7月3日星期六下午12:14作者ScottGu @Chris, > 1)這些可以預編譯或作爲資源嵌入到程序集中嗎? 是的 - 這是我們希望在帖子中沒有提到的事情之一。我們計劃讓您將它們添加到類庫項目中並將它們編譯爲程序集。 ... ScottGu「 – Quango 2010-07-28 16:01:11
啊,難怪我沒有看到它......總是對他的帖子發表數百萬條評論:)謝謝 – Buildstarted 2010-07-28 19:35:49
這應該是CW? – 2010-07-07 08:09:54
我這麼認爲。 但是,男人,剃刀不能很快到達這裏。 – 2010-07-27 06:46:04