Microsoft anuncia la disponibilidad general de WebView2 para .NET (incluye Edge Chromium en tu aplicación)


image

Anteriormente Windows ofrecía y sigue manteniendo la característica de que aplicaciones de terceros puedan incluir una instancia reducida de su navegador Internet Explorer, de tal manera que podría incluirse contenido web en sus aplicaciones. Ahora ya es posible que programas de terceros puedan incluir también el motor de renderizado web de Microsoft Edge a través de un proyecto joven llamado WebView para Win32, la que soporta versiones de Edge anterior y finalmente llega WebView2 para Win32 (.NET) que soporta la última versión de Microsoft Edge.

Existen otros proyectos como el más conocido CEF (Chromium Embedded Framework) basado en el motor del proyecto abierto Chromium ahora con el motor cambiado de nombre a Blink, la cual permite incluir contenido web en aplicaciones de terceros. Microsoft Edge se basa en Chromium, y no era de extrañarse que tarde o temprano propusieran ofrecer su propio framework para también ofrecer que aprovechando que el usuario tiene instalado su navegador, ésta pueda ser aprovechada por desarrolladores de programas de escritorio y así poder ofrecer contenido web moderno dentro de ellas.

Además de ello, también ofrecen la posibilidad de ofrecer un motor más grande (en cuanto a incluir en la distribución del programa) que no requiere de tener instalado su navegador Edge Chromium.

Ahora los desarrolladores de programas para escritorio que utilicen tecnologías .NET 5, .NET Core, y .NET Framework WinForms y WPF podrán utilizarlo, teniendo el soporte de Microsoft para asegurar un motor más estable y seguro a través de las actualizaciones del navegador web.

Si eres programador de aplicaciones de escritorio para Windows, puedes empezar a utilizarlo ahora mismo, aunque en realidad esta tecnología ya estaba disponible como versiones preliminares. La documentación oficial la encontrarás en http://aka.ms/webview2 que incluye muchos ejemplos e información detallada.

Por ejemplo para poder iniciar con guías específicas para diferentes tecnologías de .NET.

Por lo pronto sólo están disponibles, por ahora, para C#, VB y C++. Aunque también existen proyectos que extienden su alcance a otros lenguajes de programación, como por ejemplo Delphi 10.4 y su lenguaje de programación Pascal, ya permite el uso de WebView2. Entre otros están Rust, Go, Java, etc. 

Por ejemplo, siguiendo el tutorial de Introducción a WebView2 en Windows Forms pude hacer este sencillo programa que ya utiliza el motor de WebView2.

image

Que al ver sus procesos hijos notaremos que éste utiliza WebView2, lamentablemente como cualquier instancia de Chromium, éstos ocupan mucha memoria RAM, navegando al sitio del reproductor web de Spotify, éste ocupa 461 MB de RAM.

image

Es una lástima que este método de incluir contenido web moderno en aplicaciones de escritorio sea poco conveniente para equipos de bajos recursos, en especial la memoria RAM. La diferencia con el método antiguo de embeber Internet Explorer 11 en nuestras aplicaciones es notoria, ya que éstas no rebasan los 100 MB pero no soportan contenido web moderno.

Ya queda para el desarrollador de dichas aplicaciones la decisión de optar por una u otra según el contenido que desea ofrecer en su programa de escritorio.

Fuente: Blog oficial de Windows – Announcing General Availability of Microsoft Edge WebView2 for .NET