2011-08-31 122 views
4

我打算使用HTML,JavaScript和CSS重寫現有的Silverlight應用程序。這將是一個豐富的互聯網應用程序連接到服務器僅用於數據(基於JSON的Web服務) - 所以不會有任何服務器端表示框架,如JSP或ASP.NET。該應用程序由大約8個屏幕組成,其中大部分以標籤式佈局顯示。問題是...如何編寫模塊化JavaScript應用程序?

以模塊化的方式編寫這樣的應用程序的最佳方式是什麼?我想將單個屏幕作爲獨立模塊編寫,只能通過事件與彼此進行通信。我還想使用某種MVC框架將表示層與模型分離。

我應該看看哪些框架的任何想法?你有使用它們的好經驗嗎?我開始看Backbone.js,JavaScriptMVCSproutCore。我錯過了值得考慮的事情嗎?

提前感謝您的時間。

P.S.如果您希望看到我正在嘗試重寫的應用程序,則可以使用在線演示here - 這是一個用於學習和比較技術的現實交易應用程序。

回答

2

藉助Sproutcore,您可以創建所謂的框架,從而分離您的應用程序。每個SC項目都有一個frameworks目錄,您只需爲您的自定義框架添加一個目錄,並將框架包含在您的構建文件中。

對於鬆散的耦合和測試目的(SC很大程度上是MVC),SC至少將Model層分離到它自己的框架中並不是一個壞主意。根據它們的有多強大,將你的屏幕分成自己的框架可能是有意義的。這種方法的好處之一是,如果需要,您可以在其他項目中重用您的框架。

SC還包含一個健壯的狀態圖機制,因此使用自定義事件是非常自然的,並且由於狀態圖,相對容易確保僅當應用程序處於正確狀態時才處理事件。

+0

Thanks hvgotcodes。這對Sproutcore來說非常鼓舞人心。 – Naresh

3

我還沒有機會嘗試SproutCore,但我聽到了很多關於它的好消息,並且希望在某個時候查看它。我建議至少嘗試一下Backbone和Sproutcore,看看哪兩個更適合你的需求和編程風格。

我在Backbone做了很多工作,你的建議聽起來像是一個非常容易與骨幹相配的東西。我遵循一個事件驅動的架構和我的骨幹應用程序,我發現它工作得很好。它保持代碼的清潔和分離,並允許我通過綁定我的對象引發的事件來輕鬆添加功能。

還有很多很棒的教程和屏幕截圖。在這裏他們幾個應該希望給你一些你需要的信息(包括我自己的博客文章):

再次,不要只挑一個,永不回頭。如果不是額外的框架,至少在骨幹和sproutcore上做一些簡單的試用應用程序是值得的。

希望有幫助。

+0

謝謝Derick。這非常有用。我將檢查鏈接。 – Naresh

1

您是否嘗試過Relay框架?您將您的個人屏幕編寫爲獨立模塊,並使用中繼的事件系統將它們連接在一起。

http://relay.github.com