当前位置:编程学习 > html/css >>

企业开发:选Flex?还是HTML5?

作者:Yakov Fain

本文是一段记录谈话,是我跟 Anatole Tartakovsky和 Victor Rasputnis的谈话内容,他们是我的商业伙伴,来自Farata系统,这次谈话发生在我们滑雪后的雪山上。

Yakov.有多种方法可以为它们的企业创建 Web 应用程序,这和给邻居里的披萨店开发 Web 站点并不相同。在过去五年中我们一直主要使用 Adobe Flex 作为前端 Web 应用程序的开发。Flex 应用程序运行在可预测的运行时环境Flash Player中。可编译actionscript代码,并且拥有成套方便的开发工具。

这些天,flex的地位正在”新的战略”中发生转变。即使 Flex 仍然是用于开发 Web 应用程序的最佳框架,你仍然可以感觉 HTML5 的压力。但是,只使用 HTML5 是不足够开发 Web 应用程序的 —  你仍然需要DHTML —  HTML、 JavaScript、 CSS 和XMLHttpRequest对象。

企业开发:选Flex?还是HTML5?

Anatole. 过去我们使用它们进行开发,现在似乎我们再次进入同一水域,难道经过七八年后,它还是同一条河流?DHTML在ie5中就有了,几年后更名为 AJAX。

Y. 回到1999年,微软创建XMLHttpRequest对象,让他们的邮件客户端Outlook Web版本在浏览器窗口中不需要刷新整个页面就能更新。这么做对吗?

A. 部分对吧。 IE5中也有XSL转换工具生成HTML和支持自定义插件开发。IE5的市场占有率在90%左右(指的是1999年),在企业,这是唯一核准的浏览器。

Victor. 与此同时,IE5 支持 HTML 组件称为 HTC 的模型。它允许您创建包含自定义组件的属性和方法的htc文件,所有这些属性在Web浏览器的DOM中是可见的 。

A. 事实上,比起那些提供HTML5支持的框架,这是一个更加进步的模型。因为您可以使用一种标记语言结合 JavaScript 来支持您的组件。这种模式是类似于 Flex所提供的。今天,我们看一些插件环境 ,允许使用各种框架。这种情况并没有任何好转。

积极的一面,已更改的 Web 浏览器和 JavaScript 的性能大大改善。浏览器支持 12/6/8 每个域的连接 (相对于 2 五年前),这给 AJAX应用程序带来性能提升。

Y.但让我们实际点来说说,我作为一个企业的 IT 经理拥有有限的预算和 5 人团队来开发 Web 应用程序。如果我使用可预测的基于良好开发环境的 Flex 或 Java 等(IDE,编译器、 调试器、 分析工具) 我的工作会比较容易。但使用 JavaScript,情况就不同了。首先,使用 JavaScript 开发周期长 (光阅读代码的操作成本就高)。

第二,我不光需要找到熟练的 AJAX 开发者,而且他们需要掌握一堆现代 JavaScript 框架。

第三,编译器不捕获程序员错误,所以我需要分配更多的时间进行测试。维克托,你怎么看这个?

 

V.如果你问我有什么大变化 — — 就是感觉。在这世纪之初,我们工作在 DHTML 环境中。只有少量的开发者参与这种”令人怀疑”的开发。企业架构师也难采用这一 pre-AJAX 模式,并且经常问同样的问题,”这不是 J2EE,对吗?”,我们会回答,”对,它不是”。然后,很显然,就被划归到业余产品。

在过去六年,用 Flex 开发慢慢成为核准的企业技术 – 它可编译,可控制的环境,具有良好的性能、 测试工具和国际化支持。然而,adobe竟然对flex不管不顾了。

Y.他们处理的方式可以列入教科书作为极坏的公关例子,而不是什么值得骄傲的在2011年10月举行的Adobe MAX 大会上宣布将flex捐献给Apache基金会,博得大家起立鼓掌。事后才一个月,他们又发布消息宣布,adobe将不再支持flashplayer (Flex 运行库) 浏览器插件。这听起来像是,他们想要杀死flex。但是,我们都知道flex还活着!

V. 是的它是活着。从技术上讲,它仍然是开发 Web 应用程序最理想的环境,但政治上成为过去的产品。

Y.现在很多企业创建者会说,”5年前我们告诉过你与JavaScript呆在一起的…”,但我想听听你们的观点,关于使用 Flex 与 JavaScript 开发的成本,那一样更贵?

V.这取决于管理这个项目的人的类型。如果一个企业的经理人是一个临时的角色。他工作6-12个月后,可能被转移到另一个位置,或者离开公司。他对最终结果是不感兴趣的,他可以在特定的时间内,留在预定的范围内,但该项目从长远来看可能会失败。

JavaScript 开发者每小时工资,低于那些知道Flex的开发者。而使用Flex开发更容易,结果似乎很好与基于 JavaScript 的应用程序进行比较。用 Flex 开发费用可能最初更多,但产生更好的结果,而这对于企业经理人来说并不重要。

Y. 是的企业经理人的主要目标是往上爬和获得良好的奖金和退休金,而不是创建先进的应用程序。

