2011-01-05 44 views
12

多年来,我一直在作为一名flex开发人员,构建真正复杂的应用程序。随着最近的炒作,我对学习HTML5感兴趣。迷恋Flex开发人员的HTML5框架

我对Flex框架的喜爱是它构建RIA的一致性,一致性和完整性。我喜欢它有一个开箱即用的广泛组件,以及一个用于扩展和构建真正复杂,大量定制的皮肤组件的框架。

HTML5空间中是否有类似的框架?

从我所做的搜索,我看到有很多有用的.js脚本提供漂亮的组件,效果等。但是,我一直没有找到一个坚实的js框架与成熟和架构组件库。

这让我很担心,在构建一个复杂的应用程序时,我可能会写很多管道代码来连接不同的组件。我知道HTML5还处于起步阶段,所以如果有一些有希望的框架,我应该关注一下,我想知道他们。

我的购物的理想框架需求列表将如下所示:

  • 固体组件架构(包括生命周期事件)
  • 扩展
  • 布局管理器
  • 浏览器无关
  • 支持数据绑定
  • 支持复合皮肤
  • 服务层的抽象&协议(即,SOAP/JSON/XML服务都是一个类型的IRemoteService

随着UI框架本身,在JavaScript的空间存在哪些框架

  • MVC体系结构。 (在Flex世界类似Parsley,或Maté
  • 依赖注入
  • 单元测试

回答

4

如果您是Flex开发人员,那么可能有兴趣查看Sencha Frameworks(我的公司)的桌面和移动版本:用于桌面应用程序的Ext JS和用于移动/平板电脑应用程序的Sencha Touch。 Ext JS专注于桌面Web应用程序,它可以一直工作到IE6,所以尽管我们可以做到(我们的新图表使用Canvas,SVG或VML),但没有太多空间可以成为“HTML5”。取决于它发现自己的浏览器)。

Sencha Touch专注于Android,iOS,Blackberry和IE9(?)移动浏览器,所以我们可以使用所有CSS3,localStorage等等,您可以摇一摇。如果你正在寻找一个测试案例,说明你从一个现代浏览器的假设开始就可以做什么,那么就是这样。

Ext JS & Sencha Touch是组件的全部功能。尽管组件和布局模型对于Ext JS 3来说没有太大的改变,但是组件和布局的最佳概述是this article,这是为Ext JS 2编写的。布局对Ext JS 4进行了重写 - 它将会有第一个测试版这个月 - 让他们更像CSS3 flexbox布局系统。

可扩展性是具有适当的组件模型的产物。 Ext JS有许多可以混合和匹配的用户扩展组件。专业售后服务组件的一个很好的例子是Ext Scheduler.还有一个good tutorial on how to create components

数据绑定:UI组件绑定到商店,因此多个UI元素随着新数据更新而更新。你可以阅读store API reference以了解它是如何工作的。

复合蒙皮 - 煎茶触摸具有正被移植到分机JS 4的excellent theming system - 但分机JS 3和2是涉及多一点到主题由于IE6兼容性要求(你必须生成图像)

服务层被抽象为data proxy, which is extended for JSON, Http, XML etc

Sencha Touch和Ext JS 4有一个(简单的)MVC架构。 Ext JS 3及以下版本不支持。

这里的a good write-up on dependency injection in Ext JS(但应推广到触摸)

进行单元测试,我们建议茉莉花 - 就是出举足轻重的实验室。 Ext JS和Sencha Touch的应用非常广泛 - Ext JS主要用于公司应用程序,但是有很多大公司像Salesforce,Marketo和其他大型公司一样使用它来为外部用户提供服务。 Sencha Touch有a nice gallery of apps from our latest dev contest,你应该检查出来。

如果你关心的工具,我们也有一个GUI拖放设计师和CSS3动画工具(后者在开发者预览版)

1

HTML5的样板可以是有趣的你。我不确定关于MVC或Dependency的JS框架,但对于单元测试Dojo的Harness(由于新的用户限制,我不能发布第二个链接,但它应该很容易找到)是非常强大的。我会看看更多的道场的东西,因为他们做了一些非常酷的工作与JS

+0

同意为纯HTML5和JavaScript(哦,对不起,这不是纯粹的是)它也渐入佳境的一个很好的比较因为其他人参与贡献。 – PurplePilot 2011-01-05 18:55:17

+0

样板是矫枉过正! – rxgx 2011-01-06 05:17:59

1

Sproutcore是一个JavaScript应用程序框架。它是完全MVC,具有丰富的键值观察/绑定基础结构,可以减少需要编写的管道代码的数量,如果使用正确的话。它支持您的大部分需求:

“固体组件架构(包括生命周期事件)” - 每个视图都有一堆生命周期事件。

“可扩展” - Sproutcore支持mixins,并且它具有自己的“convert prototypal inheritance”来转换古典继承的东西,所以你觉得你要在JS中创建类。

“布局经理” - 您展示自己的观点,他们在哪里,他们有多大。有SplitViews你可以调整和嵌套,但这可能是SC不符合你的要求的一个领域(虽然你可以很容易地通过观察来实现视图大小调整)

“浏览器不可知” - 它是漂亮的浏览器不可知的,就像任何其他JS框架一样。

“支持数据绑定” - 非常广泛的绑定基础结构。如果将视图字段绑定到模型字段,则会在模型更改时进行更新。

“支持复杂皮肤” - 如果您不喜欢默认主题,则可以像使用任何其他Web应用程序一样通过css皮肤。

“单元测试” - SC附带一个qunit测试工具。当您使用SC命令行工具创建类(无论是M,V还是C)时,该工具会为您创建一个测试存根。

'HTML5' - 一种模糊的概念开始。 SC绝对支持在构建工具中生成html5应用程序清单。有框架可用于写入浏览器本地存储。我认为不久的将来会有更多的html5功能上线。

铬应用程序商店和这个sudoku应用程序的NPR应用程序都是SC应用程序。

+0

你可以扩展你的评论“......减少你需要编写的管道代码的数量,如果你正确使用它,也许关于什么“正确使用”的链接看起来像? – datico 2011-12-16 00:25:29

+0

@datico,我希望记录。了解它的最好方法是查看一些开源应用程序,如OtherInbox(在github上提供) – hvgotcodes 2011-12-16 18:31:01

0

我在同一条船上,你在一起。 我发现的所有js框架都需要很多CSS来使它们与原生flex一样好。 大多数较新的js框架在较旧的浏览器上放弃。

资金和酷炫的演示可能让流星成为js框架的长期赢家。

我喜欢的angularJs

简单这里的一些流行的

http://blog.stevensanderson.com/2012/08/01/rich-javascript-applications-the-seven-frameworks-throne-of-js-2012/

+0

我最近也接受了AngularJS。到目前为止,我非常喜欢这个过程。 – 2013-01-06 04:43:33

相关问题