No que respeita aos navegadores incorporados, a indústria oferece todo o tipo de soluções: gratuitas e comerciais, open-source e proprietárias. Diferem no que podem fazer, na forma de os utilizar e nos serviços adicionais que os acompanham. Neste artigo, ajudaremos a escolher o mais adequado.

No artigo anterior, utilizámos o CefSharp open-source, o comparamos com o DotNetBrowser e explicamos como escolher.

Hoje, exploramos o WebView2 proprietário e argumentamos que o DotNetBrowser é mais adequado para uso comercial. Começamos com os aspectos organizacionais e jurídicos. Em seguida, abordamos as diferenças funcionais.

Em poucas palavras 

O DotNetBrowser e o WebView2 são soluções maduras de empresas comerciais com experiência considerável neste domínio. Assim, você obtém uma solução de software que funciona e não depende da comunidade open-source.

Escolha WebView2 quando:

  • É necessário utilizar software gratuito.
  • Pretende utilizar as vantagens da distribuição perene.
  • Não se importa de partilhar os dados do utilizador final com a Microsoft.

Escolha DotNetBrowser quando:

  • Precisa de uma funcionalidade personalizada.
  • Pretende obter assistência na utilização do produto.
  • Pretende comunicar os problemas de forma confidencial e obter a sua resolução.
  • Pretende ter controle sobre a coleta de dados do usuário final.
  • É necessário executar a aplicação sem a IU.
  • Precisa executar em Linux e macOS.
  • É necessário imprimir de forma programática.
Spinner

Enviando…

Desculpe, o envio foi interrompido

Tente novamente. Se o problema persistir, contate-nos através do endereço info@teamdev.com.

Leia e aceite os termos para continuar.

A sua chave de avaliação pessoal de DotNetBrowser e o guia de início rápido chegarão à sua caixa de entrada de e-mail dentro de alguns minutos.

Diferença de abordagens 

O WebView2 é um controle da Microsoft. É gratuito, mas — como é de esperar da Microsoft — é também proprietário. Substitui o WebView baseado no Trident e utiliza o Edge.

O WebView2 é um controle: um item na caixa de ferramentas do Visual Studio, classes do arquivo Microsoft.Web.WebView2.Core.dll. Mas não é um produto Microsoft como o Office ou o PowerBI. Por isso, você não recebe suporte ao cliente, apoio técnico ou assistência.

O DotNetBrowser é um produto criado e desenvolvido pela TeamDev, uma empresa especializada na incorporação de browsers. Começámos com o Internet Explorer em 2004 e continuámos com o Safari e o WebKit mais tarde, antes de nos decidirmos por Chromium em 2013.

Em 2015, introduzimos o DotNetBrowser. Trata-se de um produto comercial concebido para utilização comercial. Além do software e da documentação, a oferta inclui um especialista dedicado do Serviço de Suporte ao Cliente, suporte técnico, e serviços premium.

Diferença para as empresas 

Correções, funcionalidades e assistência 

Como obter ajuda se encontrar um erro ou precisar de uma funcionalidade? Vejamos em o que o WebView2 e o DotNetBrowser têm para oferecer.

O WebView2 recolhe feedback do público num repositório GitHub dedicado. Quando você tem um relatório a fazer, você cria um problema lá. Se os programadores da Microsoft considerarem o seu relatório válido, transferem-no para o seu sistema interno. Você saberá pela etiqueta “rastreado” que utilizam para este tipo de questões.

Os programadores da Microsoft reagem rapidamente a novos relatórios, mas abordam-nos muito mais lentamente. Por exemplo, quase 80% dos problemas registrados ficaram por resolver durante mais de 6 meses no momento da redação do presente artigo.

O DotNetBrowser tem um sistema de helpdesk privado onde os relatórios dos clientes permanecem confidenciais. O tempo de primeira resposta garantido, ou SLA, é de um dia útil.

O apoio técnico inclui: ajuda na utilização do produto, assistência na resolução de problemas, correção de erros e análise de pedidos de funcionalidades. Todos os seus pedidos de suporte serão processados por engenheiros de software DotNetBrowser.

Privacidade dos usuários finais 

Este artigo foi escrito em Outubro de 2022 e descreve a versão do EULA nessa data.

Quando um usuário final instala o WebView2 no seu ambiente, o instalador mostra o EULA. Há duas coisas que podem preocupar você:

  1. A Microsoft pode recolher informações sobre os seus usuários finais.
  2. Você é obrigado a avisá-los.

A seção 3.a do EULA declara que o WebView2 pode recolher informações sobre você e sobre a utilização do software pelo usuário final. Esta informação pode então ser enviada para Microsoft.

O fato de a Microsoft recolher as informações do usuário final obriga-o a mostrar o aviso correspondente e a obter o seu consentimento (Secção 9 do EULA).

O DotNetBrowser não recolhe informações sobre você e os seus usuários finais. Além disso, ele impede a coleta de dados pela Google. Leia mais sobre a forma como o DotNetBrowser trata os dados e lhe dá controle sobre a privacidade em Práticas de Privacidade.

Avalie o DotNetBrowser com um assistente pessoal!
Teste agora

Diferenças técnicas 

De um ponto de vista técnico, o DotNetBrowser e o WebView2 não são muito diferentes. Ambos têm uma arquitectura semelhante, em que o Chromium é executado num processo separado. Ambos os sites têm centenas de funcionalidades, a maioria das quais se sobrepõem.

As diferenças, no entanto, existem. E podem ser essenciais para escolher a solução mais adequada ao seu caso. Vamos então dar uma olhada.

Distribuição e implantação 

Pode trazer o WebView2 Runtime com a sua aplicação ou utilizar o que está instalado no usuário final. Estes são modos de distribuição: a versão fixa e a evergreen, respetivamente.

