2010-03-02 126 views
12

最近一直在用ASP.MVC 2進行巨大的學習狂歡,最近發現有不同的渲染引擎在那裏...... Spark特別引起了我的注意,幾件事情。要火花還是不火花?

  1. 我與ASP.NET淵博的學識所以它是值得的斜坡上升,除了ASP.NET MVC
  2. 是否值得有什麼看法?真的有關係嗎?它似乎是一種真正的品味選擇,而不是那麼多的性能,甚至是開發者時間的大幅減少。
  3. 它仍然看起來不成熟,不是很好的智能感知支持,語法高亮支持,沒有很多工具選項。它僅對MVC 2有初步支持...

你的想法是什麼?我傾向於它可能不值得...

+0

#3是我不使用火花的主要原因。而且,您可以在同一個應用程序中使用這兩個。 http://haacked.com/archive/2008/11/16/composing-multiple-view-engines.aspx – Omar 2010-03-03 11:30:44

回答

12

接聽爲了三個部分問題...

  1. 它可能是需要學習一次新的東西是個好主意。特別是因爲幾乎所有的MVC示例和教程都將使用WebForms語法。這就是說 - 最好是在實驗解決方案中學習,而不是在「真實」項目中學習,所以在你覺得你有MVC概念之後,創建一個新的沙箱並嘗試一些MVC + Spark頁面是一個不錯的主意。

  2. 就內存壓力或處理器利用率而言,性能可能並不是除了最大的網站外最重要的考慮因素......開發人員和設計師/創意人員對時間的影響可能起初很小,但它累積和非線性。前面的一些簡化將爲您節省大量的痛苦,「簡單,簡潔的語法」是Spark視圖引擎前提的基石。

  3. 這是非常真實的。拋光和細化體驗是工具和現代IDE中最昂貴的部分。我認爲這就是爲什麼大多數開放源碼軟件的網絡堆棧從一個很棒的編輯器開始(咳嗽 TextMate 咳嗽)並從那裏開始工作。藉助Spark,您可以獲得csharp語言智能感知,但這顯然是工具支持的低水位標記。

這是軼事,但一種衡量方法是有多少人後悔使用Spark並切換回來。我不確定很多人 - 儘管在獲得MVC 2支持時出現的延遲讓人有些疑惑,我敢肯定。

5

在web應用程序中的MVC的好處之一是,你可以更接近HTML的裸機,這是許多開發人員碰到的主要問題之一 - 缺乏呈現的HTML的絕對控制

Spark是顯著更接近裸HTML比ASP.net

一般非編程HTML設計師將有更多的瞭解Spark和與它一起工作比ASP.net

機會

如果這是你使用Spark的問題,否則使用什麼渲染引擎你想。檢查出nhaml不同的東西

8

取決於你想用ASP.NET MVC做什麼。我們正在用它構建一個大型企業應用程序,我發現自己有點希望我們使用Spark。但是,這只是在我們完成了第200個觀點之後,我覺得這個框架足夠讓人感到滿意,才能考慮用其他方法來捕捉。

我會建議先用常規視圖引擎創建一些小應用程序,如果您發現自己正在努力嘗試「標籤湯」並考慮原因。在很多情況下,這意味着你應該製作一個更好的ViewModel和映射數據,創建一個html助手,或者利用一個部分文件,而不是用標籤湯填充你的視圖。

但是,有時候在視圖中需要有條件的和巨大的循環邏輯,並且這是您希望有Spark的時候。好的是你可以並排使用。所以我會說默認設置,一旦你感覺舒服就用它來欺騙。

4

實際上,我幾個月前面對同樣的選擇,但對於真正的商業應用而言,並非出於教育目的。我的答案是「激發」。

當然,有一些棘手的東西,如intellisense和包括預編譯。但從我的預期來看,好處更爲顯着。火花中的「可讀性」更好。有更優雅的部分分離(再次,我的個人意見)。我還發現了更自然的網站本地化(MyView.spark,MyView.de.spark,帶有自動回退功能的MyView.de-DE.spark,以及主佈局的相同功能)。大量的小便利 - 最重要的是我喜歡$ {}和!{}來獲取html編碼或避免它。我的應用程序在預編譯的中等信任下工作。

我寧願說火花已經足夠成熟,可以用於真正的發展。但不完美。

1

我知道這個問題已經回答,在Razor出來之前就被問到了,但是如果我開始一個新項目,我會選擇Razor。我有一個與Spark的當前項目,我絕對同意這是一個比WebForms更好的選擇。但是,由於景觀已經改變,如果今天我必須做出決定,我會選擇其他的東西。

原因

  • 火花的主要開發者加入了微軟(可能是工作剃刀)
  • 最後的穩定版本爲Spark作爲當今幾乎已經一年。
  • 語法非常相似
  • 大綱支持。創建網頁時,能夠摺疊html部分是至關重要的,Razor支持這一點,而Spark則不支持。

我不認爲剃刀有優先權錯誤。他們說剃刀的默認是代碼,然後一些標記和Spark是相反的。我在一定程度上同意這個論點;這兩個視圖引擎的工具都有一個無代碼或代碼的視圖。這取決於最終打出來的人。