选择仪表板技术 - extjs,flex,angularjs等

时间:2014-08-11 08:06:47

标签: javascript angularjs flex extjs

为了简要介绍我是一名主要从事后端系统工作的C ++程序员,但现在必须开发一个前端gui(主要是一个包含大量图表和比较等的交互式仪表板)以及后端金融系统。

几年前,我参与了一个类似的项目,并使用Flex开发了一个仪表板。但是在网上搜索,似乎Flex不再受到很好的支持(没有人在上面投钱)并且很快就会过时(我是对的???)。所以我继续搜索,弹出的名字是ExtJS(几年前流行)和AngularJS(现在第一次听到它)。花了一些时间搜索两者似乎都很好。那么仪表板开发人员可以帮助回答以下问题(以及提供我现在可能忽略的重要信息):

  1. 交叉兼容性:需要开发桌面和移动应用以及网页。
  2. 普遍性:我需要学习这些技术。更喜欢它,它们很受欢迎并且被广泛使用
  3. 仪表板功能:能够进入条形图和饼图和其他东西。
  4. 易于编程:编辑器/ IDE的质量,编程速度等。
  5. 我遗失的任何重要事项

3 个答案:

答案 0 :(得分:4)

在我看来,我会选择Flex,因为:

  • 你已经知道了

  • Flex是解决您问题的“紧凑”解决方案。 Web框架意味着您需要学习很多新东西。 AngularJS当然很酷,但是每个web tek都要求你掌握JS,CSS(我讨厌它),HTML,FireBug,PhoneGap,...... Web teks是一团糟(恕我直言!!!)

  • 来自C ++,使用Flex比web tek更舒服。依赖注入很酷,但它是世界的新视野。 JS非常强大但是(也)是一种功能性语言,你需要得到一个“lambda mind”。

两年前,我决定尝试使用ExtJS为医院制作仪表板。几天后,当我发现在我的简单应用程序中找到并解决一个简单的bug时,我放弃了整整一天! [我忘记了一个括号。页面没有打开,什么也没说。

我现在正在努力学习Flex,因为我需要为智能手机制作一个简单的应用程序(我是新手)应该在一个月内准备就绪并且使用Flex我觉得我比成功更容易任何网络技术框架。我知道Flex的未来是模糊不清的,但我认为即使Google的压力很大,也很难被杀死;)

答案 1 :(得分:2)

似乎没有人热衷于回答这个问题 - 我想因为这肯定会成为一个基于意见的答案。我会试一试......

回答你的第一个问题 - 如果没有出现Flex,至少在低温下是这样。 Adobe Flash Builder 4.7(主要的Flex工具IDE)已经有一年多的时间没有更新,我看不到任何更新。 现在拥有代码库的Apache在更新方面做得很好,但进展缓慢。 一个可能的亮区是FlexJS,一个输出Javascript和HTML的编译器。目前它仍然是阿尔法,但它可能是一种选择。

我从未在ExtJS中开发过,但它似乎已经过去了 - 它仍然被使用,但它肯定被Angular和其他框架(如Knockout)所取代。

  1. 交叉兼容性 - AngularJS几乎适用于IE8的所有浏览器,包括大多数现代移动浏览器。人们经常使用JQuery Mobile与Angular和Bootstrap组合来获得他们需要的功能。 Bootstrap是响应式的,因此如果您正确布局UI,它应适用于所有设备。 Flex也以Adobe Air的形式交叉兼容,但它不太容易被人们用到设备上 - 他们需要下载Air框架。
  2. AngularJS目前是最大的头号框架 - 而且它仍在增长。从Google趋势中查看this图表。技术组合包括Javascript,CSS,Grunt,Bower,Node.js以及依赖注入,MVC和响应式布局等概念 - 所有这些对其他项目都很有用。一旦你掌握了Angularjs,你就会为很多其他东西做好准备。 学习Flex似乎有点死路一条 - 你会注意到最近没有任何Flex博客帖子。现在它并不酷,而且它太不确定它是否会存活下来。
  3. 以Angularjs和D3为例非常简单 - 网络搜索会在这里展示很多例子。另外,您可以直接在HTML代码中使用svg元素进行基本绘图。 Here's关于这个主题的好文章。
  4. 由于Angular是一个Javascript框架,因此这里有很多选项 - 您可以使用SublimeText,Atom,PhpStorm或许多其他选项之一。正如我之前所说,如果您选择Flex,您的选择会受到更多限制。
  5. 最后,不要忘记这只是我的观点,但Angularjs开发真的很有趣 - 绑定真是太酷了。指令也是如此。依赖注入只是摇滚。我想你会喜欢它!
  6. 对不起这里的偏见,但我无法帮助!!

    希望这篇文章对你有所帮助。祝好运。

答案 2 :(得分:2)

AngularJS是复杂Web应用程序(桌面和移动设备)的理想选择。

有一个项目使用AngularJS实现Dashboard / Widgets功能。

它目前针对桌面浏览器,但具有很多功能:

  • 添加/删除小部件

  • 小部件动态实例化(来自相应的指令或模板)

  • 小部件拖放(使用jQuery UI可排序)

  • 水平和垂直小部件调整大小

  • 流体布局(小部件可以具有基于百分比的宽度,或者在任何其他单位中设置宽度)

  • 任何指令或模板都可以是小部件

  • 将小部件连接到实时数据(WebSocket,REST等)

  • 动态更改小部件数据源(来自小部件选项)

  • 将窗口小部件状态保存到本地存储

  • 多个仪表板布局