Sencha Architect的真实世界项目结构

时间:2013-03-19 07:39:14

标签: 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是否设计用于构建真实世界的项目?在一个大项目中堆叠所有东西?

1 个答案:

答案 0 :(得分:6)

首先,我会以正确的方式说出你对这个问题的看法。你的优缺点很明显。

第二个是完全披露我是Sencha Architect团队的工程师。

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

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

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

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

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

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

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

希望这有帮助!