.net - 有什么理由更喜欢 CefSharp 而不是 CefGlue(或反之亦然)?

标签 .net webkit c++-cli pinvoke chromium

在为 .Net 提供 Chromium 嵌入式框架 (CEF) 的良好实现领域,两个领先的选择似乎是 CefSharp 和 CefGlue。它们的方法不同(CefGlue 使用 P/Invoke 调用 CEF 非托管代码,CefSharp 使用 CEF 库的混合模式 C++/CLI 包装器)。

是否有某种原因表明混合模式程序集比 P/Invoke 调用更好?在所有其他条件相同的情况下,CefGlue(P/Invoke 库)似乎为 CEF 项目提供了一个“更薄”的包装器,这意味着它可能会更快地响应上游库中的更新。

是否有人对这两个库都有经验,可以分享一下差异化因素是什么?

最佳答案

已经是2018年了,项目的命运发生了不小的变化。 CefSharp 运行良好,在 GitHub 存储库中几乎每天都有更新。问题正在得到解决,目前只有 57 个 Unresolved 问题和 1787 个已解决的问题。 CefGlue 似乎效果不太好。邮件列表已不再可用,最近没有更新。 GitHub 上有两个分支解决了上一个发布的 CefGlue 版本之外的问题。

基本面没有改变。 CefSharp 依赖于 C++/CLI 代码,这最初是实现 .NET 到 C++ 互操作的简单方法。但这只能在 Windows 计算机上以及面向 .NET Framework 完整桌面版本的项目中运行。

但不是 Mono,不是 .NET Core(与 Xamarin 和 UWP 应用相关),也不是任何旨在移植到其他操作系统的库或项目。在这种情况下,C++/CLI 不是一个选择,pinvoke 必须是后备方案。所以头孢胶。

关于.net - 有什么理由更喜欢 CefSharp 而不是 CefGlue(或反之亦然)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224798/

相关文章:

c++ - .NET Core 5.0 程序集能否使用面向 .NET Framework 4.8 的程序集?

dll - 释放/删除char *会导致无效的堆指针声明失败

c# - 为什么用 Rx 处理并发这么容易?

.Net WikiText 到 HTML 解析器

c# - 相同代码块执行的持续时间如此不同的原因是什么?

javascript - 嵌入式浏览器中的JS与原生代码的连接方式是什么?

jquery - 使用jquery动态改变webkit

c# - SQLite 数据库连接有哪些附加配置信息?

jquery - 为什么这只能在 Firefox 中使用?

c# - 这可能吗?在 C# 中调用托管 C++ 结构构造函数