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

方法 2:将它们全部写在一个大型 Sencha Architect 项目中。因此,它在一个包含所有内容的 app.html 页面中启动。

--- 优点:

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

  • 一个真正的单页应用多合一 app.html 看起来不错。

--- 缺点:

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

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

  • 加载速度可能是个问题?我只是在这里猜测,因为我们不知道 Sencha Architect MVC 设计是部分加载相关窗口和组件还是一起加载所有内容。

问题是,如果我们采用第一种方法,我们如何在不同项目之间进行沟通?如果我们采用第二种方法,Sencha Architech 2 是否旨在以这种方式构建现实世界的项目?把所有东西都堆在一个大项目里?

4

1 回答 1

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 是另一种很好的方法,它可能会为您提供一些功能,如用户身份验证等......

希望这会有所帮助!

于 2013-03-22T02:53:31.183 回答