2013-03-19 64 views
10

我是Sencha ExtJS和Architect MVC的新手,但我知道MVC和其他一般的JQuery庫。Sencha Architect的真實世界的項目結構

我想問一下在構建真實世界的系統時,在Architect 2中佈置Sencha應用程序結構的正確方法是什麼?

例如,我們在我們的應用程序下面的部門,他們有不同的功能:

Accounting, Controlling, Quality Assurance, Customer Services, Human Resources, Logistics, Purchasing, Sales, Records Management ...

方法1:寫他們在不同的煎茶建築師項目。與主佈局頁面+主區域+頁眉/頁腳+側欄頁面拼接起來。 (在本例中使用MVC.NET)

---優點:

  • 多個程序員可以在敏捷 環境上不同的子項目。

  • 每個項目都更小,更容易升級或更換。

---缺點:

  • 我們有不同的煎茶架構師項目,例如主要區域,邊欄,頁眉,頁腳。他們如何與對方進行協作?我們現在只使用JQuery來傳遞它們之間的信息,但它感覺有點詭異。

方法2:寫他們都在一個大的煎茶建築師項目。所以,它在一個app.html頁面中包含了所有內容。

---優點:

  • 現在項目中的每個組件可以互相協作。

  • 一個真正的單頁面應用程序多功能app.html看起來不錯。

---缺點:

  • 有硬的時間,如果多個程序員在一個煎茶建築師項目。

  • 這是一個非常複雜的應用程序。雖然它分爲簡單的App,Store,M,V,C類別,但我們可以在大型項目中的組件上發生名稱崩潰。

  • 加載速度可能是一個問題?我只是在這裏猜測,因爲我們不知道Sencha Architect MVC設計是否將相關窗口和元素部分或全部加載在一起。

問題是,如果我們採取第一種方法,我們如何在不同的項目之間進行通信?如果我們採用第二種方法,Sencha Architech 2是否旨在通過這種方式構建真實世界的項目?將一切都堆疊在一個大項目中?

回答

5

首先我會說你以一切正確的方式思考這個問題。你的優點和缺點是現貨。

第二完整披露我是Sencha建築師團隊的工程師。

我的建議是具有被更加鬆散耦合,也許通過門戶/儀表板應用程序連接的單獨的項目。膠水應用程序可以用任何東西寫在建築師的Ext JS中。

我之所以說這很簡單,我不喜歡把我所有的雞蛋放在一個籃子裏,如果你已經建立了一個頁面的應用程序,你會知道,當他們正在他們真正的嗡嗡聲。但是,當發生未捕獲的JavaScript異常時,可能會強制該用戶必須執行全面刷新才能恢復到滿意狀態。當然,如果你是完美的,這永遠不會發生:p誰是完美的?

我構建的架構實際上是一個非常大的單頁面應用程序。作爲一個團隊,我們盡最大努力讓每個系統都能夠儘可能少依賴任何其他系統。我們使用的東西像事件觸發的pub/sub,適配器和插件模式,等等

這些系統都非常分成單獨的名稱空間和目錄,它像所有的軟件可幫助開發人員劃分。建築師今天不完全支持這個想法。然而,隨着慣例,你可以接近。例如HRController,HRNewEmployeeForm,HREmployeeGrid

然而,將HR作爲一個獨立的應用程序,您可以爲您提供HR.EmployeeController,HR.NewEmployeeForm假設您的應用程序名稱爲HR。每個應用程序都是一個獨立的項目,它還可以讓開發團隊更靈活地部署它!主要勝利。

其他用戶都採取這種做法,一個這樣的用戶圖形他的所有項目一起使用託管的iframe辦法 http://www.sencha.com/forum/showthread.php?243179

Asp.Net MVC是另一種好方法,可能買得起你喜歡的用戶身份驗證等一些功能.. 。

希望這有助於!

+0

對不起,延遲迴復。感謝您分享經驗。這似乎是採取第二種方法是要走的路。你能否更專注於在組件之間傳遞信息?例如我有一個儀表盤項目跨越了幾個分離的項目,當其中一個項目發生了變化時,我們如何以適當的ExtJS方式反映這個儀表盤項目的更新?那就是項目之間的溝通。 – Tom 2013-03-25 04:22:08