将浏览器嵌入 .NET 应用程序中:DotNetBrowser 还是 CefSharp?

💡 原文中文,约12600字,阅读约需30分钟。
📝

内容提要

本文比较了DotNetBrowser和CefSharp两个基于Chrome的解决方案,DotNetBrowser直接与Chromium集成,稳定性和内存使用方面优势明显,支持非默认AppDomain和丰富的DOM访问和JavaScript交互API。CefSharp是Chromium Embedded Framework的.NET包装器,易于配置和有广泛的开发者社区,但在安全性、稳定性和内存使用方面存在限制。DotNetBrowser还提供了更好的设计器支持、高DPI支持和简化的分发和部署过程。

🎯

关键要点

  • DotNetBrowser和CefSharp是基于Chrome的浏览器组件解决方案。
  • CefSharp是Chromium Embedded Framework的.NET包装器,使用C++/CLI进行包装。
  • DotNetBrowser直接与Chromium集成,具有更好的稳定性和内存使用效率。
  • CefSharp的初始化和关闭必须在主应用程序线程中执行,限制了其灵活性。
  • DotNetBrowser支持在不同线程中初始化Chromium引擎,允许同时使用多个引擎。
  • DotNetBrowser在内存消耗方面表现更佳,避免了.NET应用程序因Chromium错误而崩溃。
  • CefSharp不能在非默认AppDomain中使用,限制了其在Office应用程序中的应用。
  • DotNetBrowser支持AnyCPU,避免了在64位环境中出现问题。
  • CefSharp无法播放使用专有编解码器编码的媒体,需自行重建CEF。
  • DotNetBrowser支持Chromium沙箱,增强了安全性。
  • CefSharp在设计器支持方面有限,而DotNetBrowser提供更好的设计器支持。
  • DotNetBrowser在高DPI支持方面表现更佳,自动匹配DPI感知。
  • 两者都支持无UI应用程序,但DotNetBrowser的使用更为简单。
  • CefSharp的DOM访问仅通过JavaScript调用,而DotNetBrowser提供丰富的DOM API。
  • DotNetBrowser允许更方便的JavaScript与.NET对象的交互。
  • 两者都支持截屏,但API实现有所不同。
  • CefSharp需要预安装Microsoft Visual C++运行时,而DotNetBrowser则不需要。
  • CefSharp是开源项目,DotNetBrowser是商业产品,提供更高的支持和更新频率。
  • DotNetBrowser在安全性、稳定性和内存使用方面优于CefSharp,适合复杂应用场景。
➡️

继续阅读