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

Selecting dashboard technology - extjs, flex, angularjs etc

本文关键字:flex angularjs extjs 仪表板 技术 选择      更新时间:2023-09-26

简要介绍一下背景,我是一名c++程序员,主要从事后端系统开发,但现在必须开发前端gui(主要是一个带有大量图表和比较等的交互式仪表板)以及后端财务系统。

几年前,我做过一个类似的项目,使用Flex开发了一个仪表板。但是在网上搜索,Flex似乎不再得到很好的支持(没有人向它投入资金),并且很快就会过时(我说的对吗??)所以我继续搜索,出现的名字是ExtJS(几年前很流行)和AngularJS(现在第一次听说)。我花了一些时间在这两方面都进行了搜索,两者似乎都很好。因此,仪表板开发人员能否帮助回答以下问题(以及提供我现在可能忽略的重要输入):

  1. 交叉兼容性:需要开发桌面和移动应用程序以及网页。
  2. 患病率:我需要学习技术。
  3. 仪表盘功能:能够进入条形图和饼状图等。
  4. 易于编程:编辑器/IDE可用的质量,编程速度等
  5. 我错过了什么重要的东西

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

  • 你已经知道了

  • Flex是一个"紧凑"的解决方案。Web框架意味着您需要学习很多新东西。AngularJS当然很酷,但每个web技术都需要你掌握JS、CSS(我讨厌它)、HTML、FireBug、PhoneGap、....Web技术人员是一团乱(IMHO !!)

  • 来自c++,使用Flex比web技术更舒适。依赖注入很酷,但它是一个全新的世界。JS确实很强大,但它也是一种函数式语言,你需要有一个"lambda思维"。

两年前,我决定尝试ExtJS为一家医院制作一个仪表板。几天后我放弃了,因为在我的简单应用中找到并解决一个简单的漏洞花了我一整天的时间!我忘了一个括号。页没有打开,什么也没说。

我现在正在尝试学习Flex,因为我需要为智能手机制作一个简单的应用程序(我是一个新手),应该在一个月内准备好,使用Flex我认为它比使用任何web技术框架更容易成功。我知道Flex的未来是模糊的,但我认为它太好了,即使谷歌的压力很大;)

似乎没有人愿意回答这个问题——我猜是因为这肯定是一个基于意见的答案。我要试试……

回答你的第一个问题- Flex如果不是在退出,至少是在低炖。Adobe Flash Builder 4.7(主要的Flex工具IDE)已经有一年多没有更新了,我看不到任何更新。现在拥有代码库的Apache在更新方面做得很好,但进展缓慢。一个可能的亮点是FlexJS,一个输出Javascript和HTML的编译器。目前还处于alpha阶段,但这可能是一个选项。

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

    跨兼容性——AngularJS几乎适用于IE8以上的所有浏览器,包括大多数现代移动浏览器。人们经常将JQuery Mobile与Angular和Bootstrap结合使用,以获得他们需要的功能。Bootstrap是响应式的,所以如果你的UI布局正确,它应该适用于所有设备。Flex也以Adobe Air的形式进行交叉兼容,但要将其安装到人们的设备上就不那么容易了——他们需要下载Air框架。AngularJS是目前排名第一的框架,而且还在不断增长。看看这张来自谷歌趋势的图表。技术组合包括Javascript、CSS、Grunt、Bower、Node.js以及依赖注入、MVC和响应式布局等概念——所有这些对其他项目都很有用。一旦你掌握了Angularjs,你就可以学习很多其他的东西了。目前学习Flex似乎是一个死胡同——你会注意到最近没有任何Flex的博客文章。它现在并不酷,而且它是否能存活下来也太不确定了。例如,使用Angularjs和D3是相当简单的——一个网页搜索会显示很多这样的例子。此外,您可以在HTML代码中直接使用svg元素进行基本绘图。这里有一篇关于这个主题的好文章。由于Angular是一个Javascript框架,所以这里有很多选择——你可以使用SublimeText、Atom、PhpStorm或许多其他选择之一。正如我前面所说的,如果您选择Flex,您的选择要有限得多。
  1. 最后,不要忘记这只是我的观点,但是Angularjs开发起来真的很有趣——绑定真的很酷。指令也是如此。依赖注入太棒了。我想你会喜欢的!

很抱歉这里的偏见,但我忍不住!!

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

对于复杂的web应用程序(桌面和移动)来说,AngularJS是个不错的选择。

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

  • GitHub源代码https://github.com/DataTorrent/malhar-angular-dashboard

  • 实时演示http://datatorrent.github.io/malhar-angular-dashboard/#/

  • 更高级的演示(图表等)http://datatorrent.github.io/malhar-dashboard-webapp/#/

目前它的目标是桌面浏览器,但有很多功能:

  • 添加/删除小部件

  • 组件动态实例化(从相应的指令或模板)

  • Widgets拖放(使用jQuery UI可排序)

  • 横向和纵向小部件调整大小

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

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

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

  • 动态更改部件数据源(从部件选项)

  • 保存部件状态到本地

  • 多个Dashboard layout