|
- Présentation
- Intégrer un assemblage .NET dans un projet WINDEV/WINDEV Mobile/WEBDEV
- Utilisation des éléments de l'assemblage .NET
- Limites
- Incompatibilité entre l'ActiveX IE (et oAuth2) et l'utilisation d'assemblage .NET
- Utiliser un assemblage .Net créé avec WINDEV
- Liste des assemblages .Net utilisés dans le projet
- Recharger les assemblages .Net
Utiliser des assemblages .NET dans un projet
La technologie .NET correspond à la nouvelle plateforme de développement logiciel de Microsoft. Cette plateforme .NET permet de faciliter énormément le développement d'applications à objets distribués dont les modules communiquent via Internet. Cette aide ne fait que présenter de manière globale l'utilisation de la technologie .NET dans WINDEV, WINDEV Mobile et WEBDEV. Pour plus de détails sur la technologie .NET, nous vous conseillons de consulter des ouvrages spécifiques. Intégrer un assemblage .NET dans un projet WINDEV/WINDEV Mobile/WEBDEV Pour intégrer des assemblages .NET dans l'application en cours : - Sous le volet "Projet", dans le groupe "Projet", déroulez "Importer" et sélectionnez "Un assemblage .NET".
- Sélectionnez les différents assemblages .NET à intégrer dans l'application en cours. Une zone "Recherche" permet de trouver plus rapidement l'assemblage voulu. Le bouton "Parcourir" permet de sélectionner un assemblage n'apparaissant pas dans la liste. L'assemblage sélectionné par le bouton "Parcourir" est automatiquement placé en début de liste et sélectionné.
- Validez. Les assemblages sélectionnés sont importés.
L'utilisation d'un assemblage .NET est identique à l'utilisation d'une classe WINDEV. Rappel : Les classes sont visibles dans le volet "Explorateur de projet". Les classes .NET sont regroupées par "Namespace". Utilisation des éléments de l'assemblage .NET Les éléments suivants importés dans l'assemblage .NET peuvent être manipulés en WLangage : - Delegates : les delegates peuvent être manipulés grâce à la fonction WLangage DotNetDélégué.
Versions 19 et supérieuresIl est également possible d'ajouter un delegate avec l'opérateur += :
clDotNet est un ClasseGestionEvenement // Branchement de l'événement clDotNet:m_LogHandler += Proc_Test // ... // Déclenche l'événement clDotNet:EnvoiUnMessage("Chaine envoyée")
//------------------------------------------------- // Gestion de l'événement PROCEDURE Proc_Test(src, args) Info("La chaîne passée en paramètre via le délégué est " + args:get_Message())
Nouveauté 19Il est également possible d'ajouter un delegate avec l'opérateur += :
clDotNet est un ClasseGestionEvenement // Branchement de l'événement clDotNet:m_LogHandler += Proc_Test // ... // Déclenche l'événement clDotNet:EnvoiUnMessage("Chaine envoyée")
//------------------------------------------------- // Gestion de l'événement PROCEDURE Proc_Test(src, args) Info("La chaîne passée en paramètre via le délégué est " + args:get_Message())
Il est également possible d'ajouter un delegate avec l'opérateur += :
clDotNet est un ClasseGestionEvenement // Branchement de l'événement clDotNet:m_LogHandler += Proc_Test // ... // Déclenche l'événement clDotNet:EnvoiUnMessage("Chaine envoyée")
//------------------------------------------------- // Gestion de l'événement PROCEDURE Proc_Test(src, args) Info("La chaîne passée en paramètre via le délégué est " + args:get_Message())
- NestedType de plus de 1 niveau
- Référence
- Properties
- Tableau de plus de 1 dimension
- Structures.
- Enums.
Il est possible de combiner des Enum provenant d'assemblages .Net à l'aide des opérateurs &, | , ||, ~ . Il est possible de convertir des enums vers des entiers ou de les construire depuis des entiers. - Classes internes : la syntaxe à utiliser est la suivante :
<Nom de l'objet> est "<Nom de la classe>"
La syntaxe sans guillemets est également disponible :
<Nom de l'objet> est <Nom de la classe>
Exemple :
O est "ClasseExterne.ClasseInterne"
O est ClasseExterne.ClasseInterne
Versions 21 et supérieuresGénériques : La syntaxe à utiliser pour instancier un générique est la suivante :
<Nom de l'objet> est "<Nom du générique><<Type concret>>"
Exemple d'instanciation d'un générique :
MaListe est "List<CMonObjet>"
Nouveauté 21Génériques : La syntaxe à utiliser pour instancier un générique est la suivante :
<Nom de l'objet> est "<Nom du générique><<Type concret>>"
Exemple d'instanciation d'un générique :
MaListe est "List<CMonObjet>"
Génériques : La syntaxe à utiliser pour instancier un générique est la suivante :
<Nom de l'objet> est "<Nom du générique><<Type concret>>"
Exemple d'instanciation d'un générique :
MaListe est "List<CMonObjet>"
Versions 21 et supérieuresMéthodes génériques : La syntaxe à utiliser pour appeler une méthode générique est la suivante :
<Nom de l'objet>."<Nom de la méthode générique><<Type concret>>"(<paramètres>)
Exemple d'appel d'une méthode générique :
// Prototype de la méthode générique CloneListe de la classe CClone // CloneListe(List<T>) // ... MaListe est "List<int>" // ... clClone est CClone MaListeCopie est "List<int>" <- clClone."CloneListe<int>"(MaListe)
Nouveauté 21Méthodes génériques : La syntaxe à utiliser pour appeler une méthode générique est la suivante :
<Nom de l'objet>."<Nom de la méthode générique><<Type concret>>"(<paramètres>)
Exemple d'appel d'une méthode générique :
// Prototype de la méthode générique CloneListe de la classe CClone // CloneListe(List<T>) // ... MaListe est "List<int>" // ... clClone est CClone MaListeCopie est "List<int>" <- clClone."CloneListe<int>"(MaListe)
Méthodes génériques : La syntaxe à utiliser pour appeler une méthode générique est la suivante :
<Nom de l'objet>."<Nom de la méthode générique><<Type concret>>"(<paramètres>)
Exemple d'appel d'une méthode générique :
// Prototype de la méthode générique CloneListe de la classe CClone // CloneListe(List<T>) // ... MaListe est "List<int>" // ... clClone est CClone MaListeCopie est "List<int>" <- clClone."CloneListe<int>"(MaListe)
- Méthodes d'extension :
Les méthodes d'extension peuvent être appelées de la même manière que les méthodes de l'objet.
Lorsque c'est possible, les types WLangage sont implicitement convertis en types .Net. Exemple :
clChaineDotNet est "String" dynamique sChaineWL est une chaîne = "chaîne" clChaineDotNet = sChaineWL
Limites - Une classe WLangage ne peut pas dériver d'une classe .NET.
- Les types suivants sont gérés :
- Date / Heure
- Monétaires WINDEV. En sortie, les monétaires WINDEV sont convertis en décimaux.
- Décimaux
Un paramètre de type décimal passé depuis un assemblage .NET à une fonction WLangage est converti en monétaire si possible. Si cette conversion est impossible, le paramètre est converti en double. - Structures
- Les objets dérivés en .NET à partir d'une classe WLangage exportée ne sont pas gérés. Si un objet de ce type est passé en paramètre à une fonction WLangage, il est "casté" dans le type WLangage de base.
- Le passage de paramètres de type pointeur entre le WLangage et .NET n'est pas géré.
- Les membres de type "structure" des classes et/ou des collections ne sont pas visibles en .NET car les structures WLangage ne sont pas visibles en .NET. Pour contourner ce problème, il suffit de créer une classe contenant le code de la structure.
- Les membres de type "classe" des classes et/ou des collections sont visibles en .NET uniquement si la classe est elle aussi exportée.
Si l'application utilise un assemblage .NET, il est impossible d'utiliser un framework renommé. C'est une limitation du Compact Framework .NET. Si un exécutable Mobile utilisant des assemblages .NET est lancé sur un Pocket où le Framework .NET 2.0 n'est pas installé, l'exécutable ne se lance pas. Aucun message d'erreur n'est affiché. - Attention : Les composants créés avec une version 11 ou inférieure utilisant .NET ne fonctionneront plus avec la version 25. Il est nécessaire de re-générer les composants avec la version 25.
Utiliser un assemblage .Net créé avec WINDEV Les assemblages générés avec WINDEV s'utilisent comme n'importe quel autre assemblage .NET. Cependant, le framework WINDEV doit se trouver dans le même répertoire que l'assemblage. Liste des assemblages .Net utilisés dans le projet Pour afficher la liste des assemblages .Net utilisés dans le projet, vous pouvez : - Sous le volet "Projet", dans le groupe "Projet", dérouler "Liste des éléments" et sélectionner "Liste des assemblages .NET utilisés".
- Dans le volet "Explorateur de projet", dans le menu contextuel de l'élément "Assemblages .NET", sélectionner l'option "Liste des assemblages .NET utilisés dans le projet".
Versions 20 et supérieuresRecharger les assemblages .Net Vous pouvez recharger les assemblages .NET utilisés dans le projet pour prendre en compte une modification apportée sur un assemblage depuis l'ouverture du projet. - Dans le volet "Explorateur de projet", sélectionnez l'élément "Assemblages .NET".
- Dans le menu contextuel de cet élément, sélectionnez l'option "Recharger les assemblages .NET".
Nouveauté 20Recharger les assemblages .Net Vous pouvez recharger les assemblages .NET utilisés dans le projet pour prendre en compte une modification apportée sur un assemblage depuis l'ouverture du projet. - Dans le volet "Explorateur de projet", sélectionnez l'élément "Assemblages .NET".
- Dans le menu contextuel de cet élément, sélectionnez l'option "Recharger les assemblages .NET".
Recharger les assemblages .Net Vous pouvez recharger les assemblages .NET utilisés dans le projet pour prendre en compte une modification apportée sur un assemblage depuis l'ouverture du projet. - Dans le volet "Explorateur de projet", sélectionnez l'élément "Assemblages .NET".
- Dans le menu contextuel de cet élément, sélectionnez l'option "Recharger les assemblages .NET".
Liste des exemples associés :
|
Mobile (WINDEV Mobile) : Pocket _NET
[ + ] Cet exemple utilise un assemblage .NET Mobile (OpenNETCF.Net) afin de récupérer la liste des cartes réseaux WIFI disponibles sur un PDA et de récupérer des informations de connexion sur ces cartes.
|
|
Exemples didactiques (WINDEV) : WD Text-To-Speech
[ + ] Cet exemple montre comment effectuer une synthèse vocale dans une application WINDEV en utilisant la classe SpeechSynthesizer du framework DOTNET. Remarque : - Cet exemple requiert une version 3.0 de DotNet minimum, - Le synthetiseur vocal est en version anglaise par défaut.
|
|
Exemples didactiques (WINDEV) : WD Utilisation des classes DotNET
[ + ] Cet exemple permet d'utiliser des classes et champs DOTNET en WLangage. Dans cet exemple, nous utiliserons : - la classe String qui permet de manipuler des chaînes de caractères (passage en minuscules, en majuscules, comptage de caractères, ...). - la classe MessageBox qui permet de créer des boîtes de dialogue personnalisées (choix du texte, de l'icône et des boutons). Ces deux classes proviennent des assemblages mscorlib.dll et System.Windows.Form.dll. - un champ DOTNET permettant de visualiser des pages web. Résumé de l'exemple livré avec WINDEV : Cet exemple permet : - d'analyser une chaîne de caractères (nombre de caractères, nombre de mots, remplacement de caractères, ...) - de configurer les boîtes de dialogue affichées (boutons, icône, texte). Le nom du bouton sélectionné par l'utilisateur est automatiquement affiché. - d'utiliser un champ DOTNET afin de visualiser des pages web.
|
Documentation également disponible pour…
|
|
|
| |
| Cliquez sur [Ajouter] pour publier un commentaire |
|
| |
|
| |
| |
| |
| |
| |
| |
| | |
| |