【问题标题】:What's the diffrence between CEF and Electron?CEF 和 Electron 有什么区别?
【发布时间】:2022-01-13 18:20:47
【问题描述】:

谁能告诉我们CEF和Electron有什么区别?

关于 Electron,既然 Electron 是基于 Chromium 的,为什么要使用 NodeJS 而不是直接使用 Chromium 中的 V8 引擎

【问题讨论】:

    标签: node.js electron v8 chromium-embedded


    【解决方案1】:

    回答第二个问题 - NodeJs 是对 Chromium 引擎的补充,而不是在 Electron 中替代它。请通过this great article 了解框架内的进程通信。简而言之 - 那里有 2 个主要参与者:

    • (或“主机”)进程 - 在 NodeJ 上运行,可访问操作系统功能,负责 Windows 编排并提供对本机功能的访问
    • Renderer 进程 - 带有额外绑定的实际 Chromium 实例,允许与 Main 进程“对话”

    关于框架之间的差异 - 这是一个广泛的问题,通常它们涵盖相同的需求,并且大部分差异都在技术方面:

    • 开发工具(开发语言、API、SDK、测试框架)
    • 支持的平台
    • 包装和分发选项
    • 性能和内存管理
    • 开发社区采用
    • 待定

    那里没有明确的“赢家”或“输家”。上面的每一项(以及一些最重要的)都需要额外的研究,请记住您的用户群、相关技术堆栈的开发团队经验、应用程序复杂性等

    【讨论】:

      【解决方案2】:

      CEF

      CEF 是最早封装 Chromium 功能并提供可供第三方应用程序使用的 API 的解决方案之一。 Chromium 是一个独立的桌面应用程序。 CEF 将其表示为一个框架。由于 Chromium 是使用 C++ 编写的,因此 CEF 代表了一个面向 C++ 开发人员的框架,但是对于 Java.NETPython 语言有很多端口。

      CEF 的主要目的是让 C++ 开发人员将 Chromium 嵌入到他们的 C++ 跨桌面应用程序中并访问 Chromium 功能,如渲染(包括离屏)、DOM、V8、PDF 查看器、打印、网络请求/响应、cookie 等。

      此类应用的示例包括 Steam、Spotify、Adoby Brakets 和 more

      电子

      考虑到 CEF 和 Electron 源代码非常相似,我可以假设:

      Electron == CEF + Node.js

      Electron 的主要目的是让 JavaScript 开发人员在 Chromium 之上构建跨平台桌面应用程序。 Electron 应用程序中的每个窗口都代表一个呈现特定网页或 HTML 的 Chromium 窗口。 Electron 应用程序的 GUI 是使用 HTML、CSS 和 JavaScript 构建的。逻辑(后端)使用 Node.js 编写。

      使用哪一个?

      如果您是 C++ 开发人员,CEF 适合您。它允许您将 Chromium 嵌入到现有的 C++ 桌面应用程序中并创建 Electron C++ 跨桌面应用程序。

      如果您是一名 JavaScript 开发人员,想要使用 HTML、CSS、JavaScript GUI 创建跨桌面应用程序,并且不想学习更高效的技术和框架,例如 Qt、Gtk、Cocoa、 Java Swing/JavaFX/SWT、Flutter等

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-02
        • 2011-12-12
        • 2010-09-16
        • 2012-03-14
        • 2012-02-06
        • 2011-02-25
        • 2011-11-22
        相关资源
        最近更新 更多