11

Sencha ExtJS と Architect MVC は初めてですが、MVC とその他の JQuery ライブラリ全般については知っています。

実世界のシステムを構築するときに聞きたいのですが、Architect 2 で Sencha アプリ構造をレイアウトする適切なアプローチは何ですか?

たとえば、アプリには次の部門があり、それぞれに異なる機能があります。

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

アプローチ 1:異なる Sencha Architect プロジェクトでそれらを記述します。マスター レイアウト ページ + メイン エリア + ヘッダー/フッター + サイド バー ページをつなぎ合わせます。(この場合は MVC.NET を使用)

--- 長所:

  • アジャイル環境では、複数のプログラマーがさまざまなサブプロジェクトに取り組むことができます。

  • 各プロジェクトは小さく、アップグレードや置き換えが容易です。

--- 短所:

  • メインエリア、サイドバー、ヘッダー、フッターなど、さまざまな Sencha Architect プロジェクトがあります。彼らはどのようにお互いに協力していますか?現在、JQuery を使用して情報をやり取りするだけですが、ちょっとハックな感じがします。

アプローチ 2:それらすべてを 1 つの大きな Sencha Architect プロジェクトに記述します。そのため、すべてが含まれる単一の app.html ページに表示されます。

--- 長所:

  • これで、プロジェクト内のすべてのコンポーネントが相互に連携できるようになりました。

  • 真の Single-Page-App All-in-One app.html は見栄えがします。

--- 短所:

  • 複数のプログラマーが 1 つの Sencha Architect プロジェクトで作業していると苦労します。

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

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

質問は、最初のアプローチを取る場合、異なるプロジェクト間でどのように通信を行うのですか? 2 番目のアプローチを取る場合、Sencha Architech 2 は実際のプロジェクトをそのように構築するように設計されていますか? 1 つの大きなプロジェクトにすべてを積み上げますか?

4

1 に答える 1

6

最初に、この問題についてのあなたの考えはすべて正しい方法であると言います。あなたの長所と短所は的を射ています。

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

私の提案は、より疎結合で、おそらくポータル/ダッシュボード アプリケーションによって接続された個別のプロジェクトを持つことです。グルー アプリは、Architect の Ext JS を含む任意の言語で記述できます。

私がこれを言う理由は、単純に、すべての卵を 1 つのバスケットに入れるのが好きではないためです。単一ページのアプリを作成したことがあれば、それらが動作しているときに本当にハミングすることがわかるでしょう。しかし、キャッチされていない JavaScript 例外が発生すると、ユーザーは満足のいく状態に戻るために完全な更新を行う必要が生じる可能性があります。もちろん、あなたが完璧であれば、これは決して起こりません:p 誰が完璧ですか?

私は Architect を構築していますが、これは実際には非常に大きな単一ページのアプリケーションです。私たちはチームとして、各システムが他のシステムにできるだけ依存せずに動作できるように最善を尽くしています。イベント、パブ/サブ、アダプ​​ター、プラグインのパターンなどを使用しています...

これらのシステムは、すべてのソフトウェアと同様に、開発者が区分化するのに役立つ個別の名前空間とディレクトリに大きく分割されています。Architect は現在、この考えを完全にはサポートしていません。ただし、慣例を使用すると、近づくことができます。例: HRController、HRNewEmployeeForm、HREmployeeGrid

ただし、HR を個別のアプリとして使用すると、アプリ名が HR であると仮定して、HR.EmployeeController、HR.NewEmployeeForm を使用できます。各アプリが個別のプロジェクトであるため、開発チームは展開方法をより機敏にすることもできます!! 大勝利。

他のユーザーはこのアプローチを採用しており、そのようなユーザーの 1 人はマネージド iframe アプローチを使用してすべてのプロジェクトをまとめてグラフ化してい ます http://www.sencha.com/forum/showthread.php?243179

Asp.Net MVC は別の優れたアプローチであり、ユーザー認証などのいくつかの機能を提供する可能性があります...

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

于 2013-03-22T02:53:31.183 に答える