Sencha Architect的真实世界项目结构

Tom*_*Tom 11 extjs sencha-architect

我是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在它们之间传递信息,但它感觉有点hacky.

方法2:将它们全部写在一个大的Sencha Architect项目中.因此,它会在单个app.html页面中显示,其中包含所有内容.

---优点:

  • 现在,项目中的每个组件都可以相互协作.

  • 真正的单页面应用程序All-in-One app.html看起来不错.

---缺点:

  • 如果多个程序员在一个Sencha Architect项目上工作,那就太难了.

  • 这是一个很复杂的应用程序.虽然它分为简单的App,Store,M,V,C类别,但我们可以在较大的项目中对组件进行名称崩溃.

  • 加载速度可能是个问题?我只是在这里猜测,因为我们不知道Sencha Architect MVC设计是否将相关的窗口和组件逐个加载到一起.

问题是,如果我们采用第一种方法,我们如何在不同项目之间进行通信?如果采用第二种方法,Sencha Architech 2是否设计用于构建真实世界的项目?在一个大项目中堆叠所有东西?

Phi*_*ong 6

首先,我会以正确的方式说出你对这个问题的看法.你的利弊是正确的.

其次是完全披露我是Sencha Architect团队的工程师.

我的建议是让单独的项目更松散地耦合,并且可能通过门户/仪表板应用程序连接.胶水应用程序可以用任何东西编写,包括Architect中的Ext JS.

我说这个的原因很简单,我不喜欢把所有鸡蛋都放在一个篮子里,如果你已经建立了单页应用程序,你会知道当他们工作时他们真的很哼.但是当发生未被捕获的javascript异常时,它可以强制该用户必须进行完全刷新以恢复到快乐状态.当然,如果你是完美的,这将永远不会发生:p谁是完美的?

我构建的Architect实际上是一个非常大的单页面应用程序.作为一个团队,我们都尽力保持每个系统能够尽可能少地依赖于任何其他系统.我们使用事件,发布/订阅,适配器和插件模式等等...

这些系统被分解为单独的命名空间和目录,就像所有软件一样,可以帮助开发人员划分区域.建筑师今天并不完全支持这个想法.但是按照惯例你可以近距离接触.例如HRController,HRNewEmployeeForm,HREmployeeGrid

然而,将HR作为单独的应用程序,假设您的应用程序名称为HR,则为您提供HR.EmployeeController,HR.NewEmployeeForm.每个应用程序都是一个单独的项目,也允许开发团队在部署方式上更加敏捷!主要胜利.

其他用户采用了这种方法,其中一位用户使用托管iframe方法将所有项目组合在一起 http://www.sencha.com/forum/showthread.php?243179

Asp.Net MVC是另一种很好的方法,可能会为您提供一些功能,如用户身份验证等...

希望这有帮助!