Visual basic compiler
<span class="mw-headline" id="Visual_basic_compiler« >Visual basic compiler
A la racine de la plate-forme. Net est Hejlsberg Anders. Co-fondateur de Borland, concepteur de Turbo Pascal et Delphi langues, il a été débauché par Microsoft en 1996 pour travailler sur la JVM de Microsoft avant d’être mis sur l’équipe qui produisent deux éléments clés. Net, la CLI et C #. L’objectif est évidemment de lutter contre la grande percée de Java dans le monde des affaires, qui remplace progressivement les langues qui sont chers à Microsoft Visual Basic ou Visual C. Java, J2EE plateforme d’entreprise avec son (maintenant JEE), est jaloux. Hejlsberg également travaillera d’abord sur Visual J et les Windows Foundation Classes (classes Java pour Windows). problèmes en fin de compte les droits de la prévention de Microsoft de créer ses propres classes Java, l’éditeur a décidé de créer sa propre environnement.Java J2EE et restent donc la première source d’inspiration pour C # et. Net, ils tentent de corriger certaines erreurs de Java, ou de la poursuite de ses principes. Mais les similitudes abondent: la syntaxe de C # est très proche de celle de Java, la CLI (Common Language Infrastructure) of.Net contient les principes essentiels de la machine virtuelle Java, et les systèmes fonctionnent sur le bytecode base: le byte- code pour Java, et du CIL (Common Intermediate Language). Net.une nouvelle pour Microsoft, et L avancée par rapport à la politique de Sun était de normaliser les CLI que le langage C #, de l’ECMA organisation en 2001. Lorsque Java refuse toujours d’aller en open source. Net a déjà des implémentations open source, en commençant par Mono et dotGNU.Autre avancées. Net, CIL lui permet d’accepter pratiquement n’importe quelle langue que l’on peut compiler dans ce langage intermédiaire, et donc mélanger les composants écrits en plusieurs langues. Avec quatre langues de base (C #, VB.Net, C. Net et J #) et d’autres en préparation (y compris Python et Ruby), Microsoft aurait pu créer le premier environnement multi-plateforme et multilingue.
Conçu pour permettre aux différents logiciels de communiquer les uns avec les autres, l’OLE (Object Linking and Embedding) architecture basée sur COM.Based sur ce modèle, il existe plusieurs «services» dont une qui nous préoccupe aujourd’hui, ‘OLE Automation, qui permet de définir objets PLC (Automation Objects). La mise en œuvre de cette technique est souvent liée à l’utilisation d’un langage de script comme VBScript par exemple (mais il est également possible d’utiliser d’autres langages tels que JScript, la version Microsoft de JavaScript).
Ouvrir une feuille de calcul Excel dans un document Word est typique de la technologie «OLE Automation» ou «ActiveX Automation. Chaque application supportant ce service a ses modèles propre objet, ce qui ne facilite pas la tâche du programmeur lors de la documentation fait défaut. Applications ‘Office’ de Microsoft, cependant, sont bien documentées (par exemple Excel / Visual Basic Applications).
Dans notre exemple, le client demande ‘Excel’, va interagir avec un automate objet ‘Word’ de découvrir dynamiquement les objets et les méthodes disponibles pour cette commande application.In pour pratiquer ce type de relation entre deux applications, nous allons utiliser JScript, mais être conscients que d’autres méthodes existent, c’est juste que l’outil utilisé est ‘compatible’ avec ‘OLE Automation’ pour que cela fonctionne.
La «liaison» est la façon dont le langage de script utilisé par l’application cliente (ou «contrôleur Automation») auront accès à des objets disponibles sur l’application ‘destination’, également appelé ‘serveur Automation.’ Ces deux notions, «contrôleur Automation’ et ‘serveur Automation’ sont très révélateurs.En effet, dans notre exemple, ‘Word’ fait méthodes disponibles, les objets (on peut donc considérer comme un serveur), destinés à être utilisés par ‘Excel’, qui représente l’application ‘contrôleur’, ce qui va agir sur l’objet ‘PLC’ de «Word».
Avant de pouvoir afficher les propriétés, méthodes, événements Object Model ‘serveur d’automatisation’, ‘contrôleur d’automatismes’ doit créer une instance de la classe qu’il souhaite utiliser. Ici, Jscript, et VB ne fonctionne pas de la même façon.
VB et VBScript sont les plus riches et peut utiliser deux types de liaison. Lorsque ‘contrôleur d’automatismes’ tente d’accéder à des «ressources» du «serveur», VB doit vérifier si ces objets, méthodes, fonctions, existent et si cette «demande» a été correctement effectuées. Cela est également connu comme le «contraignant».
Pour résumer, (la version longue se trouve ici), la «liaison tardive» se produit lors de l’exécution du programme, il est le moins efficace des deux types. Il est mis en œuvre comme suit:
Visual Basic devraient consulter chaque fois que le sujet ‘excelApp’ est utilisé si ses méthodes, propriétés, sont utilisés correctement. Cela implique des contrôles au système d’exploitation et le niveau de l’application qui fournit l’objet en question.En outre, VB ne connaît pas le type d’objet référencé ‘excelApp’ avant l’exécution, il doit fournir suffisamment de mémoire, donc surestimée.
La ‘liaison anticipée’ est une solution plus efficace, qui se produit au moment de la compilation plutôt que run.Thus, lors de l’exécution du code, VB n’a pas à se soucier de l’exactitude des informations relatives à l’objet. Cependant, tous les ‘serveur d’automatisation’ ne peut pas tolérer ce type de liaison. Il en est ainsi que le ‘serveur’ a une référence de la bibliothèque d’objets, de méthodes et d’autres propriétés liées à l’objet qui veut accéder à de liaison»,«le contrôleur d’automatismes On dirait que la création de ce. ‘:
Malheureusement nous ne pouvons pas utiliser ce type de ‘liaison’ dans JScript. Deux raisons: – Le JScript est interprété, donc pas de l’étape de compilation avant l’exécution .- Le JScript n’est pas dactylographié, nous ne pouvons pas déclarer une variable comme un type d’objet spécifique.
‘ExcelApp’ pour manipuler l’objet instancié. La fonction, ActiveXObjet () prend comme paramètre le nom d’une application (ici ‘Excel’) et le type d’objet à créer (ici ‘d’application’). Un paramètre optionnel permet de définir un serveur, mais ne sera pas abordée ici.
Maintenant, pour un peu d’exercice sur ‘Word’:Copiez le code suivant dans un fichier ‘version_word.htm», par exemple, et si vous avez cette demande, le numéro de version de celui-ci apparaisse dans un message d’alerte si vous sélectionnez ou accepter une temporaires (!) Le fonctionnement d’un contrôle ActiveX sur votre ordinateur (les réglages sont effectués dans le menu ‘Outils –