Javascript 性能方面:WPF应用程序是否比电子应用程序更好?

Javascript 性能方面:WPF应用程序是否比电子应用程序更好?,javascript,c#,node.js,wpf,electron,Javascript,C#,Node.js,Wpf,Electron,最近,我一直在阅读有关Electron的文章,我对它的潜力感到好奇,因为它与构建Windows7桌面应用程序(即WPF)的市场上已经建立的产品相比具有很大的潜力 到目前为止,我注意到那些倾向于电子的人讨论了这样一个事实,即它提供: 快速开发周期:熟悉HTML5,CSS3,JS,以及一些Node.JS,都可以直接构建桌面应用程序 跨平台兼容性:基于Chromium和Node.js,两者都是跨平台的,应用程序可以在支持这两者的任何地方运行 美观且交互式的GUI设计:HTML5、CSS3和JS的结合

最近,我一直在阅读有关Electron的文章,我对它的潜力感到好奇,因为它与构建
Windows7
桌面应用程序(即WPF)的市场上已经建立的产品相比具有很大的潜力

到目前为止,我注意到那些倾向于电子的人讨论了这样一个事实,即它提供:

  • 快速开发周期:熟悉
    HTML5
    CSS3
    JS
    ,以及一些
    Node.JS
    ,都可以直接构建桌面应用程序
  • 跨平台兼容性:基于
    Chromium
    Node.js
    ,两者都是跨平台的,应用程序可以在支持这两者的任何地方运行
  • 美观且交互式的
    GUI
    设计:HTML5、
    CSS3
    JS
    的结合证明了多年来能够实现的功能
  • 简单且经济高效的web回收:web应用程序可以相对容易地由最初创建它的开发人员转换为桌面应用程序(即节省成本)
当谈到WPF时,其支持者讨论了以下有利论点:

  • 对本机API的访问:WPF非常适合
    .NET
    框架,允许开发人员访问所有本机
    Windows
    功能
  • 强大的
    XAML
    标记语言:有人认为
    XAML
    允许高效地呈现复杂的
    UI
    元素,支持双向数据绑定,并且知道它在其他上下文中可能有用(例如,通过适当的调整,例如Android开发)
  • 高性能和内存效率:主要是由于语言的编译性质,以及其他
    JIT
    特性
如果我们将这些观点分开考虑,我们可以同意这两种技术都是值得尊敬的。然而,当您向开发人员寻求帮助,为您的项目选择正确的框架时,事情变得有点偏颇。我认为偏见可能是因为问题太不具体,或者是因为一些人对一个框架比另一个框架更熟悉,因此,舒适区开始起作用

因此,请记住,两者都只是达到目的的手段,而不是生活哲学,当进行比较时,通常归结为以下观点。请注意,这些不是我的想法,而是我从网上的各种讨论小组收集的

  • DOM
    操作是一项昂贵的操作,而
    XAML
    渲染速度非常快
  • Electron通过其
    API
    ,让您可以访问一些本机
    OS
    功能,而WPF让您可以访问所有,因为它位于
    .NET
  • WPF相比,电子慢,因为解释了
    JS
    的含义,而编译的是,例如
    C
  • WPF
    MVVM
    模式下运行良好,而在Electron中很难实现类似的功能
  • Electron起步很快,而WPF学习曲线陡峭(但他们说它看起来更专业)
  • Electron是跨平台的,而WPF
    .NET
    相连。不确定是否考虑了
    Xamarin
    /
    .NET内核
  • Electron应用程序规模很大,因为它必须附带
    cromium
    Node.js才能实现其目标
  • WPFElectron相比没有那么积极地改进(即,Electron是一个开源项目)
  • Electron为您处理应用程序更新,而同样的事情需要在WPF中进行更多的工作
一方面,软件工程师(尤其是那些在企业界工作的人)似乎倾向于WPF。另一方面,web开发人员对Electron带来的东西感到兴奋。在我看来,这是一种偏见,事实上,你更多地使用一种技术,而不是另一种技术,这并不能说明该技术本身有多合适

因此,为了避免这种偏见,或许还有其他烦人的答案,我想为您提供以下案例研究

假设您有兴趣使用Electron构建
windows7
桌面应用程序。该应用程序的目标是允许用户在大型
XLSX
文件(即
1e5
行)上配置和运行计算量极大的统计分析。简而言之,用户填写表单,生成一个特殊的语法文件(即,
json
xml
txt
),应用程序读取该文件并使用其中指定的参数执行分析。最后,向用户提供一个带有图表的
pdf
文件。现在,让我们假设关于这个项目:

  • DOM
    不是直接操作的。相反,之所以使用
    Vue.js
    React
    ,是因为它们实现了更快的虚拟
    DOM
  • 应用程序不需要访问所有本机
    OS
    功能。应用程序只需要将文件读/写到磁盘,也许还需要发送一些通知
  • 由于
    JS
    太慢,无法运行统计分析,因此会从
    JS
    编写并调用基于
    C++
    节点.JS
    加载项。在幕后,