寻求基于Web前端Ext JS的一些架构决策的意见

时间:2010-11-20 21:53:51

标签: perl extjs

我已经开始研究一个基于Web的发票计划的小编程项目。我希望它可以从智能手机中使用。   我已决定后端是Perl - Dancer- Moose - Kiokudb,我现在很高兴(是的,我知道已经有一些了)。

我现在正试图在项目的表示层上做出选择。最初我认为传统的html模板,每个功能类型的页面安排。昨晚我开始看Ext Js / Sencha。这看起来非常整洁,我可以看到它如何能够像发票应用程序一样做出相当不错的前端。我想要一些想法是什么是处理表格生成的理想方式。   在我看来,我有两个选项与Ext Js(或Dojo或任何这些框架) 1.我可以将每个表单直接编码到Javascript文件中,这似乎是该演示的大部分内容。但是当我用HTML编写它时,在Javascript中编写html表单似乎很尴尬?我错过了什么吗?

  1. 我可以从数据中动态生成表单,这意味着我需要存储链接到我可以使用特征在Moose中执行的数据的元数据。但那么你如何处理像显示顺序这样的东西而不会变得混乱?您对使用数据对象存储显示元数据有何看法?

  2. 我仍然可以使用html模板生成表单并使用Ext Js来增强这些,但这似乎并不受Ext Js的鼓励,尽管它是可能的。

  3. 我要说的是,在Javascript中完成所有显示工作确实提供了将表示层与其余代码完全分开的机会。

    关于你认为最好的观点?

3 个答案:

答案 0 :(得分:2)

我已经编写了几个基于Ext Js的表示层的大型web应用程序(所有这些都使用ASP.Net服务器端)。我的第一个应用程序是作为传统HTML编写的,并在客户端上使用Ext Js进行了增强。这里的理论是,一些最终用户可以利用该选项在没有JavaScript的情况下执行。实际上,这从未发生过。当然,这不是一个Amazon.com风格的网站。

接下来的几个应用程序几乎放弃了HTML。我们对拥抱“非标准”表示层有一些担忧。但是,设计Ext布局非常简单。我们发现非程序员可以查看Ext布局(它只是一个JavaScript对象)并了解大多数内容。动态加载新的JavaScript文件也很容易;所以我们可以自然地发展应用程序。

目前,我们有一些传统的ASP.Net页面(用于登录,致命错误等),以及C#中的控制器层。从JS到C#的管道只需要一个ASP.Net页面。表示层的其余部分在Ext Js中完成。我们实际上利用这个设计来创建我们的一个应用程序的离线应用程序。为此,我们只需要替换少数几个ASP.Net页面(我们可以重用100%的Ext Js代码和100%的C#代码)。

我们谈到了使用元数据生成表单,但决定反对它。我们决定维护元数据和各种生成器可能会成为一个比手工编写代码更大的工作。

答案 1 :(得分:0)

我没有广泛使用Ext,但我已经使用POE::XUL构建了动态应用程序的框架。所有表单都是从一系列YAML配置文件生成的,这些配置文件还包含有关给定元素如何与后端进行交互的元数据。虽然我没有为表单设计师提供XUL的全部功能,但这可以被视为一件好事。

当时,我认为需要Firefox或xulrunner作为内联网应用程序是可以接受的。事实证明,PHB真的很喜欢他们的MSIE。但是,当我开始编写框架时,Ext并不是一个真正的选择。

很快我希望重构框架,以便它可以与所有浏览器一起使用,最有可能在浏览器中使用Ext Js。我的目标是内部网应用程序,说“你必须启用JS”是可以接受的。

通过在YAML中定义我的表单,我将能够将为XUL专用框架编写的所有应用程序移动到Ext框架,并且它们应该只是工作。

然而,编写元数据驱动的框架是一个更高级的问题。您没有指定您的技能等级。如果你只是初学者,我建议在浏览器中使用pure-Ext来跟踪后端。

答案 2 :(得分:0)

Dunno如果添加另一个选项已经完成了,但dojo允许您在HTML中构建表单,然后在浏览器中将它们转换为dijit(dojo小部件)。