Com o modo de versão fixa, pode controlar a versão do WebView2 na sua aplicação, o que é bom para a estabilidade. No modo permanente, você deixa a Microsoft tratar da logística e das atualizações e reduz o tamanho do seu software.

O DotNetBrowser precisa de ser empacotado com a sua aplicação. É o único modo de distribuição que vem de fábrica.

Extensões do Chrome 

Tanto o DotNetBrowser como o WebView2 suportam extensões. Enquanto o WebView2 fornece uma funcionalidade muito básica, o DotNetBrowser dá aos programadores mais opções e controlo total sobre o ciclo de vida e a atividade da extensão.

No WebView2, um programador pode instalar uma extensão a partir de um ficheiro CRX descompactado, ativar/desativar a extensão e desinstalá-la.

No DotNetBrowser, um programador pode instalar uma extensão diretamente a partir do ficheiro CRX, “clicar” programaticamente no ícone da extensão, interagir com um pop-up e novos “separadores” que a extensão possa abrir.

Além disso, pode permitir que os utilizadores interajam diretamente com as extensões:

  • Ativar utilizando a Chrome Web Store.
  • Apresentar o ícone da extensão, com emblemas e etiquetas.
  • Mostrar pop-ups e “separadores” criados pela extensão.

Leia mais no guia sobre extensões e teste-o na prática.

Execução sem IU 

Para casos de utilização como a automatização ou a geração de relatórios em PDF, não é necessário ter uma interface de usuário. Em vez disso, é mais simples e mais eficiente executar headless.

O WebView2 não suporta a execução sem IU, uma vez que requer uma janela da aplicação.

No DotNetBrowser, isto funciona imediatamente. Você pode utilizá-lo na aplicação de console, no servidor Web ou mesmo como um serviço do Windows. Desse modo:

using (IEngine engine = EngineFactory.Create())
{
    using (IBrowser browser = engine.CreateBrowser())
    {
        browser.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser").Wait();
    }
}

Linux e macOS 

O WebView2 declarou ter planos para suportar o macOS e, mais tarde, o Linux. Mas ainda não divulgaram quaisquer estimativas.

O DotNetBrowser é uma biblioteca multiplataforma que funciona em Windows, macOS e Linux. Utilize-o com Avalonia UI ou na aplicação de servidor.

WPF e controles sobrepostos 

É impossível colocar qualquer controle WPF em cima de um controle WebView2. Isto é causado pelas limitações naturais do WPF e pela forma como o WebView2 funciona.

O WPF não suporta a sobreposição de regiões apresentadas em janelas diferentes, e o WebView2 funciona precisamente através da incorporação de uma janela externa no controle WPF.

Para o DotNetBrowser, isso não é um problema. Além de utilizar a janela nativa, como o WebView2, ele pode ser apresentado diretamente na janela do WPF.

É o chamado modo de renderização fora da tela. Neste modo, os pixels renderizados são copiados para a memória do processo .NET e apresentados num widget WPF normal.

Chamando JavaScript a partir do .NET 

Em ambas as soluções, é possível executar JavaScript diretamente a partir do código .NET. A diferença está no que acontece quando o resultado retorna do Chromium para o mundo .NET.

O WebView2 converte o resultado em JSON:

string result = await coreWebView2.ExecuteScriptAsync(@"'example'");
Debug.Assert(result == "\"example\"");

O DotNetBrowser converte automaticamente tipos simples. Ele substitui os tipos complexos por proxies para objetos V8 reais:

string title = await browser.MainFrame.ExecuteJavaScript<string>("document.title");
IJsObject window = await browser.MainFrame.ExecuteJavaScript<IJsObject>("window");

// Ou utilize apenas tipos dinâmicos.
dynamic document = Browser.MainFrame.ExecuteJavaScript("document").Result;
document.write("Hello world!");

Chamando o .NET a partir do JavaScript 

Ambas as soluções permitem a utilização de objetos .NET a partir do JavaScript, mas com uma observação.

No WebView2, um objeto injetado deve ser visível em COM e implementar IDispatch. Este requisito limita a gama do que pode ser injetado e multiplica o código com poucas ou quase nenhuma variação.

No DotNetBrowser, você pode injetar qualquer objeto: objetos .NET padrão, coleções e até controles WPF. Em JavaScript, você terá acesso aos membros públicos e às propriedades indexadas do objeto injetado.

Interceptação do tráfego 

O WebView2 não possui uma API para interceptar, filtrar ou modificar pedidos HTTP.

O DotNetBrowser, por outro lado, tem uma ampla funcionalidade para gerenciar o tráfego HTTP. Com esta funcionalidade, é possível implementar o seguinte:

Você pode encontrar mais exemplos de rede no DotNetBrowser em nosso GitHub.

Impressão API 

O WebView2 tem uma API de impressão limitada. Ela pode imprimir em PDF e permite você manipular uma série de definições. Infelizmente, ela é bastante limitado:

  • Não é possível escolher uma impressora de sistema específica.
  • Não é possível configurar intervalos de páginas.
  • Não é possível controlar as caixas de diálogo de impressão apresentadas ao usuário.

O DotNetBrowser proporciona um controle total sobre o processo de impressão. Você pode:

  • Selecionar uma impressora.
  • Lidar com a impressão iniciada pelo código JavaScript e .NET.
  • Ver as capacidades de uma impressora para evitar a utilização de funcionalidades não suportadas.
  • Configurar definições de impressão, incluindo intervalos de páginas, tamanho do papel, margens, cabeçalhos, rodapés, etc.

Experimentar gratuitamente 

Obtenha a sua licença gratuita e escolha um dos nossos guias de iniciação. Leva apenas 5 minutos para começar a utilizar o DotNetBrowser: