L’intégration d’un navigateur embarqué dans une application native Windows est un excellent moyen de faire de la migration progressive d’interface, en implémentant progressivement des écrans en web tout en les rendant utilisables dans une application Windows. Moyennant quelques efforts de programmation finalement assez légers, une authentification correcte peut être gérée, des évènements du DOM peuvent être récupérés et on arrive à un bon niveau d’interop.
Seulement, voila, le contrôle WinForms WebBrowser est assez vieux et on était loin d’avoir toute la puissance des navigateurs modernes… jusqu’à ce que Microsoft nous fasse la surprise d’intégrer Awesomium dans les contrôles WinForms de Visual Studio 2017 ! Et ça change tout ; pour preuve, un petit benchmark très simple en appelant http://lemonde.fr sur le WebBrowser (à gauche) et sur le navigateur embarqué Awesomium (à droite). Dans les deux cas, il n’y a qu’une ligne de code pour naviguer sur le contenu dans le code derrière le bouton respectif…
A gauche, donc, 100 Mo de mémoire consommés pour arriver à un affichage lent et inutilisable, avec des erreurs de script à n’en plus finir. Bref, un résultat pourri. A droite, seulement 30 Mo de mémoire consommés et le résultat saute aux yeux comme bien meilleur.
Je dois avouer que je n’avais pas vu ce contrôle arriver dans ma veille ni sur aucun blog ni sur les annonces de Microsoft. C’était donc une surprise de tomber là-dessus en faisant un test de WinForms dans Visual Studio 2017, mais pour le coup, c’est vraiment une excellente surprise !
Je ne trouve pas de trace d’Awesomium ds VS 2017, faut-il installer un package en particulier ?
Bonjour. Non, rien de spécial. J’ai une installation standard de VS 2017 (version 15.5.6 précisément) avec le module pour développer des “applications de bureau classique Windows”. Quand je vais dans la barre d’outils sur un projet de type “Application Windows Forms”, j’ai le composant dans la catégorie “Awesomium.NET”, juste au-dessus de la catégorie “Tous les Windows Forms”. HTH. JP