User interface 哪个JavaScript框架可以开发客户端复杂UI?Dojo、SproutCore、卡布奇诺

User interface 哪个JavaScript框架可以开发客户端复杂UI?Dojo、SproutCore、卡布奇诺,user-interface,dojo,sproutcore,cappuccino,User Interface,Dojo,Sproutcore,Cappuccino,我已经使用Dojo和Dijit开发基于浏览器的IDE一年多了。Dojo是一个很棒的框架。但是使用Dojo创建一个类似IDE的界面是很麻烦的,而且会浪费很多时间,除非你是一个CSS超人。我对HTML5、JavaScript和CSS有很好的理解。构建我所需要的UI需要经过多次尝试和错误发现的CSS攻击。从UI设计到实现没有系统化的方法,我害怕更改UI布局,因为任何简单的更改都可能破坏UI,主要是通过在我不需要的Dijit窗格中添加不相关的滚动条。(复杂UI有4-5级嵌套窗格,主要包括边框容器和内容窗

我已经使用Dojo和Dijit开发基于浏览器的IDE一年多了。Dojo是一个很棒的框架。但是使用Dojo创建一个类似IDE的界面是很麻烦的,而且会浪费很多时间,除非你是一个CSS超人。我对HTML5、JavaScript和CSS有很好的理解。构建我所需要的UI需要经过多次尝试和错误发现的CSS攻击。从UI设计到实现没有系统化的方法,我害怕更改UI布局,因为任何简单的更改都可能破坏UI,主要是通过在我不需要的Dijit窗格中添加不相关的滚动条。(复杂UI有4-5级嵌套窗格,主要包括边框容器和内容窗格)

最近我遇到了SproutCore和Cappuccino,它们有很好的演示,它们的外观和感觉更基于桌面。已经有几次讨论将这两者进行比较。但他们都没有提到从UI设计到实现的系统性和快速性?理想情况下,我应该能够在不超过几天的时间内实现我想要的UI(假设我了解框架),并且在将来更改它们应该很容易

Dojo的另一个困难是,我必须直接使用DOM来附加和删除dijit小部件。虽然我确实希望保持这种灵活性,但我希望能够使用更高级别的抽象来定义应用程序UI。我读过SproutCore和Cappuccino中的MVC,但我想知道在实践中提供的抽象层是否会加快UI开发?或者所提供的层是一个只增加代码可读性的奇特架构?如果我使用这些抽象构建UI,我会失去对DOM的直接访问吗

干杯,
Navid是否考虑过jQuery?

卡布奇诺绝对不仅仅是提高可读性。如果你不想在卡布奇诺中有滚动条,不要给它。这差不多就是故事的结尾,也是使用这种框架的最大优势之一。根据我的经验,HTML和CSS只是一个无休止的故障排除过程。有了卡布奇诺,一切都会按照你说的去做,并保持不变。在浏览器中也是如此(大多数情况下)


此外,如果愿意,您可以使用interface Builder和Cappuccino的
nib2cib
实用程序构建用户界面。这使得最初的布局和随后的按钮和控件的移动都变得很简单。

卡布奇诺的层次要高得多。您使用Objective-J编写,而不是HTML/CSS/JavaScript。我个人不推荐它,因为Objective-J是一种利基语言,你会被一些没有被大家广泛理解的东西所困扰。你会发现寻找问题的答案更加困难,其他人在维护你的代码时也会更加困难

然而,由于它是高层次的,它确实可以让您避免在“标准”(即HTML/CSS/JavaScript)中进行单调乏味的编程。因此,您应该能够更快、更容易地开发UI,但您必须学习Objective-J的细节。总之,我想在这里收获不多

另一方面,SproutCore是基于HTML/CSS/JavaScript的,因此您不必重新学习基础知识。它遵循分离UI和数据关注点的MVC模型,因此编程UI应该更容易

我个人的建议是坚持使用Dojo--1.6,它具有更改跟踪、状态跟踪和bining支持。1.7就要到了。MVC模块正在快速改进。下一个版本2.0将非常棒。它正在积极发展,所以你不会被落在后面

Dojo还可以与闭包编译器的高级模式一起使用,以生成高度紧凑、高度优化、完全模糊的构建以供部署。其他基于JavaScript的框架适应性较差