2010-03-10 3 views
3

J'écris une application de bureau dans VB.Net, et je voudrais inclure un contrôle de navigateur Web pour automatiser certaines fonctions que l'utilisateur pourrait avoir à effectuer dans le navigateur. Je dois rendre la page de sorte que je ne veux pas utiliser le Webrequest pour faire des appels directs. Lorsque je publie l'application, dois-je me préoccuper de la version d'Internet Explorer que l'utilisateur a sur sa machine? Y a-t-il des contrôles de navigateur Web stables, disponibles gratuitement pour des tiers, disponibles pour VB.Net que les gens utilisent?Suggestions pour inclure le contrôle du navigateur Web dans l'application de bureau VB.Net

Répondre

5

Vous pouvez toujours ignorer toute la question IE et utiliser le moteur Mozilla embarqué dans votre application:

geckofx

« Un composant open-source pour intégrer Mozilla Gecko (Firefox) dans Applications .NET. "

http://code.google.com/p/geckofx/

+0

Ça a l'air plutôt bien. Quelqu'un sait-il d'un projet VB.Net utilisant geckofx? – ajl

+0

mais son .net - ça n'a pas d'importance (enfin, presque toujours!) Reflector est ton ami ... –

+0

Cela ne signifie-t-il pas que vous êtes maintenant responsable du déploiement de correctifs pour le moteur Mozilla à vos utilisateurs? Correctifs de sécurité, etc. – MarkJ

1

Plusieurs versions de Visual Studio prennent en charge les contrôles du navigateur Web. Voici un article sur la façon d'en implémenter un.

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx

Le contrôle du navigateur Web fonctionnera avec les différentes versions d'Internet Explorer, mais sera limitée à la fonctionnalité pris en charge par cette version d'Internet Explorer.

L'article est basé sur Visual Studio 2008, mais dans le coin droit de l'article se trouvent des liens sur l'utilisation du contrôle du navigateur Web vers des versions antérieures de Visual Studio.

+0

Merci pour le lien. Ma plus grande préoccupation est de publier cette application à 500 utilisateurs et n'ayant aucun contrôle sur la version de IE qu'ils ont. – ajl

1

Si vous intégrez le contrôle WebBrowser dans votre application, ce que vous faites vraiment est l'inclusion d'objets COM. Lors de l'exécution, votre application va CoCreateInstance() le contrôle Webbrowser, qui le chargera à partir de la version de SHDOCVW.DLL ou IEFRAME.DLL qui est actuellement sur la machine. Ainsi, en anglais, vous obtiendrez le contrôle IE6, IE7 ou IE8 Webbrowser, en fonction de ce qui est installé sur la machine.

Les différences pratiques, cependant, sont minimes puisque les interfaces ont été publiées il y a longtemps et n'ont pas changé sur ces versions. Les différences en termes de commandes différentes que certaines interfaces (telles que IOleCommandTarget) supportent sont extraites par la couche gérée de toute façon, vous n'avez donc pas à vous en préoccuper. La plus grande différence sera de rendre les différences, car il y a un énorme delta dans la conformité CSS entre IE6 et IE8. Vous devrez tester les différentes versions en utilisant Microsoft's app compat VHDs.

Lorsque j'ai travaillé sur l'équipe IE, la compatibilité des applications avec le contrôle Webbrowser était énorme; l'équipe travaille très fort pour s'assurer que le comportement ne régresse pas précisément pour ce scénario - l'application VB d'entreprise personnalisée hébergeant le WebOC. Cependant, si vous décidez d'utiliser une solution open-source pour distribuer avec votre application, puis-je suggérer WebKit? Son moteur de mise en page est très bon et le code source est assez bien entretenu et facile à lire, bien que vous deviez écrire votre propre couche d'hébergement géré. Le code Gecko est beaucoup plus difficile à lire et à déboguer.

Questions connexes