< 返回博客

在 DotNetBrowser 和 WebView2 之间进行选择

Vladyslav Lubenskyi

2022 年 11 月 30 日

当谈到嵌入式浏览器时,业界提供了各种解决方案:免费的和商业的、开源的和专有的。 它们的不同之处在于可以做什么、如何使用它们以及附带的附加服务。 在本文中,我们将帮助您选择合适的产品。

在上一篇文章中,我们拿了开源的CefSharp,将其与DotNetBrowser进行了比较,并说明了如何选择。

今天,我们探索专有的 WebView2 并认为 DotNetBrowser 更适合商业用途。 我们从组织和法律方面开始。 之后,我们将介绍功能差异。

简而言之

DotNetBrowser和WebView2是来自在该领域拥有丰富经验的商业公司的成熟解决方案。 因此,您将获得一个有效且不依赖于开源社区的软件解决方案。

在以下情况下选择 WebView2:

  • 您必须使用免费软件。
  • 您想要使用常青发行版的特权。
  • 您不介意与 Microsoft 共享最终用户的数据。

在以下情况下选择 DotNetBrowser:

  • 您需要自定义功能。
  • 您想要获得产品使用方面的帮助。
  • 您想要秘密地报告问题并修复它们。
  • 您希望控制最终用户的数据收集。
  • 您需要在没有 UI 的情况下运行应用程序。
  • 您需要在 Linux 和 macOS 上运行。
  • 您需要以编程方式打印。

方法差异

WebView2是微软的一个控件。 它是免费的,但正如人们对微软的期望一样,它也是专有的。 它是基于 Trident 的 WebView 的替代品,并使用 Edge。

WebView2 是一个控件:Visual Studio 工具箱中的一项,来自 Microsoft.Web.WebView2.Core.dll 文件的类。 但它不是像 Office 或 PowerBI 这样的 Microsoft 产品。 因此,您无法获得客户服务、技术支持或帮助。

DotNetBrowser是由TeamDev(一家专门从事浏览器嵌入的公司)创建和开发的产品。 我们于 2004 年开始使用 Internet Explorer,后来继续使用 Safari 和 WebKit,最终于 2013 年使用 Chromium。

2015 年,我们推出了 DotNetBrowser。 它是一种为商业用途而设计的商业产品。 除了软件和文档之外,该服务还包括专门的客户服务专家、技术支持和优质服务。

商业差异

修复、功能和帮助

如果发现错误或需要功能,如何获得帮助? 让我们看一下 WebView2 和 DotNetBrowser 提供的功能。

WebView2 在专用的 GitHub 存储库中收集公众的反馈。 当您要制作报告时,您就在那里创建了一个问题。 如果 Microsoft 开发人员认为您的报告有价值,他们会将其转移到他们的内部系统。 您可以通过他们针对此类问题使用的“跟踪”标签来了解。

微软开发人员对新报告反应很快,但处理速度却慢得多。 例如,在撰写本文时,近 80% 的跟踪问题在超过 6 个月的时间内仍未得到解决。

DotNetBrowser 拥有一个私人帮助台系统,客户的报告将保密。 保证的第一响应时间(SLA)是一个工作日。

技术支持包括:产品使用帮助、故障排除帮助、错误修复以及考虑功能请求。 您的所有支持请求将由 DotNetBrowser 软件工程师处理。

最终用户的隐私

本文撰写于 2022 年 10 月,描述了截至该日期的 EULA 版本。

当最终用户在其环境中安装 WebView2 时,安装程序会向他们显示 EULA。 您可能担心两件事:

1. Microsoft 可能会收集有关您的最终用户的信息。

2. 您需要警告他们。

EULA 第 3.a 节规定,WebView2 可能会收集有关您和最终用户使用该软件的信息。 然后可以将此信息发送给 Microsoft。

由于 Microsoft 收集最终用户的信息,您有义务出示相应的通知并获得他们的同意(EULA 第 9 节)。

DotNetBrowser 不会收集有关您和您的最终用户的信息。 此外,它还阻止谷歌收集数据。 在隐私实践中详细了解 DotNetBrowser 如何处理数据并让您控制隐私。

与个人助理一起评估 DotNetBrowser!

技术差异

从技术角度来看,DotNetBrowser 和 WebView2 并没有那么不同。 两者都有相似的架构,Chromium 在单独的进程中运行。 两者都有数百个功能,其中大部分是重叠的。

