DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer et utiliser des assemblages NET
  • Présentation
  • Intégrer un assemblage .NET dans un projet WINDEV ou WEBDEV
  • Utilisation des éléments de l'assemblage .NET
  • Limites
  • Incompatibilité entre l'ActiveX IE (et oAuth2) et l'utilisation d'assemblage .NET
  • Utiliser des assemblages standards du framework .NET 4 (et inférieur)
  • Utiliser des assemblages standards du framework .NET 4 (et inférieur)
  • Utiliser des assemblages standards du SDK .NET 5
  • Utiliser un assemblage .Net créé avec WINDEV
  • Liste des assemblages .Net utilisés dans le projet
  • Recharger les assemblages .Net
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
La technologie .NET correspond à une 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 ou WEBDEV
Pour intégrer des assemblages .NET dans le projet en cours :
  1. Sous le volet "Projet", dans le groupe "Projet", déroulez "Importer" et sélectionnez "Un assemblage .NET".
  2. Dans la fenêtre qui s'affiche, sélectionnez les différents assemblages .NET à intégrer dans le projet en cours.
    • Une zone "Recherche" permet de trouver plus rapidement l'assemblage voulu.
    • Le bouton "Sélectionner sur le disque" permet de sélectionner un assemblage n'apparaissant pas dans la liste. L'assemblage sélectionné par le bouton "Sélectionner sur le disque" est automatiquement placé en début de liste et sélectionné.
    • Le bouton "Compléter la liste automatiquement" permet de rechercher tous les assemblages disponibles sur le poste.
    • Indiquez si nécessaire le framework .NET ciblé. La liste propose les différentes versions de Microsoft. Par défaut, l'option "Automatique" est sélectionnée.
      Remarque : Selon le framework .Net ciblé, la liste des assemblages peut varier.
  3. Validez. Les assemblages sélectionnés sont importés.
L'utilisation d'un assemblage .NET est identique à l'utilisation d'une classe en WLangage.
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é.
    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
    PROCÉDURE 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
  • 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 une Liste<CMonObjet>"
  • 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 une Liste<entier>"
    // ...
    clClone est CClone
    MaListeCopie est une Liste<entier>" <- clClone."CloneListe<entier>"(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.
  • Attention : Les composants créés avec une version 11 ou inférieure utilisant .NET ne fonctionneront plus avec la version 2024. Il est nécessaire de re-générer les composants avec la version 2024.
WINDEV

Incompatibilité entre l'ActiveX IE (et oAuth2) et l'utilisation d'assemblage .NET

Lorsque vous utilisez un champ HTML dans WINDEV, ce champ utilise l'ActiveX système "Navigateur Web Microsoft". Cet ActiveX est également utilisé par WINDEV pour toutes les authentifications OAuth2 (Facebook, Twitter, Google, etc) qui demandent une validation pour la connexion via du code HTML.
Si dans un même projet vous utilisez un champ HTML (ou une authentification OAuth2) et un assemblage ".Net", vous risquez de rencontrer une incompatibilité entre les couches .NET de Microsoft et l'ActiveX.
Il existe une API qui permet de gérer cette cohabitation. Pour cela vous devez utiliser la ligne de code suivante dans le code d'initialisation du projet ou dans le code d'initialisation de classes ou de procédure globale si l'initialisation de l'objet ".Net" est faite dans la classe ou la collection de procédure :
// Permet de gérer la cohabitation de l'ActiveX IE et de .NET
API("OLE32", "CoInitializeEx", Null, 2)
Utiliser des assemblages standards du framework .NET 4 (et inférieur)

Utiliser des assemblages standards du framework .NET 4 (et inférieur)

Pour utiliser des assemblages standards du framework .NET 4 (et inférieur) :
  1. Sélectionnez le dossier "Assemblages .NET" dans le volet "Explorateur de projet".
  2. Affichez le menu contextuel et sélectionnez l'option "Utiliser un assemblage .NET".
  3. Dans la fenêtre qui s'affiche, cliquez sur "Remplir automatiquement une liste avec les assemblages .NET de votre disque. Attention Ce traitement peut prendre du temps.".
  4. Sélectionnez les assemblages standards à utiliser (mscorlib.dll ou un autre assemblage).
  5. Validez.

Utiliser des assemblages standards du SDK .NET 5

Pour utiliser des assemblages standards du SDK .NET 5 :
  1. Sélectionnez le dossier "Assemblages .NET" dans le volet "Explorateur de projet".
  2. Affichez le menu contextuel et sélectionnez l'option "Utiliser un assemblage .NET".
  3. Dans la fenêtre qui s'affiche, cliquez sur "Sélectionner des assemblages .NET sur le disque...".
  4. Sélectionnez le répertoire d'installation du SDK .NET 5. Par exemple :
    "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\5.0.0\ref\net5.0".
  5. Sélectionnez les assemblages standards à utiliser (System.Runtime.dll ou un autre assemblage).
    Attention, ce répertoire contient un fichier mscorlib.dll qui ne doit pas être sélectionné dans le cas de l'utilisation du SDK .NET 5.
  6. Validez.
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".
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.
  1. Dans le volet "Explorateur de projet", sélectionnez l'élément "Assemblages .NET".
  2. Dans le menu contextuel de cet élément, sélectionnez l'option "Recharger les assemblages .NET".
Liste des exemples associés :
WD Text-To-Speech 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.
WD Utilisation des classes DotNET 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.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 01/09/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale