2013-03-19 69 views
10

我是Sencha ExtJS和Architect MVC的新手,但我知道MVC和其他一般的JQuery库。Sencha Architect的真实世界的项目结构

我想问一下在构建真实世界的系统时,在Architect 2中布置Sencha应用程序结构的正确方法是什么?

例如,我们在我们的应用程序下面的部门,他们有不同的功能:

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

方法1:写他们在不同的煎茶建筑师项目。与主布局页面+主区域+页眉/页脚+侧栏页面拼接起来。 (在本例中使用MVC.NET)

---优点:

  • 多个程序员可以在敏捷 环境上不同的子项目。

  • 每个项目都更小,更容易升级或更换。

---缺点:

  • 我们有不同的煎茶架构师项目,例如主要区域,边栏,页眉,页脚。他们如何与对方进行协作?我们现在只使用JQuery来传递它们之间的信息,但它感觉有点诡异。

方法2:写他们都在一个大的煎茶建筑师项目。所以,它在一个app.html页面中包含了所有内容。

---优点:

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

  • 一个真正的单页面应用程序多功能app.html看起来不错。

---缺点:

  • 有硬的时间,如果多个程序员在一个煎茶建筑师项目。

  • 这是一个非常复杂的应用程序。虽然它分为简单的App,Store,M,V,C类别,但我们可以在大型项目中的组件上发生名称崩溃。

  • 加载速度可能是一个问题?我只是在这里猜测,因为我们不知道Sencha Architect MVC设计是否将相关窗口和元素部分或全部加载在一起。

问题是,如果我们采取第一种方法,我们如何在不同的项目之间进行通信?如果我们采用第二种方法,Sencha Architech 2是否旨在通过这种方式构建真实世界的项目?将一切都堆叠在一个大项目中?

回答

5

首先我会说你以一切正确的方式思考这个问题。你的优点和缺点是现货。

第二完整披露我是Sencha建筑师团队的工程师。

我的建议是具有被更加松散耦合,也许通过门户/仪表板应用程序连接的单独的项目。胶水应用程序可以用任何东西写在建筑师的Ext JS中。

我之所以说这很简单,我不喜欢把我所有的鸡蛋放在一个篮子里,如果你已经建立了一个页面的应用程序,你会知道,当他们正在他们真正的嗡嗡声。但是,当发生未捕获的JavaScript异常时,可能会强制该用户必须执行全面刷新才能恢复到满意状态。当然,如果你是完美的,这永远不会发生:p谁是完美的?

我构建的架构实际上是一个非常大的单页面应用程序。作为一个团队,我们尽最大努力让每个系统都能够尽可能少依赖任何其他系统。我们使用的东西像事件触发的pub/sub,适配器和插件模式,等等

这些系统都非常分成单独的名称空间和目录,它像所有的软件可帮助开发人员划分。建筑师今天不完全支持这个想法。然而,随着惯例,你可以接近。例如HRController,HRNewEmployeeForm,HREmployeeGrid

然而,将HR作为一个独立的应用程序,您可以为您提供HR.EmployeeController,HR.NewEmployeeForm假设您的应用程序名称为HR。每个应用程序都是一个独立的项目,它还可以让开发团队更灵活地部署它!主要胜利。

其他用户都采取这种做法,一个这样的用户图形他的所有项目一起使用托管的iframe办法 http://www.sencha.com/forum/showthread.php?243179

Asp.Net MVC是另一种好方法,可能买得起你喜欢的用户身份验证等一些功能.. 。

希望这有助于!

+0

对不起,延迟回复。感谢您分享经验。这似乎是采取第二种方法是要走的路。你能否更专注于在组件之间传递信息?例如我有一个仪表盘项目跨越了几个分离的项目,当其中一个项目发生了变化时,我们如何以适当的ExtJS方式反映这个仪表盘项目的更新?那就是项目之间的沟通。 – Tom 2013-03-25 04:22:08