然而,差异是存在的。 在选择适合您的情况的解决方案时,它们可能是必不可少的。 那么我们来看看吧。

分发部署

您可以在应用程序中附带 WebView2 运行时,也可以使用最终用户安装的运行时。 这些是分发模式:分别是固定版本和常绿版本。

使用固定版本模式,您可以控制应用程序中WebView2的版本,这有利于稳定性。 在常青模式下,您可以让 Microsoft 负责后勤和更新并减少软件的大小。

DotNetBrowser 需要与您的应用程序打包在一起。 这是唯一开箱即用的分发模式。

Chrome 扩展程序

支持 Chrome 扩展是 DotNetBrowser 和 WebView2 客户端中的一个普遍请求。

DotNetBrowser 支持 Chrome 扩展。

在 WebView2 存储库中,扩展请求被标记为“已跟踪”,但尚未报告任何进展。

无 UI 运行

对于自动化或生成 PDF 报告等用例,不需要用户界面。 相反,无头运行更简单、更高效。

WebView2 不支持在没有 UI 的情况下运行,因为它需要应用程序窗口。

在 DotNetBrowser 中,这是开箱即用的。 您可以在控制台应用程序、Web 服务器上使用它,甚至可以将其作为 Windows 服务使用。 像这样:

Linux 和 macOS

WebView2 宣布计划支持 macOS 以及后来的 Linux。 但他们尚未透露任何估计。

DotNetBrowser 是一个跨平台库,可在 Windows、macOS 和 Linux 上运行。 将其与 Avalonia UI 或服务器应用程序一起使用。

WPF 和重叠控件

将任何 WPF 控件放在 WebView2 控件之上是不可能的。 这是由 WPF 的自然限制和 WebView2 的工作方式造成的。

WPF 不支持不同窗口中呈现的区域之间的重叠,而 WebView2 通过将外部窗口嵌入到 WPF 控件中来精确地工作。

对于DotNetBrowser来说,这不是问题。 除了使用 WebView2 等本机窗口之外,它还可以直接在 WPF 窗口中渲染。

这称为离屏渲染模式。 在此模式下,渲染的像素将复制到 .NET 进程内存并显示在常规 WPF 小部件中。

从 .NET 调用 JavaScript

在这两种解决方案中,您都可以直接从 .NET 代码执行 JavaScript。 不同之处在于当结果从 Chromium 返回到 .NET 世界时会发生什么。

WebView2 将结果转换为 JSON:

DotNetBrowser 自动转换简单类型。 它用实际 V8 对象的代理替换了复杂类型:

从 JavaScript 调用 .NET

这两种解决方案都允许在 JavaScript 中使用 .NET 对象,但有一个问题。

在WebView2中,注入的对象应该是COM可见的并实现IDispatch。 此要求限制了您可以注入的范围并增加了样板代码。

在 DotNetBrowser 中,您可以注入任何对象:标准 .NET 对象、集合,甚至 WPF 控件。 在 JavaScript 中,您将可以访问注入对象的公共成员和索引属性。

拦截流量

WebView2 没有用于拦截、过滤或修改 HTTP 请求的 API。

另一方面,DotNetBrowser 具有管理 HTTP 流量的广泛功能。 通过此功能,您可以实现以下功能:

  • 过滤 HTTP 请求。
  • 重定向 HTTP 请求。
  • 覆盖 HTTP 请求和响应标头。
  • 覆盖请求上传数据。
  • 过滤 cookie。

您可以在我们的 GitHub 中找到更多 DotNetBrowser 网络示例。

打印API

WebView2 的打印 API 有限。 它可以打印为 PDF 并允许您操作一些设置。 唉,它非常有限:

  • 您无法选择特定的系统打印机。
  • 您无法配置页面范围。
  • 您无法控制向用户显示的打印对话框。

DotNetBrowser 提供对打印过程的完全控制。 你可以:

  • 选择打印机。
  • 处理由 JavaScript 和 .NET 代码启动的打印。
  • 查看打印机的功能以避免使用不受支持的功能。
  • 配置打印设置,包括页面范围、纸张尺寸、边距、页眉、页脚等。

试用

获费许可证并选择我们的入门指南之一。 开始使用DotNetBrowser需要5分钟:

  • WPF 中的 DotNetBrowser
  • Avalonia 中的 DotNetBrowser
  • WinForms 中的 DotNetBrowser
  • 控制台中的 DotNetBrowser,对于 Windows 服务和服务器应用程序很有用。




   |    备案号:京ICP备09015132号-1044