Javascript 一个迷恋Flex开发人员的HTML5框架

Javascript 一个迷恋Flex开发人员的HTML5框架,javascript,html,css,Javascript,Html,Css,我作为flex开发者工作了很多年,构建了非常复杂的应用程序。随着最近的炒作,我对学习HTML5很感兴趣 我喜欢Flex框架的地方在于它是一个一致、连贯、完整的堆栈,用于构建RIA。我喜欢它有一套开箱即用的广泛组件,以及一个扩展和构建真正复杂、高度定制和蒙皮组件的框架 HTML5领域是否存在类似的框架 从我所做的搜索中,我发现有大量有用的.js脚本,它们提供了漂亮的组件、效果等。然而,我还没有找到一个具有成熟和架构化组件库的可靠js框架 这让我担心,在构建一个复杂的应用程序时,我最终可能会编写大量

我作为flex开发者工作了很多年,构建了非常复杂的应用程序。随着最近的炒作,我对学习HTML5很感兴趣

我喜欢Flex框架的地方在于它是一个一致、连贯、完整的堆栈,用于构建RIA。我喜欢它有一套开箱即用的广泛组件,以及一个扩展和构建真正复杂、高度定制和蒙皮组件的框架

HTML5领域是否存在类似的框架

从我所做的搜索中,我发现有大量有用的
.js
脚本,它们提供了漂亮的组件、效果等。然而,我还没有找到一个具有成熟和架构化组件库的可靠js框架

这让我担心,在构建一个复杂的应用程序时,我最终可能会编写大量管道代码来连接不同的组件

我知道HTML5还处于起步阶段,所以如果有一些有前途的框架需要我关注的话,我想了解一下

我的理想框架需求购物清单如下:

  • 实体组件体系结构(包括生命周期事件)
  • 可扩展
  • 布局管理器
  • 浏览器不可知论
  • 支持数据绑定
  • 支持复杂蒙皮
  • 服务层和协议的抽象(即SOAP/JSON/XML服务都是
    IRemoteService
除了UI框架本身之外,Javascript空间中还存在哪些框架

  • MVC架构。(类似于Flex世界中的
    欧芹
    ,或
    Maté
  • 依赖注入
  • 单元测试

    • 您可能对HTML5样板文件感兴趣


      我不确定JS框架是否适用于MVC或依赖项,但对于单元测试,Dojo的工具(由于新的用户限制,我无法发布第二个链接,但应该很容易找到)非常强大。我会看更多Dojo的东西,因为他们用JS做了一些非常酷的工作,我想你可能会喜欢符合你所寻找的一些东西的

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

      “实体组件体系结构(包括生命周期事件)”--每个视图都有一组生命周期事件

      “可扩展”--Sproutcore支持mixin,并且有自己的“转换原型继承”到经典继承的东西,所以您感觉自己在用JS创建类

      “布局管理器”-您可以布局自己的视图,它们在哪里,它们有多大。有一些拆分视图可以调整大小和嵌套,但这可能是SC无法满足您要求的一个方面(尽管您可以通过观察轻松实现视图大小调整)

      “浏览器不可知”——它与任何其他JS框架一样,非常不可知于浏览器

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

      “支持复杂蒙皮”——如果您不喜欢默认主题,可以像其他web应用一样通过css进行蒙皮

      “单元测试”-SC附带一个qunit测试线束。当您使用SC命令行工具创建一个类(可以是M、V或C)时,该工具将为您创建一个测试存根

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


      chrome app store上的NPR应用程序和此应用程序都是SC应用程序。

      如果您是Flex开发人员,则可能有兴趣查看Sencha框架(我的公司)的桌面和移动版本:桌面应用程序的Ext JS和移动/平板应用程序的Sencha Touch

      Ext JS专注于桌面web应用程序,这些应用程序可以一直运行到IE6,因此没有太多的空间可以使用“HTML5”,尽管我们可以做到这一点(我们的新图表工具使用画布、SVG或VML,具体取决于它所使用的浏览器)

      Sencha Touch专注于Android、iOS、Blackberry和IE9(?)移动浏览器,因此我们可以使用所有CSS3、localStorage等您可以使用的功能。如果您正在寻找一个测试用例,当您开始设想一个现代浏览器时,您可以做什么,那么这就是它

      Ext JS和Sencha Touch是一路走来的组件。组件和布局的最佳概述是为ExtJS2编写的,尽管ExtJS3的组件和布局模型没有太大变化。Ext JS 4将于本月推出第一个测试版,版面正在重新编写,以使其更像CSS3 flexbox版面系统

      可扩展性是拥有适当组件模型的结果。ExtJS有一系列可以混合和匹配的用户扩展组件。专业售后服务组件的一个很好的例子是还有一个

      数据绑定:UI组件绑定到存储区,因此多个UI元素会在数据更改时使用新数据进行更新。你可以阅读这本书来了解它是如何工作的

      复杂的蒙皮-Sencha Touch有一个正在移植到Ext JS 4的插件-但由于IE6兼容性要求,Ext JS 3和Ext JS 2对主题的参与度稍高一些(您必须生成图像)

      服务层抽象为

      SenchaTouch和ExtJS4有一个(简单的)MVC架构。Ext JS 3及以下版本不适用

      以下是(但应该概括为触摸)

      对于单元测试,我们推荐Jasmine,它来自于Pivotal实验室

      Ext JS和Sencha Touch在美国非常流行