V. 他们不总是要往上爬。有时他们跳槽到另一家公司,在相同的位置会带来更多的钱或其他职业机会。这就是为什么对于这些企业经理人来说,特定项目的成功可能优先级较低。

Y.所以哪个更昂贵 — — Flex 还是 JavaScript 项目?

V. 如你所知,在 Farata 系统,我们用Flex开发所有的内部项目。但是,如果客户打算为JavaScript 打开他们的钱包,我们也很乐意帮助他们。

A.如果你想用Flex 和 HTML5开发两个完全相同的项目,HTML5 项目将更加昂贵的可能性很大。但我怀疑,有人甚至尝试用HTML5项目来达到Flex级别的质量。首先,任何 HTML5 企业项目会有较低的要求。从基本的参数,如可靠性,能够适应不同屏幕大小和简化密度。实现这些功能,将在包括七个浏览器中测试通过才行,测试和开发人员将花费大部分时间在调试中。

你会节省编译的时间,但会花更多时间运行时测试。最后HTML5项目可交付的结果可能不到Flex开发项目的一半。但是,您将获得一点 Web 适应性强、 容易执行全文搜索和聚合的优势。与其他技术的集成也将变得更容易。使用 HTML/JavaScript。你得决定对于您的应用程序来说这些优势是否都是重要的。如果是,就选择 HTML5。

但通常HTML 部分这是只是整个项目的冰山一角。基本功能通常在 Java 或 .Net开发,后台办公应用程序无论如何都要使用 Flex 作 UI开发 。

Y. 踏着HTML5标志的所有这些人会很高兴地开始新的JavaScript项目,因为它适用于任何地方,它是免费的,许多开源的框架,不属于这些财大气粗的公司,如Adobe。在过去,恨透了微软,在2012年年初,又恨透了Adobe。你可以做任何事情,删减任何角落,去掉功能,但不要使用Flex启动一个新项目。这样,我们就属于主流 – 我们将使用JavaScript开发。

A.是的,但是 JavaScript 将限制任何重大和复杂的企业项目。您可以开发一些相当独立的窗口,但在 HTML 中创建一个好调试的应用程序 (不是站点) 并非易事。

现在让我们返回到浏览器的性能大幅度提高的前提。由于 JavaScript 框架开始支持不同的浏览器,在性能和总体用户体验方面,减小了 Flex 和 JavaScript 应用程序之间的差距。我建议建立前端和后端的办公应用程序之间的明确的边界。你不用担心外部用户的生产力。但如果是企业内部用户(内勤),他们每个人是工薪阶层,他们需要更好的生产力。

我们花了六年多时间在在DHTML上。我们写我们自己的框架和为财富100强企业实施DHTML企业应用。我们知道,在这些环境中的所有漏洞,和那些仍然未打补丁的的。截至今天,你无法比拟Flex和DHTML。但也有一些狭窄的领域,在那里你必须为Flex应用程序补充DHTML。

大多数企业应用程序的前端,后端,和内部办公(支持错误修复等)。前端层可以包含DHTML和Flex部分,因为今天开发前端和后台办公应用程序是在相同的环境。

Y.让我们谈谈在市场上的 JavaScript 框架的情况。五年前有约 200 种框架。在 2012 年的形势是有一点点不同 — — 我们说的数十个 JavaScript 框架。但尽管如此,没有一种框架能涵盖所有 Web 应用程序的需要。维克托,你怎么看?

V. Adobe 动摇了 Flex 世界之后,我很震惊了一会儿。然后我意识到任何好的工具或环境总有一天会被新事物替代。花一些时间研究现在市场的 JavaScript 框架之后我注意到,框架有两个主要类别:

a) 那些允许你以现有的 Web 站点为基础,并由一根魔杖,将新属性添加到所有或某些标记上,他们会开始闪烁,闪耀,或做一些其他有趣的东西。这种框架不提倡基于组件的开发。他们可能不包含导航组件、 网格、 树,正如阿纳托尔所说,它们是非常典型的企业开发任务中的用于 UI 的框架。

b)类似于 Flex 提供高级别的组件,它们可能基于标记,并且在 Flex 中编码,每当你需要知道 Flash Player 内幕时,你甚至能够深入挖掘此类组件。但总体而言,此类组件是为了解决不同的问题 — 显示和 CSS 在这里不太重要。这些组件主要处理某些事件,提供模型-视图-控制器的支持等等。

通过进一步分析,我学会了Ext JS 框架,它跟Flex相似,但没有提供编译,数据绑定,而且更少的控制。

我经常举一个例子,假如一只猫,从我的手提电脑的键盘上跑过,而此时我正好在文本编辑器中打开着一个JavaScript 文件。面即使我没有注意到这一点,我还是可以成功签入此文件到代码库,但过后可能无法正常工作。由此可见未编译环境是危险的地方。

Y.你这个示例,是否也可以用到那些有狗的开发者身上?

V. 可以,但错误的数量将增加。

Y.目前,开发者军团正转向JQuery 框架。但我们纵向讨论。如前所述,JQuery 有利于提高现有 JavaScript 站点。Ext JS 使你开始设计应用程序的用户界面更接近面向对象的原则。Ext JS

补充:web前端 , HTML 5 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,