2010-05-27 55 views
9

我想在MVC中爲數字檔案中的Intranet使用複雜的Web應用程序(這將是一組相關的應用程序和頁面之一)的JavaScript框架。我一直在尋找SproutCore和JavascriptMVC。我想選擇一個框架並堅持下去。sproutcore vs javascriptMVC爲web應用程序開發

有沒有人知道在比較這兩個特徵時有什麼特色?

我想要一些簡單,直接,我可以輕鬆自定義/破解的東西,而且這並不會影響我的方式,但同時爲我提供了保持我的代碼組織良好的基礎,並且事件驅動。我也計劃大量使用jQuery。

我知道sproutcore得到了蘋果公司的支持,看起來它日益受到歡迎,並且它有一個漂亮的綠色網站:),而JavascriptMVC看起來不那麼專業,少一些跟隨並且動力不足。

我已經完成了這兩個教程,並且我更爲SproutCore留下了深刻的印象(在JMVC教程中,你並沒有真正做任何實質性的事情) - 但在我腦海中的某個地方,我覺得JMVC可能會更好因爲它不會嘗試做太多 - 它只是基於幾個jquery插件爲您提供MVC功能,並且您可以將jquery用於其他任何事情,因此它非常靈活。而SproutCore似乎有更多的自己的API等......這也是一種很好的方式......但是,然後你有點卡在....嗯,我很困惑:)。

任何想法將不勝感激。

回答

9

作爲一個JavaScriptMVC貢獻者,我非常偏愛。但我會盡力給出最好的答案。

JavaScriptMVC也花了數年的時間來開發。但不是專注於UI功能,而是專注於低於那些層。這有幾個原因:

  1. 你可以找到一個jQuery小部件,以滿足幾乎所有的需求。沒有理由競爭這些插件。相反,JavaScriptMVC會嘗試使用它們。
  2. 大多數人需要一個或兩個自定義小部件/控件。 JavaScriptMVC希望儘可能簡單地構建和維護這些部分。「
  3. 靈活性+ API。我不確定如何說這個......但這裏是我的最佳選擇......使用JavaScriptMVC,我們希望應用程序的每一層都儘可能易於理解和維護。這就是爲什麼我們選擇jQuery作爲我們的低級庫。 API是關於dom可能的最佳抽象。人們通常直接從低級API中構建Widget/Control。這就是爲什麼大多數jQuery小部件的代碼看起來非常不相似。我們需要一箇中間層來組織我們的代碼並推廣最佳實踐,同時提供足夠的靈活性來滿足幾乎任何需求。因此,藉助JavaScriptMVC,您可以獲得非常穩固的低層和中層圖層。但是,你不會得到小部件。

JavaScriptMVC將測試,錯誤報告和文檔納入框架。測試是最令人印象深刻的部分。它集成了硒和envjs測試。

我的建議是使用SproutCoreif,您的需求可以用SproutCore構建得非常簡單。但是,如果您瞭解jQuery,必須構建大量自定義控件,或者需要非常棒的測試,請使用JavaScriptMVC。

+0

現在我們正在研究Dojo,因爲我們想要使用一個更爲知名和支持的框架(因此很容易找到/僱傭開發人員來維護/擴展)。但賈斯廷很好的答案。我肯定會選擇JMVC而不是Sproutcore,因爲你給出的原因正是如此。 – swami 2010-07-23 03:46:56

2

我認爲它們之間的主要區別在於SproutCore包含一個GUI,而JMVC是低級的,沒有任何圖形,所以如果你需要一個GUI,你不能使用JMVC而不包括其他腳本,比如jQuery UI或jQuery插件。

你說「JMVC可能會更好,因爲它不會嘗試做太多」我不同意這一點,在SproutCore 1.0發佈之前需要幾年時間,所以開發人員有時間做出好的選擇產品。

我建議你使用SproutCore,也許你將不得不學習更多的東西,你會花更多的時間去練習和理解一切,但是你會學會如何使用一個非常好的框架,它也可以是有用的爲未來的項目。

+0

我不介意學習新的東西。事實上,我非常喜歡SproutCore語法,以及它的工作方式。但我正在構建的應用程序非常不標準 - 基本上爲您提供了標記xml文檔的界面。所以很多定製工作都需要完成 - 所以我想也許更低層次更適合這種特殊情況...... – swami 2010-05-27 08:47:26

+0

但是這樣你就必須從你自己的界面創建一個界面,而不是使用(漂亮) GUI已經創建。無論如何,你說你不在乎學習新事物,但這是你生命中最後的項目?我希望不是。所以下一次你將從另一個應用程序開始,你必須做一半的工作,因爲你已經瞭解了框架的一切。總之,你必須選擇建立一個已經創建的圖形,但是有一個巨大的框架和一個更小但不是GUI框架的項目 – mck89 2010-05-27 08:57:10

+1

我不認爲UI小部件是SproutCore最大的優勢。它有幾個有吸引力的事情,並在它的頂部,我會放置數據綁定和財產觀察員。將視圖與模型連接並保持同步需要使用**樣板代碼**,並且SproutCore可以顯着降低樣本代碼。 – Anurag 2010-07-20 22:21:52

8

有趣的是,由於僅僅一個月左右,我們的團隊正好對這兩個框架進行了正面評估。我們最終選擇了JavaScriptMVC,並且我一直在爲它工作約一個月。

我喜歡它......但是,我是SproutCore的巨大支持者。在我們評估它們之前,我從來沒有聽說過任何一種框架,但是一旦我看到SproutCore並看到底下,我印象非常深刻。老實說,我不認爲有什麼可以給你的力量。是的,你會有一個學習曲線,但是一旦你知道它,一個人就可以完成5或10的工作。

所以我會在心跳中使用SproutCore。

這就是說,JavascriptMVC(aka「JMVC」)很好。它並沒有真正給你帶來jQuery本身的重要。你仍然會有一些基礎設施來建立自己(取決於你的需求有多複雜)。這是一個專業和一個騙局。一件好事就是,如果你需要深入瞭解一些JMVC的細節,你可以......它並不是那麼難以置信的巨大,它是不可逾越的。

總之,JMVC沒有什麼問題。但是,在我看來,即使在SproutCore的球場上也沒有。

+0

+1感謝您與這兩個框架分享您的經驗。 – IsmailS 2011-10-20 12:21:25