2013-03-19 11 views
10

私はSencha ExtJSとArchitect MVCを初めて使っていますが、私はMVCと他のJQueryライブラリを一般に知っています。Sencha Architectを使った実世界のプロジェクト構造

実際のシステムを構築するときに、アーキテクト2のSenchaアプリケーション構造をレイアウトするための適切なアプローチは何ですか?

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

アプローチ1:異なる煎茶アーキテクト・プロジェクトでそれらを書く

例えば、我々は我々のアプリで、次の部門を持っている、彼らは明確な機能を持っています。マスターレイアウトページ+メインエリア+ヘッダー/フッター+サイドバーページでステッチ。 (私たちの場合はMVC.NETを使用して)

---長所:

  • 複数のプログラマはアジャイル 環境で異なるサブプロジェクトで作業することができます。

  • 各プロジェクトの規模は小さく、アップグレードや交換が容易です。

---短所:

  • 我々有する異なる煎茶アーキテクト・プロジェクトのために、例えばメインエリア、サイドバー、ヘッダー、フッター。彼らはどのようにして互いに協力し合うのですか?ここでは、JQueryを使って情報を渡すだけですが、ハッキリと感じます。

アプローチ2:大きなSencha Architectプロジェクトにすべてを書き込んでください。だから、それはすべてのものを含む単一のapp.htmlページでサスペンドします。

---長所:

  • 今、プロジェクト内のすべてのコンポーネントが相互に協力することができます。

  • 真のシングルページアプリオールインワンapp.htmlがきれいです。

---短所:

  • 複数のプログラマが1つの煎茶・アーキテクトプロジェクトで作業している場合に苦労して。

  • 1つの大きな複雑なアプリです。単純なApp、Store、M、V、Cのカテゴリに分かれていますが、大規模なプロジェクトではコンポーネントの名前がクラッシュする可能性があります。

  • 読み込み速度に問題がありますか? Sencha ArchitectのMVCデザインが関連するウィンドウやコンポーネントを一部またはすべて一緒にロードするかどうかわからないため、ここでは推測しています。

私たちが第1のアプローチをとると、異なるプロジェクト間でどのようにコミュニケーションを取るのでしょうか?2番目のアプローチを採用すれば、Sencha Architech 2は実世界のプロジェクトをそのように構築するように設計されていますか? 1つの大きなプロジェクトにすべてを積み重ねる?

答えて

5

まず、私は、この問題について正しい考え方であなたの考えを語ります。あなたの賛否両論にスポットがあります。

私はSencha Architectチームのエンジニアです。

私の提案は、より疎結合であり、おそらくポータル/ダッシュボードアプリケーションによって接続された別々のプロジェクトを持つことです。接着剤アプリはExt JS in Architectを含む何でも書ける。

私が言うのは、すべての卵を1つのバスケットに入れるのが好きではなく、1ページのアプリケーションを作っていれば、彼らが本当にうんざりしていることが分かります。しかし、キャッチされていないjavascriptの例外が発生すると、そのユーザーはハッピーな状態に戻るために完全な更新を行わなければならなくなる可能性があります。もちろん、あなたが完璧なら、これは決して起こらないでしょう:誰が完璧ですか?

私は実際には非常に大きな単一ページアプリケーションであるArchitectをビルドします。チームとしては、できるだけ他のシステムに依存しないように各システムを動作させるために全力を尽くしています。

これらのシステムは、すべてのソフトウェアと同様に、開発者がコンパートメント化するのに役立つ別々の名前空間とディレクトリに分割されています。アーキテクトは今日この考え方を完全にサポートしていません。しかし、大会では近づくことができます。例えばHRController、HRNewEmployeeForm、HREmployeeGrid

しかし、別のアプリケーションとしてHRを使用すると、HR.EmployeeController、HR.NewEmployeeFormがあなたのアプリケーション名がHRであると仮定します。別々のプロジェクトである各アプリは、デベロッパーチームがデプロイ方法の機敏性を高めることもできます。メジャーな勝利。

他のユーザーは、このアプローチをとっていると、そのようなユーザーが一緒に http://www.sencha.com/forum/showthread.php?243179

Asp.Net MVCは別の良いアプローチですし、あなたにユーザー認証などのようないくつかの機能を余裕があります管理のiframeのアプローチを使用して、すべての彼のプロジェクトをグラフ.. 。

うまくいけば、これが役に立ちます。

+0

ご返信が遅れました。経験を共有してくれてありがとう。 2番目のアプローチを取るように見える方法です。コンポーネント間で情報を引き渡すことに重点を置いて説明してください。例えば私はいくつかの別々のプロジェクトを横断してダッシュボードプロジェクトを開催しました。そのうちの1つが変更されたとき、このダッシュボードプロジェクトのアップデートをExtJSの適切な方法で反映させるにはどうすればいいですか?つまり、プロジェクト間のコミュニケーションです。 – Tom

関連する問題